diff --git a/packages/k8s/src/k8s/index.ts b/packages/k8s/src/k8s/index.ts index 86ac023..36696a7 100644 --- a/packages/k8s/src/k8s/index.ts +++ b/packages/k8s/src/k8s/index.ts @@ -96,20 +96,30 @@ export async function createJobPod( appPod.spec.securityContext = { fsGroup: 1001 } + + // Extract working directory from GITHUB_WORKSPACE + // GITHUB_WORKSPACE is like /__w/repo-name/repo-name + const githubWorkspace = process.env.GITHUB_WORKSPACE + const workingDirPath = githubWorkspace?.split('/').slice(-2).join('/') ?? '' + + const initCommands = [ + 'mkdir -p /mnt/externals', + 'mkdir -p /mnt/work', + 'mkdir -p /mnt/github', + 'mv /home/runner/externals/* /mnt/externals/' + ] + + if (workingDirPath) { + initCommands.push(`mkdir -p /mnt/work/${workingDirPath}`) + } + appPod.spec.initContainers = [ { name: 'fs-init', image: process.env.ACTIONS_RUNNER_IMAGE || 'ghcr.io/actions/actions-runner:latest', - command: [ - 'sh', - '-c', - `mkdir -p /mnt/externals && \\ - mkdir -p /mnt/work && \\ - mkdir -p /mnt/github && \\ - mv /home/runner/externals/* /mnt/externals/` - ], + command: ['sh', '-c', initCommands.join(' && ')], securityContext: { runAsGroup: 1001, runAsUser: 1001