Files
runner-container-hooks/packages/k8s/src/hooks/run-script-step.ts
T

36 lines
940 B
TypeScript
Raw Normal View History

2022-06-02 15:53:11 -04:00
/* eslint-disable @typescript-eslint/no-unused-vars */
import * as fs from 'fs'
2022-06-02 15:53:11 -04:00
import { RunScriptStepArgs } from 'hooklib'
import { execPodStep } from '../k8s'
import { writeEntryPointScript } from '../k8s/utils'
import { JOB_CONTAINER_NAME } from './constants'
2022-06-02 15:53:11 -04:00
export async function runScriptStep(
args: RunScriptStepArgs,
state,
responseFile
): Promise<void> {
const { entryPoint, entryPointArgs, environmentVariables } = args
const { containerPath, runnerPath } = writeEntryPointScript(
args.workingDirectory,
entryPoint,
entryPointArgs,
args.prependPath,
environmentVariables
2022-06-02 15:53:11 -04:00
)
args.entryPoint = 'sh'
args.entryPointArgs = ['-e', containerPath]
try {
await execPodStep(
[args.entryPoint, ...args.entryPointArgs],
state.jobPod,
JOB_CONTAINER_NAME
)
} catch (err) {
2022-06-22 09:20:48 -04:00
throw new Error(`failed to run script step: ${err}`)
} finally {
fs.rmSync(runnerPath)
2022-06-02 15:53:11 -04:00
}
}