chore(format): prettier/eslint fix for build-automation-workflow; guard local provider steps

pull/729/head
Frostebite 2025-09-04 00:24:28 +01:00
parent c3e0ee6d1a
commit ec93ad51d9
3 changed files with 79 additions and 43 deletions

50
dist/index.js generated vendored
View File

@ -5976,38 +5976,48 @@ class BuildAutomationWorkflow {
static get BuildWorkflow() { static get BuildWorkflow() {
const setupHooks = command_hook_service_1.CommandHookService.getHooks(cloud_runner_1.default.buildParameters.commandHooks).filter((x) => x.step?.includes(`setup`)); const setupHooks = command_hook_service_1.CommandHookService.getHooks(cloud_runner_1.default.buildParameters.commandHooks).filter((x) => x.step?.includes(`setup`));
const buildHooks = command_hook_service_1.CommandHookService.getHooks(cloud_runner_1.default.buildParameters.commandHooks).filter((x) => x.step?.includes(`build`)); const buildHooks = command_hook_service_1.CommandHookService.getHooks(cloud_runner_1.default.buildParameters.commandHooks).filter((x) => x.step?.includes(`build`));
const builderPath = cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(node_path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist', `index.js`)); const isContainerized = cloud_runner_1.default.buildParameters.providerStrategy === 'aws' ||
cloud_runner_1.default.buildParameters.providerStrategy === 'k8s' ||
cloud_runner_1.default.buildParameters.providerStrategy === 'local-docker';
const builderPath = isContainerized
? cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(node_path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist', `index.js`))
: cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(node_path_1.default.join(process.cwd(), 'dist', `index.js`));
return `echo "cloud runner build workflow starting" return `echo "cloud runner build workflow starting"
apt-get update > /dev/null ${isContainerized ? 'apt-get update > /dev/null' : '# skipping apt-get in non-container provider'}
apt-get install -y curl tar tree npm git-lfs jq git > /dev/null ${isContainerized
npm --version ? 'apt-get install -y curl tar tree npm git-lfs jq git > /dev/null\n npm --version\n npm i -g n > /dev/null\n npm i -g semver > /dev/null\n npm install --global yarn > /dev/null\n n 20.8.0\n node --version'
npm i -g n > /dev/null : '# skipping toolchain setup in non-container provider'}
npm i -g semver > /dev/null
npm install --global yarn > /dev/null
n 20.8.0
node --version
${setupHooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '} ${setupHooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '}
export GITHUB_WORKSPACE="${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.repoPathAbsolute)}" export GITHUB_WORKSPACE="${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.repoPathAbsolute)}"
df -H /data/ ${isContainerized ? 'df -H /data/' : '# skipping df on /data in non-container provider'}
${BuildAutomationWorkflow.setupCommands(builderPath)} export LOG_FILE=${isContainerized ? '/home/job-log.txt' : '$(pwd)/temp/job-log.txt'}
${BuildAutomationWorkflow.setupCommands(builderPath, isContainerized)}
${setupHooks.filter((x) => x.hook.includes(`after`)).map((x) => x.commands) || ' '} ${setupHooks.filter((x) => x.hook.includes(`after`)).map((x) => x.commands) || ' '}
${buildHooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '} ${buildHooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '}
${BuildAutomationWorkflow.BuildCommands(builderPath)} ${BuildAutomationWorkflow.BuildCommands(builderPath, isContainerized)}
${buildHooks.filter((x) => x.hook.includes(`after`)).map((x) => x.commands) || ' '}`; ${buildHooks.filter((x) => x.hook.includes(`after`)).map((x) => x.commands) || ' '}`;
} }
static setupCommands(builderPath) { static setupCommands(builderPath, isContainerized) {
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 cloneBuilderCommands = `if [ -e "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute)}" ] && [ -e "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(node_path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, `.git`))}" ] ; then echo "Builder Already Exists!" && tree ${cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute}; else ${commands} ; fi`; if (isContainerized) {
return `export GIT_DISCOVERY_ACROSS_FILESYSTEM=1 const cloneBuilderCommands = `if [ -e "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute)}" ] && [ -e "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(node_path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, `.git`))}" ] ; then echo "Builder Already Exists!" && tree ${cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute}; else ${commands} ; fi`;
return `export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
${cloneBuilderCommands} ${cloneBuilderCommands}
echo "log start" >> /home/job-log.txt echo "log start" >> /home/job-log.txt
echo "CACHE_KEY=$CACHE_KEY" echo "CACHE_KEY=$CACHE_KEY"
node ${builderPath} -m remote-cli-pre-build`;
}
return `export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
mkdir -p "$(dirname "$LOG_FILE")"
echo "log start" >> "$LOG_FILE"
echo "CACHE_KEY=$CACHE_KEY"
node ${builderPath} -m remote-cli-pre-build`; node ${builderPath} -m remote-cli-pre-build`;
} }
static BuildCommands(builderPath) { static BuildCommands(builderPath, isContainerized) {
const distFolder = node_path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist'); const distFolder = node_path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist');
const ubuntuPlatformsFolder = node_path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist', 'platforms', 'ubuntu'); const ubuntuPlatformsFolder = node_path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist', 'platforms', 'ubuntu');
return ` if (isContainerized) {
return `
mkdir -p ${`${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.projectBuildFolderAbsolute)}/build`} mkdir -p ${`${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.projectBuildFolderAbsolute)}/build`}
cd ${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.projectPathAbsolute)} cd ${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.projectPathAbsolute)}
cp -r "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(node_path_1.default.join(distFolder, 'default-build-script'))}" "/UnityBuilderAction" cp -r "${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(node_path_1.default.join(distFolder, 'default-build-script'))}" "/UnityBuilderAction"
@ -6018,6 +6028,12 @@ node ${builderPath} -m remote-cli-pre-build`;
echo "game ci start" echo "game ci start"
echo "game ci start" >> /home/job-log.txt echo "game ci start" >> /home/job-log.txt
/entrypoint.sh | node ${builderPath} -m remote-cli-log-stream --logFile /home/job-log.txt /entrypoint.sh | node ${builderPath} -m remote-cli-log-stream --logFile /home/job-log.txt
node ${builderPath} -m remote-cli-post-build`;
}
return `
echo "game ci start"
echo "game ci start" >> "$LOG_FILE"
node ${builderPath} -m remote-cli-log-stream --logFile "$LOG_FILE"
node ${builderPath} -m remote-cli-post-build`; node ${builderPath} -m remote-cli-post-build`;
} }
} }

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

View File

@ -50,56 +50,69 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
const buildHooks = CommandHookService.getHooks(CloudRunner.buildParameters.commandHooks).filter((x) => const buildHooks = CommandHookService.getHooks(CloudRunner.buildParameters.commandHooks).filter((x) =>
x.step?.includes(`build`), x.step?.includes(`build`),
); );
const builderPath = CloudRunnerFolders.ToLinuxFolder( const isContainerized =
path.join(CloudRunnerFolders.builderPathAbsolute, 'dist', `index.js`), CloudRunner.buildParameters.providerStrategy === 'aws' ||
); CloudRunner.buildParameters.providerStrategy === 'k8s' ||
CloudRunner.buildParameters.providerStrategy === 'local-docker';
const builderPath = isContainerized
? CloudRunnerFolders.ToLinuxFolder(path.join(CloudRunnerFolders.builderPathAbsolute, 'dist', `index.js`))
: CloudRunnerFolders.ToLinuxFolder(path.join(process.cwd(), 'dist', `index.js`));
return `echo "cloud runner build workflow starting" return `echo "cloud runner build workflow starting"
apt-get update > /dev/null ${isContainerized ? 'apt-get update > /dev/null' : '# skipping apt-get in non-container provider'}
apt-get install -y curl tar tree npm git-lfs jq git > /dev/null ${
npm --version isContainerized
npm i -g n > /dev/null ? 'apt-get install -y curl tar tree npm git-lfs jq git > /dev/null\n npm --version\n npm i -g n > /dev/null\n npm i -g semver > /dev/null\n npm install --global yarn > /dev/null\n n 20.8.0\n node --version'
npm i -g semver > /dev/null : '# skipping toolchain setup in non-container provider'
npm install --global yarn > /dev/null }
n 20.8.0
node --version
${setupHooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '} ${setupHooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '}
export GITHUB_WORKSPACE="${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.repoPathAbsolute)}" export GITHUB_WORKSPACE="${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.repoPathAbsolute)}"
df -H /data/ ${isContainerized ? 'df -H /data/' : '# skipping df on /data in non-container provider'}
${BuildAutomationWorkflow.setupCommands(builderPath)} export LOG_FILE=${isContainerized ? '/home/job-log.txt' : '$(pwd)/temp/job-log.txt'}
${BuildAutomationWorkflow.setupCommands(builderPath, isContainerized)}
${setupHooks.filter((x) => x.hook.includes(`after`)).map((x) => x.commands) || ' '} ${setupHooks.filter((x) => x.hook.includes(`after`)).map((x) => x.commands) || ' '}
${buildHooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '} ${buildHooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '}
${BuildAutomationWorkflow.BuildCommands(builderPath)} ${BuildAutomationWorkflow.BuildCommands(builderPath, isContainerized)}
${buildHooks.filter((x) => x.hook.includes(`after`)).map((x) => x.commands) || ' '}`; ${buildHooks.filter((x) => x.hook.includes(`after`)).map((x) => x.commands) || ' '}`;
} }
private static setupCommands(builderPath: string) { private static setupCommands(builderPath: string, isContainerized: boolean) {
const commands = `mkdir -p ${CloudRunnerFolders.ToLinuxFolder( const commands = `mkdir -p ${CloudRunnerFolders.ToLinuxFolder(
CloudRunnerFolders.builderPathAbsolute, CloudRunnerFolders.builderPathAbsolute,
)} && git clone -q -b ${CloudRunner.buildParameters.cloudRunnerBranch} ${ )} && git clone -q -b ${CloudRunner.buildParameters.cloudRunnerBranch} ${
CloudRunnerFolders.unityBuilderRepoUrl CloudRunnerFolders.unityBuilderRepoUrl
} "${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.builderPathAbsolute)}" && chmod +x ${builderPath}`; } "${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.builderPathAbsolute)}" && chmod +x ${builderPath}`;
const cloneBuilderCommands = `if [ -e "${CloudRunnerFolders.ToLinuxFolder( if (isContainerized) {
CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute, const cloneBuilderCommands = `if [ -e "${CloudRunnerFolders.ToLinuxFolder(
)}" ] && [ -e "${CloudRunnerFolders.ToLinuxFolder( CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute,
path.join(CloudRunnerFolders.builderPathAbsolute, `.git`), )}" ] && [ -e "${CloudRunnerFolders.ToLinuxFolder(
)}" ] ; then echo "Builder Already Exists!" && tree ${ path.join(CloudRunnerFolders.builderPathAbsolute, `.git`),
CloudRunnerFolders.builderPathAbsolute )}" ] ; then echo "Builder Already Exists!" && tree ${
}; else ${commands} ; fi`; CloudRunnerFolders.builderPathAbsolute
}; else ${commands} ; fi`;
return `export GIT_DISCOVERY_ACROSS_FILESYSTEM=1 return `export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
${cloneBuilderCommands} ${cloneBuilderCommands}
echo "log start" >> /home/job-log.txt echo "log start" >> /home/job-log.txt
echo "CACHE_KEY=$CACHE_KEY" echo "CACHE_KEY=$CACHE_KEY"
node ${builderPath} -m remote-cli-pre-build`;
}
return `export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
mkdir -p "$(dirname "$LOG_FILE")"
echo "log start" >> "$LOG_FILE"
echo "CACHE_KEY=$CACHE_KEY"
node ${builderPath} -m remote-cli-pre-build`; node ${builderPath} -m remote-cli-pre-build`;
} }
private static BuildCommands(builderPath: string) { private static BuildCommands(builderPath: string, isContainerized: boolean) {
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');
return ` if (isContainerized) {
return `
mkdir -p ${`${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.projectBuildFolderAbsolute)}/build`} mkdir -p ${`${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.projectBuildFolderAbsolute)}/build`}
cd ${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.projectPathAbsolute)} cd ${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.projectPathAbsolute)}
cp -r "${CloudRunnerFolders.ToLinuxFolder(path.join(distFolder, 'default-build-script'))}" "/UnityBuilderAction" cp -r "${CloudRunnerFolders.ToLinuxFolder(path.join(distFolder, 'default-build-script'))}" "/UnityBuilderAction"
@ -111,5 +124,12 @@ node ${builderPath} -m remote-cli-pre-build`;
echo "game ci start" >> /home/job-log.txt echo "game ci start" >> /home/job-log.txt
/entrypoint.sh | node ${builderPath} -m remote-cli-log-stream --logFile /home/job-log.txt /entrypoint.sh | node ${builderPath} -m remote-cli-log-stream --logFile /home/job-log.txt
node ${builderPath} -m remote-cli-post-build`; node ${builderPath} -m remote-cli-post-build`;
}
return `
echo "game ci start"
echo "game ci start" >> "$LOG_FILE"
node ${builderPath} -m remote-cli-log-stream --logFile "$LOG_FILE"
node ${builderPath} -m remote-cli-post-build`;
} }
} }