diff --git a/src/index.ts b/src/index.ts index 0390b71..d6c3a76 100644 --- a/src/index.ts +++ b/src/index.ts @@ -20,6 +20,7 @@ async function run() { checkName, } = Input.getFromUser(); const baseImage = new ImageTag({ version: unityVersion, customImage }); + const runnerTempPath = process.env.RUNNER_TEMP; try { // Build docker image @@ -37,6 +38,7 @@ async function run() { sshAgent, gitPrivateToken, githubToken, + runnerTempPath, }); } finally { // Set output diff --git a/src/model/docker.ts b/src/model/docker.ts index f160c61..70c4eb1 100644 --- a/src/model/docker.ts +++ b/src/model/docker.ts @@ -1,13 +1,15 @@ +import { existsSync, mkdirSync } from 'fs'; import ImageTag from './image-tag'; import { exec } from '@actions/exec'; +import path from 'path'; const Docker = { async build(buildParameters, silent = false) { - const { path, dockerfile, baseImage } = buildParameters; + const { path: buildPath, dockerfile, baseImage } = buildParameters; const { version } = baseImage; const tag = new ImageTag({ version }); - const command = `docker build ${path} \ + const command = `docker build ${buildPath} \ --file ${dockerfile} \ --build-arg IMAGE=${baseImage} \ --tag ${tag}`; @@ -29,8 +31,14 @@ const Docker = { sshAgent, gitPrivateToken, githubToken, + runnerTempPath, } = parameters; + const githubHome = path.join(runnerTempPath, '_github_home'); + if (!existsSync(githubHome)) mkdirSync(githubHome); + const githubWorkflow = path.join(runnerTempPath, '_github_workflow'); + if (!existsSync(githubWorkflow)) mkdirSync(githubWorkflow); + const command = `docker run \ --workdir /github/workspace \ --rm \ @@ -61,10 +69,10 @@ const Docker = { --env RUNNER_WORKSPACE \ --env GIT_PRIVATE_TOKEN="${gitPrivateToken}" \ ${sshAgent ? '--env SSH_AUTH_SOCK=/ssh-agent' : ''} \ - --volume "/var/run/docker.sock":"/var/run/docker.sock" \ - --volume "/home/runner/work/_temp/_github_home":"/root" \ - --volume "/home/runner/work/_temp/_github_workflow":"/github/workflow" \ - --volume "${workspace}":"/github/workspace" \ + --volume "/var/run/docker.sock":"/var/run/docker.sock:z" \ + --volume "${githubHome}":"/root:z" \ + --volume "${githubWorkflow}":"/github/workflow:z" \ + --volume "${workspace}":"/github/workspace:z" \ ${sshAgent ? `--volume ${sshAgent}:/ssh-agent` : ''} \ ${sshAgent ? '--volume /home/runner/.ssh/known_hosts:/root/.ssh/known_hosts:ro' : ''} \ ${useHostNetwork ? '--net=host' : ''} \