Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 18 additions & 8 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,30 @@ import { wait } from './wait.js'
*/
export async function run(): Promise<void> {
try {
const ms: string = core.getInput('milliseconds')
const msInput = core.getInput('milliseconds')
const ms = parseInt(msInput, 10)

if (Number.isNaN(ms)) {
throw new Error("Input 'milliseconds' must be a valid number.")
}

// Debug logs are only output if the `ACTIONS_STEP_DEBUG` secret is true
core.debug(`Waiting ${ms} milliseconds ...`)
core.debug(`Waiting for ${ms} milliseconds...`)

const before = new Date().toTimeString()
core.debug(`Start time: ${before}`)

await wait(ms)

// Log the current timestamp, wait, then log the new timestamp
core.debug(new Date().toTimeString())
await wait(parseInt(ms, 10))
core.debug(new Date().toTimeString())
const after = new Date().toTimeString()
core.debug(`End time: ${after}`)

// Set outputs for other workflow steps to use
core.setOutput('time', new Date().toTimeString())
core.setOutput('time', after)
} catch (error) {
// Fail the workflow run if an error occurs
if (error instanceof Error) core.setFailed(error.message)
if (error instanceof Error) {
core.setFailed(error.message)
}
}
}
10 changes: 6 additions & 4 deletions src/wait.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
/**
* Waits for a number of milliseconds.
*
* @param milliseconds The number of milliseconds to wait.
* @param milliseconds Number of milliseconds to wait.
* @returns Resolves with 'done!' after the wait is over.
*/
export async function wait(milliseconds: number): Promise<string> {
return new Promise((resolve) => {
if (isNaN(milliseconds)) throw new Error('milliseconds is not a number')
export function wait(milliseconds: number): Promise<string> {
if (Number.isNaN(milliseconds)) {
throw new Error("The 'milliseconds' parameter must be a valid number.")
}

return new Promise((resolve) => {
setTimeout(() => resolve('done!'), milliseconds)
})
}
Loading