mirror of
https://github.com/actions/runner-container-hooks.git
synced 2026-01-19 09:11:10 +08:00
49 lines
1.1 KiB
TypeScript
49 lines
1.1 KiB
TypeScript
import * as core from '@actions/core'
|
|
import {
|
|
Command,
|
|
getInputFromStdin,
|
|
PrepareJobArgs,
|
|
RunContainerStepArgs,
|
|
RunScriptStepArgs
|
|
} from 'hooklib/lib'
|
|
import { exit } from 'process'
|
|
import {
|
|
cleanupJob,
|
|
prepareJob,
|
|
runContainerStep,
|
|
runScriptStep
|
|
} from './hooks'
|
|
|
|
async function run(): Promise<void> {
|
|
const input = await getInputFromStdin()
|
|
|
|
const args = input['args']
|
|
const command = input['command']
|
|
const responseFile = input['responseFile']
|
|
const state = input['state']
|
|
|
|
try {
|
|
switch (command) {
|
|
case Command.PrepareJob:
|
|
await prepareJob(args as PrepareJobArgs, responseFile)
|
|
return exit(0)
|
|
case Command.CleanupJob:
|
|
await cleanupJob(null, state, null)
|
|
return exit(0)
|
|
case Command.RunScriptStep:
|
|
await runScriptStep(args as RunScriptStepArgs, state)
|
|
return exit(0)
|
|
case Command.RunContainerStep:
|
|
await runContainerStep(args as RunContainerStepArgs, state)
|
|
return exit(0)
|
|
default:
|
|
throw new Error(`Command not recognized: ${command}`)
|
|
}
|
|
} catch (error) {
|
|
core.error(`${error}`)
|
|
exit(1)
|
|
}
|
|
}
|
|
|
|
void run()
|