From 011ffb284e0b64ca97d9e37fbdab842fb709854f Mon Sep 17 00:00:00 2001 From: zarko-a <59746384+zarko-a@users.noreply.github.com> Date: Wed, 26 Nov 2025 04:46:47 -0600 Subject: [PATCH] Fix workingDir permissions issue by creating it within init container (#283) * Fix workingDir permissions issue by creating it within init container * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * rework init commands --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- packages/k8s/src/k8s/index.ts | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) 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