pull/437/head
Frostebite 2022-10-14 17:24:47 +01:00
parent 3046c521a8
commit a5497cd7c7
9 changed files with 44 additions and 30 deletions

31
dist/index.js vendored
View File

@ -298,7 +298,7 @@ class BuildParameters {
cacheKey: cloud_runner_options_1.default.cacheKey, cacheKey: cloud_runner_options_1.default.cacheKey,
retainWorkspace: cloud_runner_options_1.default.retainWorkspaces, retainWorkspace: cloud_runner_options_1.default.retainWorkspaces,
useSharedLargePackages: cloud_runner_options_1.default.useSharedLargePackages, useSharedLargePackages: cloud_runner_options_1.default.useSharedLargePackages,
useLZ4Compression: cloud_runner_options_1.default.useLZ4Compression, useLz4Compression: cloud_runner_options_1.default.useLz4Compression,
}; };
}); });
} }
@ -964,6 +964,12 @@ class CloudRunnerOptions {
static get cloudRunnerDebug() { static get cloudRunnerDebug() {
return CloudRunnerOptions.getInput(`cloudRunnerTests`) || CloudRunnerOptions.getInput(`cloudRunnerDebug`) || false; return CloudRunnerOptions.getInput(`cloudRunnerTests`) || CloudRunnerOptions.getInput(`cloudRunnerDebug`) || false;
} }
static get cloudRunnerDebugTree() {
return CloudRunnerOptions.getInput(`cloudRunnerDebugTree`) || false;
}
static get cloudRunnerDebugEnv() {
return CloudRunnerOptions.getInput(`cloudRunnerDebugEnv`) || false;
}
static get watchCloudRunnerToEnd() { static get watchCloudRunnerToEnd() {
const input = CloudRunnerOptions.getInput(`watchToEnd`); const input = CloudRunnerOptions.getInput(`watchToEnd`);
return !input || input === 'true'; return !input || input === 'true';
@ -971,8 +977,8 @@ class CloudRunnerOptions {
static get useSharedLargePackages() { static get useSharedLargePackages() {
return CloudRunnerOptions.getInput(`useSharedLargePackages`) || false; return CloudRunnerOptions.getInput(`useSharedLargePackages`) || false;
} }
static get useLZ4Compression() { static get useLz4Compression() {
return CloudRunnerOptions.getInput(`useLZ4Compression`) || true; return CloudRunnerOptions.getInput(`useLz4Compression`) || true;
} }
// ### ### ### // ### ### ###
// Retained Workspace // Retained Workspace
@ -4055,7 +4061,7 @@ class Caching {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
cacheArtifactName = cacheArtifactName.replace(' ', ''); cacheArtifactName = cacheArtifactName.replace(' ', '');
const startPath = process.cwd(); const startPath = process.cwd();
const compressionSuffix = cloud_runner_1.default.buildParameters.useLZ4Compression ? '.lz4' : ''; const compressionSuffix = cloud_runner_1.default.buildParameters.useLz4Compression ? '.lz4' : '';
try { try {
if (!(yield fileExists(cacheFolder))) { if (!(yield fileExists(cacheFolder))) {
yield cloud_runner_system_1.CloudRunnerSystem.Run(`mkdir -p ${cacheFolder}`); yield cloud_runner_system_1.CloudRunnerSystem.Run(`mkdir -p ${cacheFolder}`);
@ -4093,7 +4099,7 @@ class Caching {
static PullFromCache(cacheFolder, destinationFolder, cacheArtifactName = ``) { static PullFromCache(cacheFolder, destinationFolder, cacheArtifactName = ``) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
cacheArtifactName = cacheArtifactName.replace(' ', ''); cacheArtifactName = cacheArtifactName.replace(' ', '');
const compressionSuffix = cloud_runner_1.default.buildParameters.useLZ4Compression ? '.lz4' : ''; const compressionSuffix = cloud_runner_1.default.buildParameters.useLz4Compression ? '.lz4' : '';
const startPath = process.cwd(); const startPath = process.cwd();
remote_client_logger_1.RemoteClientLogger.log(`Caching for ${path_1.default.basename(destinationFolder)}`); remote_client_logger_1.RemoteClientLogger.log(`Caching for ${path_1.default.basename(destinationFolder)}`);
try { try {
@ -4406,7 +4412,6 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Hook = exports.CloudRunnerCustomHooks = void 0; exports.Hook = exports.CloudRunnerCustomHooks = void 0;
const __1 = __nccwpck_require__(41359); const __1 = __nccwpck_require__(41359);
const yaml_1 = __importDefault(__nccwpck_require__(44603)); const yaml_1 = __importDefault(__nccwpck_require__(44603));
const cloud_runner_1 = __importDefault(__nccwpck_require__(79144));
const remote_client_logger_1 = __nccwpck_require__(59412); const remote_client_logger_1 = __nccwpck_require__(59412);
const path_1 = __importDefault(__nccwpck_require__(71017)); const path_1 = __importDefault(__nccwpck_require__(71017));
const cloud_runner_options_1 = __importDefault(__nccwpck_require__(96552)); const cloud_runner_options_1 = __importDefault(__nccwpck_require__(96552));
@ -4418,7 +4423,7 @@ class CloudRunnerCustomHooks {
const hooks = CloudRunnerCustomHooks.getHooks(buildParameters.customJobHooks).filter((x) => x.step.includes(`all`)); const hooks = CloudRunnerCustomHooks.getHooks(buildParameters.customJobHooks).filter((x) => x.step.includes(`all`));
return `echo "---" return `echo "---"
echo "start cloud runner init" echo "start cloud runner init"
${cloud_runner_1.default.buildParameters.cloudRunnerDebug ? '' : '#'} printenv ${cloud_runner_options_1.default.cloudRunnerDebugEnv ? `printenv` : ``}
echo "start of cloud runner job" echo "start of cloud runner job"
${hooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '} ${hooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '}
${commands} ${commands}
@ -4587,7 +4592,7 @@ class CloudRunnerCustomSteps {
image: amazon/aws-cli image: amazon/aws-cli
hook: after hook: after
commands: | commands: |
printenv ${cloud_runner_options_1.default.cloudRunnerDebugEnv ? `printenv` : ``}
aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID --profile default aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID --profile default
aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY --profile default aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY --profile default
aws configure set region $AWS_DEFAULT_REGION --profile default aws configure set region $AWS_DEFAULT_REGION --profile default
@ -4603,7 +4608,7 @@ class CloudRunnerCustomSteps {
image: amazon/aws-cli image: amazon/aws-cli
hook: after hook: after
commands: | commands: |
printenv ${cloud_runner_options_1.default.cloudRunnerDebugEnv ? `printenv` : ``}
aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID --profile default aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID --profile default
aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY --profile default aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY --profile default
aws configure set region $AWS_DEFAULT_REGION --profile default aws configure set region $AWS_DEFAULT_REGION --profile default
@ -4619,7 +4624,7 @@ class CloudRunnerCustomSteps {
image: amazon/aws-cli image: amazon/aws-cli
hook: before hook: before
commands: | commands: |
printenv ${cloud_runner_options_1.default.cloudRunnerDebugEnv ? `printenv` : ``}
aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID --profile default aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID --profile default
aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY --profile default aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY --profile default
aws configure set region $AWS_DEFAULT_REGION --profile default aws configure set region $AWS_DEFAULT_REGION --profile default
@ -4643,7 +4648,7 @@ class CloudRunnerCustomSteps {
commands: | commands: |
apt-get update > /dev/null apt-get update > /dev/null
apt-get install -y tree > /dev/null apt-get install -y tree > /dev/null
printenv ${cloud_runner_options_1.default.cloudRunnerDebugEnv ? `printenv` : ``}
tree -L 3 /data/cache tree -L 3 /data/cache
secrets: secrets:
- name: awsAccessKeyId - name: awsAccessKeyId
@ -5521,7 +5526,7 @@ class BuildAutomationWorkflow {
} }
static setupCommands(builderPath) { static setupCommands(builderPath) {
const commands = `mkdir -p ${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute)} && git clone -q -b ${cloud_runner_1.default.buildParameters.cloudRunnerBranch} ${cloud_runner_folders_1.CloudRunnerFolders.unityBuilderRepoUrl} "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute)}" && chmod +x ${builderPath}`; const commands = `mkdir -p ${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute)} && git clone -q -b ${cloud_runner_1.default.buildParameters.cloudRunnerBranch} ${cloud_runner_folders_1.CloudRunnerFolders.unityBuilderRepoUrl} "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute)}" && chmod +x ${builderPath}`;
const TreeWorkspace = cloud_runner_1.default.buildParameters.cloudRunnerDebug const TreeWorkspace = cloud_runner_options_1.default.cloudRunnerDebugTree
? `tree -L 2 ${cloud_runner_folders_1.CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}` ? `tree -L 2 ${cloud_runner_folders_1.CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}`
: ``; : ``;
const retainedWorkspaceCommands = `if [ -e "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute)}" ] && [ -e "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.repoPathAbsolute, `.git`))}" ]; then echo "Retained Workspace Already Exists!" && ${TreeWorkspace}; fi`; const retainedWorkspaceCommands = `if [ -e "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute)}" ] && [ -e "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.repoPathAbsolute, `.git`))}" ]; then echo "Retained Workspace Already Exists!" && ${TreeWorkspace}; fi`;
@ -5539,7 +5544,7 @@ class BuildAutomationWorkflow {
static BuildCommands(builderPath) { static BuildCommands(builderPath) {
const distFolder = path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist'); const distFolder = path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist');
const ubuntuPlatformsFolder = path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist', 'platforms', 'ubuntu'); const ubuntuPlatformsFolder = path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist', 'platforms', 'ubuntu');
const TreeWorkspace = cloud_runner_1.default.buildParameters.cloudRunnerDebug const TreeWorkspace = cloud_runner_options_1.default.cloudRunnerDebugTree
? `tree -L 2 ${cloud_runner_folders_1.CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}` ? `tree -L 2 ${cloud_runner_folders_1.CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}`
: ``; : ``;
return `echo "game ci cloud runner init" return `echo "game ci cloud runner init"

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -65,7 +65,7 @@ class BuildParameters {
public isCliMode!: boolean; public isCliMode!: boolean;
public retainWorkspace!: boolean; public retainWorkspace!: boolean;
public useSharedLargePackages!: boolean; public useSharedLargePackages!: boolean;
public useLZ4Compression!: boolean; public useLz4Compression!: boolean;
static async create(): Promise<BuildParameters> { static async create(): Promise<BuildParameters> {
const buildFile = this.parseBuildFile(Input.buildName, Input.targetPlatform, Input.androidAppBundle); const buildFile = this.parseBuildFile(Input.buildName, Input.targetPlatform, Input.androidAppBundle);
@ -142,7 +142,7 @@ class BuildParameters {
cacheKey: CloudRunnerOptions.cacheKey, cacheKey: CloudRunnerOptions.cacheKey,
retainWorkspace: CloudRunnerOptions.retainWorkspaces, retainWorkspace: CloudRunnerOptions.retainWorkspaces,
useSharedLargePackages: CloudRunnerOptions.useSharedLargePackages, useSharedLargePackages: CloudRunnerOptions.useSharedLargePackages,
useLZ4Compression: CloudRunnerOptions.useLZ4Compression, useLz4Compression: CloudRunnerOptions.useLz4Compression,
}; };
} }

View File

@ -212,6 +212,12 @@ class CloudRunnerOptions {
static get cloudRunnerDebug(): boolean { static get cloudRunnerDebug(): boolean {
return CloudRunnerOptions.getInput(`cloudRunnerTests`) || CloudRunnerOptions.getInput(`cloudRunnerDebug`) || false; return CloudRunnerOptions.getInput(`cloudRunnerTests`) || CloudRunnerOptions.getInput(`cloudRunnerDebug`) || false;
} }
static get cloudRunnerDebugTree(): boolean {
return CloudRunnerOptions.getInput(`cloudRunnerDebugTree`) || false;
}
static get cloudRunnerDebugEnv(): boolean {
return CloudRunnerOptions.getInput(`cloudRunnerDebugEnv`) || false;
}
static get watchCloudRunnerToEnd(): boolean { static get watchCloudRunnerToEnd(): boolean {
const input = CloudRunnerOptions.getInput(`watchToEnd`); const input = CloudRunnerOptions.getInput(`watchToEnd`);
@ -223,8 +229,8 @@ class CloudRunnerOptions {
return CloudRunnerOptions.getInput(`useSharedLargePackages`) || false; return CloudRunnerOptions.getInput(`useSharedLargePackages`) || false;
} }
public static get useLZ4Compression(): boolean { public static get useLz4Compression(): boolean {
return CloudRunnerOptions.getInput(`useLZ4Compression`) || true; return CloudRunnerOptions.getInput(`useLz4Compression`) || true;
} }
// ### ### ### // ### ### ###

View File

@ -46,7 +46,7 @@ export class Caching {
public static async PushToCache(cacheFolder: string, sourceFolder: string, cacheArtifactName: string) { public static async PushToCache(cacheFolder: string, sourceFolder: string, cacheArtifactName: string) {
cacheArtifactName = cacheArtifactName.replace(' ', ''); cacheArtifactName = cacheArtifactName.replace(' ', '');
const startPath = process.cwd(); const startPath = process.cwd();
const compressionSuffix = CloudRunner.buildParameters.useLZ4Compression ? '.lz4' : ''; const compressionSuffix = CloudRunner.buildParameters.useLz4Compression ? '.lz4' : '';
try { try {
if (!(await fileExists(cacheFolder))) { if (!(await fileExists(cacheFolder))) {
await CloudRunnerSystem.Run(`mkdir -p ${cacheFolder}`); await CloudRunnerSystem.Run(`mkdir -p ${cacheFolder}`);
@ -99,7 +99,7 @@ export class Caching {
} }
public static async PullFromCache(cacheFolder: string, destinationFolder: string, cacheArtifactName: string = ``) { public static async PullFromCache(cacheFolder: string, destinationFolder: string, cacheArtifactName: string = ``) {
cacheArtifactName = cacheArtifactName.replace(' ', ''); cacheArtifactName = cacheArtifactName.replace(' ', '');
const compressionSuffix = CloudRunner.buildParameters.useLZ4Compression ? '.lz4' : ''; const compressionSuffix = CloudRunner.buildParameters.useLz4Compression ? '.lz4' : '';
const startPath = process.cwd(); const startPath = process.cwd();
RemoteClientLogger.log(`Caching for ${path.basename(destinationFolder)}`); RemoteClientLogger.log(`Caching for ${path.basename(destinationFolder)}`);
try { try {

View File

@ -1,7 +1,6 @@
import { BuildParameters, Input } from '../..'; import { BuildParameters, Input } from '../..';
import YAML from 'yaml'; import YAML from 'yaml';
import CloudRunnerSecret from './cloud-runner-secret'; import CloudRunnerSecret from './cloud-runner-secret';
import CloudRunner from '../cloud-runner';
import { RemoteClientLogger } from '../remote-client/remote-client-logger'; import { RemoteClientLogger } from '../remote-client/remote-client-logger';
import path from 'path'; import path from 'path';
import CloudRunnerOptions from '../cloud-runner-options'; import CloudRunnerOptions from '../cloud-runner-options';
@ -15,7 +14,7 @@ export class CloudRunnerCustomHooks {
return `echo "---" return `echo "---"
echo "start cloud runner init" echo "start cloud runner init"
${CloudRunner.buildParameters.cloudRunnerDebug ? '' : '#'} printenv ${CloudRunnerOptions.cloudRunnerDebugEnv ? `printenv` : ``}
echo "start of cloud runner job" echo "start of cloud runner job"
${hooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '} ${hooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '}
${commands} ${commands}

View File

@ -38,7 +38,7 @@ export class CloudRunnerCustomSteps {
image: amazon/aws-cli image: amazon/aws-cli
hook: after hook: after
commands: | commands: |
printenv ${CloudRunnerOptions.cloudRunnerDebugEnv ? `printenv` : ``}
aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID --profile default aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID --profile default
aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY --profile default aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY --profile default
aws configure set region $AWS_DEFAULT_REGION --profile default aws configure set region $AWS_DEFAULT_REGION --profile default
@ -54,7 +54,7 @@ export class CloudRunnerCustomSteps {
image: amazon/aws-cli image: amazon/aws-cli
hook: after hook: after
commands: | commands: |
printenv ${CloudRunnerOptions.cloudRunnerDebugEnv ? `printenv` : ``}
aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID --profile default aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID --profile default
aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY --profile default aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY --profile default
aws configure set region $AWS_DEFAULT_REGION --profile default aws configure set region $AWS_DEFAULT_REGION --profile default
@ -70,7 +70,7 @@ export class CloudRunnerCustomSteps {
image: amazon/aws-cli image: amazon/aws-cli
hook: before hook: before
commands: | commands: |
printenv ${CloudRunnerOptions.cloudRunnerDebugEnv ? `printenv` : ``}
aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID --profile default aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID --profile default
aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY --profile default aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY --profile default
aws configure set region $AWS_DEFAULT_REGION --profile default aws configure set region $AWS_DEFAULT_REGION --profile default
@ -94,7 +94,7 @@ export class CloudRunnerCustomSteps {
commands: | commands: |
apt-get update > /dev/null apt-get update > /dev/null
apt-get install -y tree > /dev/null apt-get install -y tree > /dev/null
printenv ${CloudRunnerOptions.cloudRunnerDebugEnv ? `printenv` : ``}
tree -L 3 /data/cache tree -L 3 /data/cache
secrets: secrets:
- name: awsAccessKeyId - name: awsAccessKeyId

View File

@ -8,6 +8,7 @@ import { CloudRunnerSystem } from '../services/cloud-runner-system';
import { Caching } from '../remote-client/caching'; import { Caching } from '../remote-client/caching';
import { v4 as uuidv4 } from 'uuid'; import { v4 as uuidv4 } from 'uuid';
import GitHub from '../../github'; import GitHub from '../../github';
import CloudRunnerOptions from '../cloud-runner-options';
describe('Cloud Runner (Remote Client) Caching', () => { describe('Cloud Runner (Remote Client) Caching', () => {
it('responds', () => {}); it('responds', () => {});
if (process.platform === 'linux') { if (process.platform === 'linux') {
@ -43,8 +44,11 @@ describe('Cloud Runner (Remote Client) Caching', () => {
`${Cli.options.cacheKey}`, `${Cli.options.cacheKey}`,
); );
await CloudRunnerSystem.Run(`du -h ${__dirname}`); await CloudRunnerSystem.Run(`du -h ${__dirname}`);
if (CloudRunnerOptions.cloudRunnerDebugTree) {
await CloudRunnerSystem.Run(`tree ${testFolder}`); await CloudRunnerSystem.Run(`tree ${testFolder}`);
await CloudRunnerSystem.Run(`tree ${cacheFolder}`); await CloudRunnerSystem.Run(`tree ${cacheFolder}`);
}
// Compare validity to original hash // Compare validity to original hash
expect(fs.readFileSync(path.resolve(testFolder, 'test.txt'), { encoding: 'utf8' }).toString()).toContain( expect(fs.readFileSync(path.resolve(testFolder, 'test.txt'), { encoding: 'utf8' }).toString()).toContain(

View File

@ -115,7 +115,7 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
CloudRunnerFolders.unityBuilderRepoUrl CloudRunnerFolders.unityBuilderRepoUrl
} "${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.builderPathAbsolute)}" && chmod +x ${builderPath}`; } "${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.builderPathAbsolute)}" && chmod +x ${builderPath}`;
const TreeWorkspace = CloudRunner.buildParameters.cloudRunnerDebug const TreeWorkspace = CloudRunnerOptions.cloudRunnerDebugTree
? `tree -L 2 ${CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}` ? `tree -L 2 ${CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}`
: ``; : ``;
@ -146,7 +146,7 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
const distFolder = path.join(CloudRunnerFolders.builderPathAbsolute, 'dist'); const distFolder = path.join(CloudRunnerFolders.builderPathAbsolute, 'dist');
const ubuntuPlatformsFolder = path.join(CloudRunnerFolders.builderPathAbsolute, 'dist', 'platforms', 'ubuntu'); const ubuntuPlatformsFolder = path.join(CloudRunnerFolders.builderPathAbsolute, 'dist', 'platforms', 'ubuntu');
const TreeWorkspace = CloudRunner.buildParameters.cloudRunnerDebug const TreeWorkspace = CloudRunnerOptions.cloudRunnerDebugTree
? `tree -L 2 ${CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}` ? `tree -L 2 ${CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}`
: ``; : ``;