summaryrefslogtreecommitdiff
path: root/worker/scripts/checkout_ci.ts
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2025-07-01 10:12:55 -0700
committerElizabeth Hunt <me@liz.coffee>2025-07-01 10:12:55 -0700
commit8fbbe6396f400a9a50d4686c39969470edf2a246 (patch)
tree4832c535816d59b30bbf7eb059259194a3bfc46c /worker/scripts/checkout_ci.ts
parentfd5fb8b5e19bb6b09ed6e2a6050ba6c4a375d520 (diff)
downloadci-8fbbe6396f400a9a50d4686c39969470edf2a246.tar.gz
ci-8fbbe6396f400a9a50d4686c39969470edf2a246.zip
Lift all utility functions in runner scripts
Diffstat (limited to 'worker/scripts/checkout_ci.ts')
-rwxr-xr-xworker/scripts/checkout_ci.ts44
1 files changed, 26 insertions, 18 deletions
diff --git a/worker/scripts/checkout_ci.ts b/worker/scripts/checkout_ci.ts
index 337aae1..dade7c4 100755
--- a/worker/scripts/checkout_ci.ts
+++ b/worker/scripts/checkout_ci.ts
@@ -119,34 +119,42 @@ await LogMetricTraceable.ofLogTraceable(_logJob)
})
.get();
-const getWorkingDirectoryForCiJob = (job: CheckoutCiJob) => `${job.arguments.returnPath}/${job.arguments.run}`;
+function getWorkingDirectoryForCiJob(job: CheckoutCiJob) {
+ return `${job.arguments.returnPath}/${job.arguments.run}`;
+}
-const getSrcDirectoryForCiJob = (job: CheckoutCiJob) => `${job.arguments.returnPath}/${job.arguments.run}/src`;
+function getSrcDirectoryForCiJob(job: CheckoutCiJob) {
+ return `${job.arguments.returnPath}/${job.arguments.run}/src`;
+}
const _runFlags = ('--rm --network none --cap-drop ALL' + '--security-opt no-new-privileges').split(' ');
const _image = 'oci.liz.coffee/img/ci-worker:release';
-const getPipelineGenerationCommand = (
+function getPipelineGenerationCommand(
job: CheckoutCiJob,
pipelineGeneratorPath: string,
image = _image,
runFlags = _runFlags,
-): Command => [
- 'docker',
- 'run',
- ...runFlags,
- ...prependWith(
- Object.entries(job.arguments).map(([key, val]) => `"${key}"="${val}"`),
- '-e',
- ),
- '-v',
- `${getSrcDirectoryForCiJob(job)}/${pipelineGeneratorPath}:/pipeline_generator`,
- image,
- '/pipeline_generator',
-];
+): Command {
+ return [
+ 'docker',
+ 'run',
+ ...runFlags,
+ ...prependWith(
+ Object.entries(job.arguments).map(([key, val]) => `"${key}"="${val}"`),
+ '-e',
+ ),
+ '-v',
+ `${getSrcDirectoryForCiJob(job)}/${pipelineGeneratorPath}:/pipeline_generator`,
+ image,
+ '/pipeline_generator',
+ ];
+}
export interface CiWorkflow {
workflow: string;
}
-export const isCiWorkflow = (t: unknown): t is CiWorkflow =>
- isObject(t) && 'workflow' in t && typeof t.workflow === 'string' && !t.workflow.includes('..');
+export function isCiWorkflow(t: unknown): t is CiWorkflow {
+ return isObject(t) && 'workflow' in t && typeof t.workflow === 'string' && !t.workflow.includes('..');
+}
+
const CI_WORKFLOW_FILE = '.ci/ci.json';