mirror of
https://github.com/game-ci/unity-builder.git
synced 2026-06-10 16:03:54 -07:00
9d475434d3
* Rename "Cloud Runner" to "Orchestrator" across entire codebase Breaking change: All CloudRunner classes, options, environment variables, and action.yml inputs have been renamed to Orchestrator equivalents. - Renamed src/model/cloud-runner/ directory to src/model/orchestrator/ - Renamed all cloud-runner-* files to orchestrator-* - Renamed all CloudRunner* classes to Orchestrator* (15+ classes) - Renamed all cloudRunner* properties to orchestrator* equivalents - Renamed CLOUD_RUNNER_* env vars to ORCHESTRATOR_* - Updated action.yml [CloudRunner] markers to [Orchestrator] - Updated workflow files and package.json test scripts - Updated all runtime strings (cache paths, log messages, branch refs) - Rebuilt dist/index.js No backward compatibility layer is provided. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Remove tracked log/temp files and add to .gitignore Remove $LOG_FILE and temp/job-log.txt debug artifacts that should not be in the repository. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
102 lines
4.7 KiB
TypeScript
102 lines
4.7 KiB
TypeScript
import { DockerParameters, StringKeyValuePair } from './shared-types';
|
|
|
|
class ImageEnvironmentFactory {
|
|
public static getEnvVarString(parameters: DockerParameters, additionalVariables: StringKeyValuePair[] = []) {
|
|
const environmentVariables = ImageEnvironmentFactory.getEnvironmentVariables(parameters, additionalVariables);
|
|
let string = '';
|
|
for (const p of environmentVariables) {
|
|
if (p.value === '' || p.value === undefined || p.value === null) {
|
|
continue;
|
|
}
|
|
const valueAsString = typeof p.value === 'string' ? p.value : String(p.value);
|
|
if (p.name !== 'ANDROID_KEYSTORE_BASE64' && valueAsString.includes(`\n`)) {
|
|
string += `--env ${p.name} `;
|
|
process.env[p.name] = valueAsString;
|
|
continue;
|
|
}
|
|
|
|
string += `--env ${p.name}="${valueAsString}" `;
|
|
}
|
|
|
|
return string;
|
|
}
|
|
|
|
public static getEnvironmentVariables(parameters: DockerParameters, additionalVariables: StringKeyValuePair[] = []) {
|
|
let environmentVariables: StringKeyValuePair[] = [
|
|
{ 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: 'SKIP_ACTIVATION', value: parameters.skipActivation },
|
|
{ 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: 'BUILD_PROFILE', value: parameters.buildProfile },
|
|
{ name: 'BUILD_TARGET', value: parameters.targetPlatform },
|
|
{ name: 'BUILD_NAME', value: parameters.buildName },
|
|
{ name: 'BUILD_PATH', value: parameters.buildPath },
|
|
{ name: 'BUILD_FILE', value: parameters.buildFile },
|
|
{ name: 'BUILD_METHOD', value: parameters.buildMethod },
|
|
{ name: 'MANUAL_EXIT', value: parameters.manualExit },
|
|
{ name: 'ENABLE_GPU', value: parameters.enableGpu },
|
|
{ name: 'VERSION', value: parameters.buildVersion },
|
|
{ name: 'ANDROID_VERSION_CODE', value: parameters.androidVersionCode },
|
|
{ name: 'ANDROID_KEYSTORE_NAME', value: parameters.androidKeystoreName },
|
|
{
|
|
name: 'ANDROID_KEYSTORE_BASE64',
|
|
value: parameters.androidKeystoreBase64,
|
|
},
|
|
{ name: 'ANDROID_KEYSTORE_PASS', value: parameters.androidKeystorePass },
|
|
{ name: 'ANDROID_KEYALIAS_NAME', value: parameters.androidKeyaliasName },
|
|
{ name: 'ANDROID_KEYALIAS_PASS', value: parameters.androidKeyaliasPass },
|
|
{
|
|
name: 'ANDROID_TARGET_SDK_VERSION',
|
|
value: parameters.androidTargetSdkVersion,
|
|
},
|
|
{
|
|
name: 'ANDROID_SDK_MANAGER_PARAMETERS',
|
|
value: parameters.androidSdkManagerParameters,
|
|
},
|
|
{ name: 'ANDROID_EXPORT_TYPE', value: parameters.androidExportType },
|
|
{ name: 'ANDROID_SYMBOL_TYPE', value: parameters.androidSymbolType },
|
|
{ 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 },
|
|
];
|
|
|
|
// Always merge additional variables (e.g., secrets/env from Orchestrator) uniquely by name
|
|
for (const element of additionalVariables) {
|
|
if (!element || !element.name) continue;
|
|
environmentVariables = environmentVariables.filter((x) => x?.name !== element.name);
|
|
environmentVariables.push(element);
|
|
}
|
|
if (parameters.sshAgent) {
|
|
environmentVariables.push({ name: 'SSH_AUTH_SOCK', value: '/ssh-agent' });
|
|
}
|
|
|
|
return environmentVariables;
|
|
}
|
|
}
|
|
|
|
export default ImageEnvironmentFactory;
|