2020-01-29 21:22:26 +00:00
|
|
|
import { exec } from '@actions/exec';
|
|
|
|
import ImageTag from './image-tag';
|
|
|
|
|
|
|
|
class Docker {
|
|
|
|
static async build(buildParameters, silent = false) {
|
|
|
|
const { path, dockerfile, baseImage } = buildParameters;
|
|
|
|
const { version } = baseImage;
|
|
|
|
|
|
|
|
const tag = ImageTag.createForAction(version);
|
|
|
|
const command = `docker build ${path} \
|
|
|
|
--file ${dockerfile} \
|
|
|
|
--build-arg IMAGE=${baseImage} \
|
|
|
|
--tag ${tag}`;
|
|
|
|
|
2021-01-11 00:05:18 +00:00
|
|
|
await exec(command, undefined, { silent });
|
2020-01-29 21:22:26 +00:00
|
|
|
|
|
|
|
return tag;
|
|
|
|
}
|
|
|
|
|
|
|
|
static async run(image, parameters, silent = false) {
|
2020-01-30 23:57:08 +00:00
|
|
|
const {
|
|
|
|
unityVersion,
|
|
|
|
workspace,
|
|
|
|
projectPath,
|
|
|
|
testMode,
|
|
|
|
artifactsPath,
|
2020-04-01 20:24:13 +00:00
|
|
|
useHostNetwork,
|
2020-01-30 23:57:08 +00:00
|
|
|
customParameters,
|
2021-05-28 21:55:58 +00:00
|
|
|
sshAgent,
|
2021-10-18 02:40:32 +00:00
|
|
|
packageMode,
|
2021-02-28 06:44:56 +00:00
|
|
|
githubToken,
|
2020-01-30 23:57:08 +00:00
|
|
|
} = parameters;
|
2020-01-29 21:22:26 +00:00
|
|
|
|
|
|
|
const command = `docker run \
|
|
|
|
--workdir /github/workspace \
|
|
|
|
--rm \
|
|
|
|
--env UNITY_LICENSE \
|
2020-03-04 16:51:47 +00:00
|
|
|
--env UNITY_LICENSE_FILE \
|
2020-01-29 21:22:26 +00:00
|
|
|
--env UNITY_EMAIL \
|
|
|
|
--env UNITY_PASSWORD \
|
|
|
|
--env UNITY_SERIAL \
|
2020-02-01 19:41:14 +00:00
|
|
|
--env UNITY_VERSION="${unityVersion}" \
|
|
|
|
--env PROJECT_PATH="${projectPath}" \
|
|
|
|
--env TEST_MODE="${testMode}" \
|
|
|
|
--env ARTIFACTS_PATH="${artifactsPath}" \
|
|
|
|
--env CUSTOM_PARAMETERS="${customParameters}" \
|
2021-10-18 02:40:32 +00:00
|
|
|
--env PACKAGE_MODE="${packageMode}" \
|
2020-01-29 21:22:26 +00:00
|
|
|
--env GITHUB_REF \
|
|
|
|
--env GITHUB_SHA \
|
|
|
|
--env GITHUB_REPOSITORY \
|
|
|
|
--env GITHUB_ACTOR \
|
|
|
|
--env GITHUB_WORKFLOW \
|
|
|
|
--env GITHUB_HEAD_REF \
|
|
|
|
--env GITHUB_BASE_REF \
|
|
|
|
--env GITHUB_EVENT_NAME \
|
|
|
|
--env GITHUB_WORKSPACE=/github/workspace \
|
|
|
|
--env GITHUB_ACTION \
|
|
|
|
--env GITHUB_EVENT_PATH \
|
|
|
|
--env RUNNER_OS \
|
|
|
|
--env RUNNER_TOOL_CACHE \
|
|
|
|
--env RUNNER_TEMP \
|
|
|
|
--env RUNNER_WORKSPACE \
|
2021-05-28 21:55:58 +00:00
|
|
|
${sshAgent ? '--env SSH_AUTH_SOCK=/ssh-agent' : ''} \
|
2020-01-29 21:22:26 +00:00
|
|
|
--volume "/var/run/docker.sock":"/var/run/docker.sock" \
|
2021-05-28 21:55:58 +00:00
|
|
|
--volume "/home/runner/work/_temp/_github_home":"/root" \
|
2020-01-29 21:22:26 +00:00
|
|
|
--volume "/home/runner/work/_temp/_github_workflow":"/github/workflow" \
|
|
|
|
--volume "${workspace}":"/github/workspace" \
|
2021-05-28 21:55:58 +00:00
|
|
|
${sshAgent ? `--volume ${sshAgent}:/ssh-agent` : ''} \
|
|
|
|
${sshAgent ? '--volume /home/runner/.ssh/known_hosts:/root/.ssh/known_hosts:ro' : ''} \
|
2020-04-01 20:24:13 +00:00
|
|
|
${useHostNetwork ? '--net=host' : ''} \
|
2021-02-28 06:44:56 +00:00
|
|
|
${githubToken ? '--env USE_EXIT_CODE=false' : '--env USE_EXIT_CODE=true'} \
|
2020-01-29 21:22:26 +00:00
|
|
|
${image}`;
|
|
|
|
|
2021-01-11 00:05:18 +00:00
|
|
|
await exec(command, undefined, { silent });
|
2020-01-29 21:22:26 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default Docker;
|