Docker call cleanup
parent
0fd699d2a0
commit
e5e4d34792
|
|
@ -224,6 +224,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
|
const image_environment_factory_1 = __importDefault(__nccwpck_require__(5145));
|
||||||
const fs_1 = __nccwpck_require__(7147);
|
const fs_1 = __nccwpck_require__(7147);
|
||||||
const licensing_server_setup_1 = __importDefault(__nccwpck_require__(6089));
|
const licensing_server_setup_1 = __importDefault(__nccwpck_require__(6089));
|
||||||
const exec_1 = __nccwpck_require__(1514);
|
const exec_1 = __nccwpck_require__(1514);
|
||||||
|
|
@ -272,7 +273,7 @@ const Docker = {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
getLinuxCommand(image, parameters) {
|
getLinuxCommand(image, parameters) {
|
||||||
const { actionFolder, editorVersion, workspace, projectPath, customParameters, testMode, coverageOptions, artifactsPath, useHostNetwork, sshAgent, sshPublicKeysDirectoryPath, packageMode, packageName, gitPrivateToken, githubToken, runnerTemporaryPath, chownFilesTo, dockerCpuLimit, dockerMemoryLimit, unityLicensingServer, unitySerial, runAsHostUser, } = parameters;
|
const { actionFolder, workspace, testMode, useHostNetwork, sshAgent, sshPublicKeysDirectoryPath, githubToken, runnerTemporaryPath, dockerCpuLimit, dockerMemoryLimit, } = parameters;
|
||||||
const githubHome = path_1.default.join(runnerTemporaryPath, '_github_home');
|
const githubHome = path_1.default.join(runnerTemporaryPath, '_github_home');
|
||||||
if (!(0, fs_1.existsSync)(githubHome))
|
if (!(0, fs_1.existsSync)(githubHome))
|
||||||
(0, fs_1.mkdirSync)(githubHome);
|
(0, fs_1.mkdirSync)(githubHome);
|
||||||
|
|
@ -282,66 +283,37 @@ const Docker = {
|
||||||
const cidfile = containerIdFilePath(parameters);
|
const cidfile = containerIdFilePath(parameters);
|
||||||
const testPlatforms = (testMode === 'all' ? ['playmode', 'editmode', 'COMBINE_RESULTS'] : [testMode]).join(';');
|
const testPlatforms = (testMode === 'all' ? ['playmode', 'editmode', 'COMBINE_RESULTS'] : [testMode]).join(';');
|
||||||
return `docker run \
|
return `docker run \
|
||||||
--workdir /github/workspace \
|
--workdir /github/workspace \
|
||||||
--cidfile "${cidfile}" \
|
--cidfile "${cidfile}" \
|
||||||
--rm \
|
--rm \
|
||||||
--env UNITY_EMAIL \
|
${image_environment_factory_1.default.getEnvVarString(parameters)} \
|
||||||
--env UNITY_PASSWORD \
|
--env GIT_CONFIG_EXTENSIONS \
|
||||||
--env UNITY_SERIAL="${unitySerial} \
|
--env TEST_PLATFORMS="${testPlatforms}" \
|
||||||
--env UNITY_LICENSING_SERVER="${unityLicensingServer}" \
|
${sshAgent ? '--env SSH_AUTH_SOCK=/ssh-agent' : ''} \
|
||||||
--env UNITY_VERSION="${editorVersion}" \
|
--volume "${githubHome}:/root:z" \
|
||||||
--env PROJECT_PATH="${projectPath}" \
|
--volume "${githubWorkflow}:/github/workflow:z" \
|
||||||
--env CUSTOM_PARAMETERS="${customParameters}" \
|
--volume "${workspace}:/github/workspace:z" \
|
||||||
--env TEST_PLATFORMS="${testPlatforms}" \
|
--volume "${actionFolder}/test-standalone-scripts:/UnityStandaloneScripts:z" \
|
||||||
--env COVERAGE_OPTIONS="${coverageOptions}" \
|
--volume "${actionFolder}/platforms/ubuntu/steps:/steps:z" \
|
||||||
--env COVERAGE_RESULTS_PATH="CodeCoverage" \
|
--volume "${actionFolder}/platforms/ubuntu/entrypoint.sh:/entrypoint.sh:z" \
|
||||||
--env ARTIFACTS_PATH="${artifactsPath}" \
|
--volume "${actionFolder}/unity-config:/usr/share/unity3d/config/:z" \
|
||||||
--env PACKAGE_MODE="${packageMode}" \
|
--volume "${actionFolder}/BlankProject":"/BlankProject:z" \
|
||||||
--env PACKAGE_NAME="${packageName}" \
|
--cpus=${dockerCpuLimit} \
|
||||||
--env RUN_AS_HOST_USER="${runAsHostUser}" \
|
--memory=${dockerMemoryLimit} \
|
||||||
--env GITHUB_REF \
|
${sshAgent ? `--volume ${sshAgent}:/ssh-agent` : ''} \
|
||||||
--env GITHUB_SHA \
|
${sshAgent && !sshPublicKeysDirectoryPath
|
||||||
--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 \
|
|
||||||
--env GIT_PRIVATE_TOKEN="${gitPrivateToken}" \
|
|
||||||
--env CHOWN_FILES_TO="${chownFilesTo}" \
|
|
||||||
--env GIT_CONFIG_EXTENSIONS \
|
|
||||||
${sshAgent ? '--env SSH_AUTH_SOCK=/ssh-agent' : ''} \
|
|
||||||
--volume "${githubHome}:/root:z" \
|
|
||||||
--volume "${githubWorkflow}:/github/workflow:z" \
|
|
||||||
--volume "${workspace}:/github/workspace:z" \
|
|
||||||
--volume "${actionFolder}/test-standalone-scripts:/UnityStandaloneScripts:z" \
|
|
||||||
--volume "${actionFolder}/platforms/ubuntu/steps:/steps:z" \
|
|
||||||
--volume "${actionFolder}/platforms/ubuntu/entrypoint.sh:/entrypoint.sh:z" \
|
|
||||||
--volume "${actionFolder}/unity-config:/usr/share/unity3d/config/:z" \
|
|
||||||
--volume "${actionFolder}/BlankProject":"/BlankProject:z" \
|
|
||||||
--cpus=${dockerCpuLimit} \
|
|
||||||
--memory=${dockerMemoryLimit} \
|
|
||||||
${sshAgent ? `--volume ${sshAgent}:/ssh-agent` : ''} \
|
|
||||||
${sshAgent && !sshPublicKeysDirectoryPath
|
|
||||||
? `--volume /home/runner/.ssh/known_hosts:/root/.ssh/known_hosts:ro`
|
? `--volume /home/runner/.ssh/known_hosts:/root/.ssh/known_hosts:ro`
|
||||||
: ''} \
|
: ''} \
|
||||||
${sshPublicKeysDirectoryPath
|
${sshPublicKeysDirectoryPath
|
||||||
? `--volume ${sshPublicKeysDirectoryPath}:/root/.ssh:ro`
|
? `--volume ${sshPublicKeysDirectoryPath}:/root/.ssh:ro`
|
||||||
: ''} \
|
: ''} \
|
||||||
${useHostNetwork ? '--net=host' : ''} \
|
${useHostNetwork ? '--net=host' : ''} \
|
||||||
${githubToken ? '--env USE_EXIT_CODE=false' : '--env USE_EXIT_CODE=true'} \
|
${githubToken ? '--env USE_EXIT_CODE=false' : '--env USE_EXIT_CODE=true'} \
|
||||||
${image} \
|
${image} \
|
||||||
/bin/bash -c /entrypoint.sh`;
|
/bin/bash -c /entrypoint.sh`;
|
||||||
},
|
},
|
||||||
getWindowsCommand(image, parameters) {
|
getWindowsCommand(image, parameters) {
|
||||||
const { actionFolder, editorVersion, workspace, projectPath, customParameters, testMode, coverageOptions, artifactsPath, useHostNetwork, sshAgent, packageMode, packageName, gitPrivateToken, githubToken, runnerTemporaryPath, chownFilesTo, dockerCpuLimit, dockerMemoryLimit, dockerIsolationMode, unityLicensingServer, unitySerial, } = parameters;
|
const { actionFolder, workspace, testMode, useHostNetwork, sshAgent, githubToken, runnerTemporaryPath, dockerCpuLimit, dockerMemoryLimit, dockerIsolationMode, } = parameters;
|
||||||
const githubHome = path_1.default.join(runnerTemporaryPath, '_github_home');
|
const githubHome = path_1.default.join(runnerTemporaryPath, '_github_home');
|
||||||
if (!(0, fs_1.existsSync)(githubHome))
|
if (!(0, fs_1.existsSync)(githubHome))
|
||||||
(0, fs_1.mkdirSync)(githubHome);
|
(0, fs_1.mkdirSync)(githubHome);
|
||||||
|
|
@ -354,36 +326,9 @@ const Docker = {
|
||||||
--workdir c:/github/workspace \
|
--workdir c:/github/workspace \
|
||||||
--cidfile "${cidfile}" \
|
--cidfile "${cidfile}" \
|
||||||
--rm \
|
--rm \
|
||||||
--env UNITY_EMAIL \
|
${image_environment_factory_1.default.getEnvVarString(parameters)} \
|
||||||
--env UNITY_PASSWORD \
|
|
||||||
--env UNITY_SERIAL="${unitySerial}" \
|
|
||||||
--env UNITY_LICENSING_SERVER="${unityLicensingServer}" \
|
|
||||||
--env UNITY_VERSION="${editorVersion}" \
|
|
||||||
--env PROJECT_PATH="${projectPath}" \
|
|
||||||
--env CUSTOM_PARAMETERS="${customParameters}" \
|
|
||||||
--env TEST_PLATFORMS="${testPlatforms}" \
|
--env TEST_PLATFORMS="${testPlatforms}" \
|
||||||
--env COVERAGE_OPTIONS="${coverageOptions}" \
|
|
||||||
--env COVERAGE_RESULTS_PATH="CodeCoverage" \
|
|
||||||
--env ARTIFACTS_PATH="${artifactsPath}" \
|
|
||||||
--env PACKAGE_MODE="${packageMode}" \
|
|
||||||
--env PACKAGE_NAME="${packageName}" \
|
|
||||||
--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="c:/github/workspace" \
|
--env GITHUB_WORKSPACE="c:/github/workspace" \
|
||||||
--env GITHUB_ACTION \
|
|
||||||
--env GITHUB_EVENT_PATH \
|
|
||||||
--env RUNNER_OS \
|
|
||||||
--env RUNNER_TOOL_CACHE \
|
|
||||||
--env RUNNER_TEMP \
|
|
||||||
--env RUNNER_WORKSPACE \
|
|
||||||
--env GIT_PRIVATE_TOKEN="${gitPrivateToken}" \
|
|
||||||
--env CHOWN_FILES_TO="${chownFilesTo}" \
|
|
||||||
${sshAgent ? '--env SSH_AUTH_SOCK=c:/ssh-agent' : ''} \
|
${sshAgent ? '--env SSH_AUTH_SOCK=c:/ssh-agent' : ''} \
|
||||||
--volume "${actionFolder}/test-standalone-scripts":"c:/UnityStandaloneScripts" \
|
--volume "${actionFolder}/test-standalone-scripts":"c:/UnityStandaloneScripts" \
|
||||||
--volume "${githubHome}":"c:/root" \
|
--volume "${githubHome}":"c:/root" \
|
||||||
|
|
@ -407,6 +352,85 @@ const Docker = {
|
||||||
exports["default"] = Docker;
|
exports["default"] = Docker;
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 5145:
|
||||||
|
/***/ ((__unused_webpack_module, exports) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
|
class ImageEnvironmentFactory {
|
||||||
|
static getEnvVarString(parameters) {
|
||||||
|
const environmentVariables = ImageEnvironmentFactory.getEnvironmentVariables(parameters);
|
||||||
|
let string = '';
|
||||||
|
for (const p of environmentVariables) {
|
||||||
|
if (p.value === '' || p.value === undefined) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (p.name !== 'ANDROID_KEYSTORE_BASE64' && p.value.toString().includes(`\n`)) {
|
||||||
|
string += `--env ${p.name} `;
|
||||||
|
process.env[p.name] = p.value.toString();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
string += `--env ${p.name}="${p.value}" `;
|
||||||
|
}
|
||||||
|
return string;
|
||||||
|
}
|
||||||
|
static getEnvironmentVariables(parameters) {
|
||||||
|
let environmentVariables = [
|
||||||
|
{ name: 'UNITY_EMAIL', value: process.env.UNITY_EMAIL },
|
||||||
|
{ name: 'UNITY_PASSWORD', value: process.env.UNITY_PASSWORD },
|
||||||
|
{ name: 'UNITY_SERIAL', value: parameters.unitySerial },
|
||||||
|
{
|
||||||
|
name: 'UNITY_LICENSING_SERVER',
|
||||||
|
value: parameters.unityLicensingServer,
|
||||||
|
},
|
||||||
|
{ name: 'UNITY_VERSION', value: parameters.editorVersion },
|
||||||
|
{
|
||||||
|
name: 'USYM_UPLOAD_AUTH_TOKEN',
|
||||||
|
value: process.env.USYM_UPLOAD_AUTH_TOKEN,
|
||||||
|
},
|
||||||
|
{ name: 'PROJECT_PATH', value: parameters.projectPath },
|
||||||
|
{ name: 'COVERAGE_OPTIONS', value: parameters.coverageOptions },
|
||||||
|
{ name: 'COVERAGE_RESULTS_PATH', value: 'CodeCoverage' },
|
||||||
|
{ name: 'ARTIFACTS_PATH', value: parameters.artifactsPath },
|
||||||
|
{ name: 'PACKAGE_MODE', value: parameters.packageMode },
|
||||||
|
{ name: 'PACKAGE_NAME', value: parameters.packageName },
|
||||||
|
{ name: 'GIT_PRIVATE_TOKEN', value: parameters.gitPrivateToken },
|
||||||
|
{ name: 'VERSION', value: parameters.buildVersion },
|
||||||
|
{ name: 'CUSTOM_PARAMETERS', value: parameters.customParameters },
|
||||||
|
{ name: 'RUN_AS_HOST_USER', value: parameters.runAsHostUser },
|
||||||
|
{ name: 'CHOWN_FILES_TO', value: parameters.chownFilesTo },
|
||||||
|
{ name: 'GITHUB_REF', value: process.env.GITHUB_REF },
|
||||||
|
{ name: 'GITHUB_SHA', value: process.env.GITHUB_SHA },
|
||||||
|
{ name: 'GITHUB_REPOSITORY', value: process.env.GITHUB_REPOSITORY },
|
||||||
|
{ name: 'GITHUB_ACTOR', value: process.env.GITHUB_ACTOR },
|
||||||
|
{ name: 'GITHUB_WORKFLOW', value: process.env.GITHUB_WORKFLOW },
|
||||||
|
{ name: 'GITHUB_HEAD_REF', value: process.env.GITHUB_HEAD_REF },
|
||||||
|
{ name: 'GITHUB_BASE_REF', value: process.env.GITHUB_BASE_REF },
|
||||||
|
{ name: 'GITHUB_EVENT_NAME', value: process.env.GITHUB_EVENT_NAME },
|
||||||
|
{ name: 'GITHUB_ACTION', value: process.env.GITHUB_ACTION },
|
||||||
|
{ name: 'GITHUB_EVENT_PATH', value: process.env.GITHUB_EVENT_PATH },
|
||||||
|
{ name: 'RUNNER_OS', value: process.env.RUNNER_OS },
|
||||||
|
{ name: 'RUNNER_TOOL_CACHE', value: process.env.RUNNER_TOOL_CACHE },
|
||||||
|
{ name: 'RUNNER_TEMP', value: process.env.RUNNER_TEMP },
|
||||||
|
{ name: 'RUNNER_WORKSPACE', value: process.env.RUNNER_WORKSPACE },
|
||||||
|
];
|
||||||
|
for (const variable of environmentVariables) {
|
||||||
|
if (environmentVariables.some(x => variable !== undefined && variable.name !== undefined && x.name === variable.name) === undefined) {
|
||||||
|
environmentVariables = environmentVariables.filter(x => x !== variable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (parameters.sshAgent) {
|
||||||
|
environmentVariables.push({ name: 'SSH_AUTH_SOCK', value: '/ssh-agent' });
|
||||||
|
}
|
||||||
|
return environmentVariables;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports["default"] = ImageEnvironmentFactory;
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 7648:
|
/***/ 7648:
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,3 +1,4 @@
|
||||||
|
import ImageEnvironmentFactory from './image-environment-factory';
|
||||||
import { existsSync, mkdirSync, readFileSync, rmSync } from 'fs';
|
import { existsSync, mkdirSync, readFileSync, rmSync } from 'fs';
|
||||||
import LicensingServerSetup from './licensing-server-setup';
|
import LicensingServerSetup from './licensing-server-setup';
|
||||||
import type { RunnerContext } from './action';
|
import type { RunnerContext } from './action';
|
||||||
|
|
@ -53,27 +54,15 @@ const Docker = {
|
||||||
getLinuxCommand(image, parameters): string {
|
getLinuxCommand(image, parameters): string {
|
||||||
const {
|
const {
|
||||||
actionFolder,
|
actionFolder,
|
||||||
editorVersion,
|
|
||||||
workspace,
|
workspace,
|
||||||
projectPath,
|
|
||||||
customParameters,
|
|
||||||
testMode,
|
testMode,
|
||||||
coverageOptions,
|
|
||||||
artifactsPath,
|
|
||||||
useHostNetwork,
|
useHostNetwork,
|
||||||
sshAgent,
|
sshAgent,
|
||||||
sshPublicKeysDirectoryPath,
|
sshPublicKeysDirectoryPath,
|
||||||
packageMode,
|
|
||||||
packageName,
|
|
||||||
gitPrivateToken,
|
|
||||||
githubToken,
|
githubToken,
|
||||||
runnerTemporaryPath,
|
runnerTemporaryPath,
|
||||||
chownFilesTo,
|
|
||||||
dockerCpuLimit,
|
dockerCpuLimit,
|
||||||
dockerMemoryLimit,
|
dockerMemoryLimit,
|
||||||
unityLicensingServer,
|
|
||||||
unitySerial,
|
|
||||||
runAsHostUser,
|
|
||||||
} = parameters;
|
} = parameters;
|
||||||
|
|
||||||
const githubHome = path.join(runnerTemporaryPath, '_github_home');
|
const githubHome = path.join(runnerTemporaryPath, '_github_home');
|
||||||
|
|
@ -86,92 +75,52 @@ const Docker = {
|
||||||
).join(';');
|
).join(';');
|
||||||
|
|
||||||
return `docker run \
|
return `docker run \
|
||||||
--workdir /github/workspace \
|
--workdir /github/workspace \
|
||||||
--cidfile "${cidfile}" \
|
--cidfile "${cidfile}" \
|
||||||
--rm \
|
--rm \
|
||||||
--env UNITY_EMAIL \
|
${ImageEnvironmentFactory.getEnvVarString(parameters)} \
|
||||||
--env UNITY_PASSWORD \
|
--env GIT_CONFIG_EXTENSIONS \
|
||||||
--env UNITY_SERIAL="${unitySerial} \
|
--env TEST_PLATFORMS="${testPlatforms}" \
|
||||||
--env UNITY_LICENSING_SERVER="${unityLicensingServer}" \
|
${sshAgent ? '--env SSH_AUTH_SOCK=/ssh-agent' : ''} \
|
||||||
--env UNITY_VERSION="${editorVersion}" \
|
--volume "${githubHome}:/root:z" \
|
||||||
--env PROJECT_PATH="${projectPath}" \
|
--volume "${githubWorkflow}:/github/workflow:z" \
|
||||||
--env CUSTOM_PARAMETERS="${customParameters}" \
|
--volume "${workspace}:/github/workspace:z" \
|
||||||
--env TEST_PLATFORMS="${testPlatforms}" \
|
--volume "${actionFolder}/test-standalone-scripts:/UnityStandaloneScripts:z" \
|
||||||
--env COVERAGE_OPTIONS="${coverageOptions}" \
|
--volume "${actionFolder}/platforms/ubuntu/steps:/steps:z" \
|
||||||
--env COVERAGE_RESULTS_PATH="CodeCoverage" \
|
--volume "${actionFolder}/platforms/ubuntu/entrypoint.sh:/entrypoint.sh:z" \
|
||||||
--env ARTIFACTS_PATH="${artifactsPath}" \
|
--volume "${actionFolder}/unity-config:/usr/share/unity3d/config/:z" \
|
||||||
--env PACKAGE_MODE="${packageMode}" \
|
--volume "${actionFolder}/BlankProject":"/BlankProject:z" \
|
||||||
--env PACKAGE_NAME="${packageName}" \
|
--cpus=${dockerCpuLimit} \
|
||||||
--env RUN_AS_HOST_USER="${runAsHostUser}" \
|
--memory=${dockerMemoryLimit} \
|
||||||
--env GITHUB_REF \
|
${sshAgent ? `--volume ${sshAgent}:/ssh-agent` : ''} \
|
||||||
--env GITHUB_SHA \
|
${
|
||||||
--env GITHUB_REPOSITORY \
|
sshAgent && !sshPublicKeysDirectoryPath
|
||||||
--env GITHUB_ACTOR \
|
? `--volume /home/runner/.ssh/known_hosts:/root/.ssh/known_hosts:ro`
|
||||||
--env GITHUB_WORKFLOW \
|
: ''
|
||||||
--env GITHUB_HEAD_REF \
|
} \
|
||||||
--env GITHUB_BASE_REF \
|
${
|
||||||
--env GITHUB_EVENT_NAME \
|
sshPublicKeysDirectoryPath
|
||||||
--env GITHUB_WORKSPACE="/github/workspace" \
|
? `--volume ${sshPublicKeysDirectoryPath}:/root/.ssh:ro`
|
||||||
--env GITHUB_ACTION \
|
: ''
|
||||||
--env GITHUB_EVENT_PATH \
|
} \
|
||||||
--env RUNNER_OS \
|
${useHostNetwork ? '--net=host' : ''} \
|
||||||
--env RUNNER_TOOL_CACHE \
|
${githubToken ? '--env USE_EXIT_CODE=false' : '--env USE_EXIT_CODE=true'} \
|
||||||
--env RUNNER_TEMP \
|
${image} \
|
||||||
--env RUNNER_WORKSPACE \
|
/bin/bash -c /entrypoint.sh`;
|
||||||
--env GIT_PRIVATE_TOKEN="${gitPrivateToken}" \
|
|
||||||
--env CHOWN_FILES_TO="${chownFilesTo}" \
|
|
||||||
--env GIT_CONFIG_EXTENSIONS \
|
|
||||||
${sshAgent ? '--env SSH_AUTH_SOCK=/ssh-agent' : ''} \
|
|
||||||
--volume "${githubHome}:/root:z" \
|
|
||||||
--volume "${githubWorkflow}:/github/workflow:z" \
|
|
||||||
--volume "${workspace}:/github/workspace:z" \
|
|
||||||
--volume "${actionFolder}/test-standalone-scripts:/UnityStandaloneScripts:z" \
|
|
||||||
--volume "${actionFolder}/platforms/ubuntu/steps:/steps:z" \
|
|
||||||
--volume "${actionFolder}/platforms/ubuntu/entrypoint.sh:/entrypoint.sh:z" \
|
|
||||||
--volume "${actionFolder}/unity-config:/usr/share/unity3d/config/:z" \
|
|
||||||
--volume "${actionFolder}/BlankProject":"/BlankProject:z" \
|
|
||||||
--cpus=${dockerCpuLimit} \
|
|
||||||
--memory=${dockerMemoryLimit} \
|
|
||||||
${sshAgent ? `--volume ${sshAgent}:/ssh-agent` : ''} \
|
|
||||||
${
|
|
||||||
sshAgent && !sshPublicKeysDirectoryPath
|
|
||||||
? `--volume /home/runner/.ssh/known_hosts:/root/.ssh/known_hosts:ro`
|
|
||||||
: ''
|
|
||||||
} \
|
|
||||||
${
|
|
||||||
sshPublicKeysDirectoryPath
|
|
||||||
? `--volume ${sshPublicKeysDirectoryPath}:/root/.ssh:ro`
|
|
||||||
: ''
|
|
||||||
} \
|
|
||||||
${useHostNetwork ? '--net=host' : ''} \
|
|
||||||
${githubToken ? '--env USE_EXIT_CODE=false' : '--env USE_EXIT_CODE=true'} \
|
|
||||||
${image} \
|
|
||||||
/bin/bash -c /entrypoint.sh`;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
getWindowsCommand(image, parameters): string {
|
getWindowsCommand(image, parameters): string {
|
||||||
const {
|
const {
|
||||||
actionFolder,
|
actionFolder,
|
||||||
editorVersion,
|
|
||||||
workspace,
|
workspace,
|
||||||
projectPath,
|
|
||||||
customParameters,
|
|
||||||
testMode,
|
testMode,
|
||||||
coverageOptions,
|
|
||||||
artifactsPath,
|
|
||||||
useHostNetwork,
|
useHostNetwork,
|
||||||
sshAgent,
|
sshAgent,
|
||||||
packageMode,
|
|
||||||
packageName,
|
|
||||||
gitPrivateToken,
|
|
||||||
githubToken,
|
githubToken,
|
||||||
runnerTemporaryPath,
|
runnerTemporaryPath,
|
||||||
chownFilesTo,
|
|
||||||
dockerCpuLimit,
|
dockerCpuLimit,
|
||||||
dockerMemoryLimit,
|
dockerMemoryLimit,
|
||||||
dockerIsolationMode,
|
dockerIsolationMode,
|
||||||
unityLicensingServer,
|
|
||||||
unitySerial,
|
|
||||||
} = parameters;
|
} = parameters;
|
||||||
|
|
||||||
const githubHome = path.join(runnerTemporaryPath, '_github_home');
|
const githubHome = path.join(runnerTemporaryPath, '_github_home');
|
||||||
|
|
@ -187,36 +136,9 @@ const Docker = {
|
||||||
--workdir c:/github/workspace \
|
--workdir c:/github/workspace \
|
||||||
--cidfile "${cidfile}" \
|
--cidfile "${cidfile}" \
|
||||||
--rm \
|
--rm \
|
||||||
--env UNITY_EMAIL \
|
${ImageEnvironmentFactory.getEnvVarString(parameters)} \
|
||||||
--env UNITY_PASSWORD \
|
|
||||||
--env UNITY_SERIAL="${unitySerial}" \
|
|
||||||
--env UNITY_LICENSING_SERVER="${unityLicensingServer}" \
|
|
||||||
--env UNITY_VERSION="${editorVersion}" \
|
|
||||||
--env PROJECT_PATH="${projectPath}" \
|
|
||||||
--env CUSTOM_PARAMETERS="${customParameters}" \
|
|
||||||
--env TEST_PLATFORMS="${testPlatforms}" \
|
--env TEST_PLATFORMS="${testPlatforms}" \
|
||||||
--env COVERAGE_OPTIONS="${coverageOptions}" \
|
|
||||||
--env COVERAGE_RESULTS_PATH="CodeCoverage" \
|
|
||||||
--env ARTIFACTS_PATH="${artifactsPath}" \
|
|
||||||
--env PACKAGE_MODE="${packageMode}" \
|
|
||||||
--env PACKAGE_NAME="${packageName}" \
|
|
||||||
--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="c:/github/workspace" \
|
--env GITHUB_WORKSPACE="c:/github/workspace" \
|
||||||
--env GITHUB_ACTION \
|
|
||||||
--env GITHUB_EVENT_PATH \
|
|
||||||
--env RUNNER_OS \
|
|
||||||
--env RUNNER_TOOL_CACHE \
|
|
||||||
--env RUNNER_TEMP \
|
|
||||||
--env RUNNER_WORKSPACE \
|
|
||||||
--env GIT_PRIVATE_TOKEN="${gitPrivateToken}" \
|
|
||||||
--env CHOWN_FILES_TO="${chownFilesTo}" \
|
|
||||||
${sshAgent ? '--env SSH_AUTH_SOCK=c:/ssh-agent' : ''} \
|
${sshAgent ? '--env SSH_AUTH_SOCK=c:/ssh-agent' : ''} \
|
||||||
--volume "${actionFolder}/test-standalone-scripts":"c:/UnityStandaloneScripts" \
|
--volume "${actionFolder}/test-standalone-scripts":"c:/UnityStandaloneScripts" \
|
||||||
--volume "${githubHome}":"c:/root" \
|
--volume "${githubHome}":"c:/root" \
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,80 @@
|
||||||
|
class ImageEnvironmentFactory {
|
||||||
|
public static getEnvVarString(parameters) {
|
||||||
|
const environmentVariables = ImageEnvironmentFactory.getEnvironmentVariables(parameters);
|
||||||
|
let string = '';
|
||||||
|
for (const p of environmentVariables) {
|
||||||
|
if (p.value === '' || p.value === undefined) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (p.name !== 'ANDROID_KEYSTORE_BASE64' && p.value.toString().includes(`\n`)) {
|
||||||
|
string += `--env ${p.name} `;
|
||||||
|
process.env[p.name] = p.value.toString();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
string += `--env ${p.name}="${p.value}" `;
|
||||||
|
}
|
||||||
|
|
||||||
|
return string;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static getEnvironmentVariables(parameters) {
|
||||||
|
let environmentVariables = [
|
||||||
|
{ name: 'UNITY_EMAIL', value: process.env.UNITY_EMAIL },
|
||||||
|
{ name: 'UNITY_PASSWORD', value: process.env.UNITY_PASSWORD },
|
||||||
|
{ name: 'UNITY_SERIAL', value: parameters.unitySerial },
|
||||||
|
{
|
||||||
|
name: 'UNITY_LICENSING_SERVER',
|
||||||
|
value: parameters.unityLicensingServer,
|
||||||
|
},
|
||||||
|
{ name: 'UNITY_VERSION', value: parameters.editorVersion },
|
||||||
|
{
|
||||||
|
name: 'USYM_UPLOAD_AUTH_TOKEN',
|
||||||
|
value: process.env.USYM_UPLOAD_AUTH_TOKEN,
|
||||||
|
},
|
||||||
|
{ name: 'PROJECT_PATH', value: parameters.projectPath },
|
||||||
|
{ name: 'COVERAGE_OPTIONS', value: parameters.coverageOptions },
|
||||||
|
{ name: 'COVERAGE_RESULTS_PATH', value: 'CodeCoverage' },
|
||||||
|
{ name: 'ARTIFACTS_PATH', value: parameters.artifactsPath },
|
||||||
|
{ name: 'PACKAGE_MODE', value: parameters.packageMode },
|
||||||
|
{ name: 'PACKAGE_NAME', value: parameters.packageName },
|
||||||
|
{ name: 'GIT_PRIVATE_TOKEN', value: parameters.gitPrivateToken },
|
||||||
|
{ name: 'VERSION', value: parameters.buildVersion },
|
||||||
|
{ name: 'CUSTOM_PARAMETERS', value: parameters.customParameters },
|
||||||
|
{ name: 'RUN_AS_HOST_USER', value: parameters.runAsHostUser },
|
||||||
|
{ name: 'CHOWN_FILES_TO', value: parameters.chownFilesTo },
|
||||||
|
{ name: 'GITHUB_REF', value: process.env.GITHUB_REF },
|
||||||
|
{ name: 'GITHUB_SHA', value: process.env.GITHUB_SHA },
|
||||||
|
{ name: 'GITHUB_REPOSITORY', value: process.env.GITHUB_REPOSITORY },
|
||||||
|
{ name: 'GITHUB_ACTOR', value: process.env.GITHUB_ACTOR },
|
||||||
|
{ name: 'GITHUB_WORKFLOW', value: process.env.GITHUB_WORKFLOW },
|
||||||
|
{ name: 'GITHUB_HEAD_REF', value: process.env.GITHUB_HEAD_REF },
|
||||||
|
{ name: 'GITHUB_BASE_REF', value: process.env.GITHUB_BASE_REF },
|
||||||
|
{ name: 'GITHUB_EVENT_NAME', value: process.env.GITHUB_EVENT_NAME },
|
||||||
|
{ name: 'GITHUB_ACTION', value: process.env.GITHUB_ACTION },
|
||||||
|
{ name: 'GITHUB_EVENT_PATH', value: process.env.GITHUB_EVENT_PATH },
|
||||||
|
{ name: 'RUNNER_OS', value: process.env.RUNNER_OS },
|
||||||
|
{ name: 'RUNNER_TOOL_CACHE', value: process.env.RUNNER_TOOL_CACHE },
|
||||||
|
{ name: 'RUNNER_TEMP', value: process.env.RUNNER_TEMP },
|
||||||
|
{ name: 'RUNNER_WORKSPACE', value: process.env.RUNNER_WORKSPACE },
|
||||||
|
];
|
||||||
|
|
||||||
|
for (const variable of environmentVariables) {
|
||||||
|
if (
|
||||||
|
environmentVariables.some(
|
||||||
|
x => variable !== undefined && variable.name !== undefined && x.name === variable.name,
|
||||||
|
) === undefined
|
||||||
|
) {
|
||||||
|
environmentVariables = environmentVariables.filter(x => x !== variable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parameters.sshAgent) {
|
||||||
|
environmentVariables.push({ name: 'SSH_AUTH_SOCK', value: '/ssh-agent' });
|
||||||
|
}
|
||||||
|
|
||||||
|
return environmentVariables;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ImageEnvironmentFactory;
|
||||||
Loading…
Reference in New Issue