mirror of
https://github.com/actions/runner-container-hooks.git
synced 2025-12-19 11:36:44 +00:00
51 lines
1.2 KiB
TypeScript
51 lines
1.2 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'
|
|
import { checkEnvironment } from './utils'
|
|
|
|
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 {
|
|
checkEnvironment()
|
|
switch (command) {
|
|
case Command.PrepareJob:
|
|
await prepareJob(args as PrepareJobArgs, responseFile)
|
|
return exit(0)
|
|
case Command.CleanupJob:
|
|
await cleanupJob()
|
|
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()
|