fixes
parent
5609356165
commit
70c8a150b5
|
|
@ -529,7 +529,7 @@ class Cli {
|
|||
program.option('--select <select>', 'select a particular resource');
|
||||
program.parse(process.argv);
|
||||
Cli.options = program.opts();
|
||||
return Cli.isCliMode || process.env.CI_CLI;
|
||||
return Cli.isCliMode;
|
||||
}
|
||||
static async RunCli() {
|
||||
github_1.default.githubInputEnabled = false;
|
||||
|
|
@ -546,7 +546,7 @@ class Cli {
|
|||
cloud_runner_logger_1.default.log(`Build Params:
|
||||
${JSON.stringify(__1.CloudRunner.buildParameters, undefined, 4)}
|
||||
`);
|
||||
__1.CloudRunner.lockedWorkspace = process.env.CI_LOCKED_WORKSPACE || process.env.LOCKED_WORKSPACE || ``;
|
||||
__1.CloudRunner.lockedWorkspace = process.env.LOCKED_WORKSPACE || ``;
|
||||
cloud_runner_logger_1.default.log(`Locked Workspace: ${__1.CloudRunner.lockedWorkspace}`);
|
||||
await __1.CloudRunner.setup(__1.CloudRunner.buildParameters);
|
||||
return await results.target[results.propertyKey](Cli.options);
|
||||
|
|
@ -710,9 +710,6 @@ class CloudRunnerOptions {
|
|||
if (process.env[query] !== undefined) {
|
||||
return process.env[query];
|
||||
}
|
||||
if (alternativeQuery !== query && process.env[`CI_${alternativeQuery}`] !== undefined) {
|
||||
return process.env[`CI_${alternativeQuery}`];
|
||||
}
|
||||
if (alternativeQuery !== query && process.env[alternativeQuery] !== undefined) {
|
||||
return process.env[alternativeQuery];
|
||||
}
|
||||
|
|
@ -995,7 +992,7 @@ class CloudRunner {
|
|||
return process.env[`GITHUB_ACTIONS`] !== `true`;
|
||||
}
|
||||
static get isCloudRunnerAsyncEnvironment() {
|
||||
return process.env[`CI_ASYNC_WORKFLOW`] === `true`;
|
||||
return process.env[`ASYNC_WORKFLOW`] === `true`;
|
||||
}
|
||||
static async setup(buildParameters) {
|
||||
cloud_runner_logger_1.default.setup();
|
||||
|
|
@ -1056,7 +1053,7 @@ class CloudRunner {
|
|||
cloud_runner_logger_1.default.logLine(`Using retained workspace ${CloudRunner.lockedWorkspace}`);
|
||||
CloudRunner.cloudRunnerEnvironmentVariables = [
|
||||
...CloudRunner.cloudRunnerEnvironmentVariables,
|
||||
{ name: `CI_LOCKED_WORKSPACE`, value: CloudRunner.lockedWorkspace },
|
||||
{ name: `LOCKED_WORKSPACE`, value: CloudRunner.lockedWorkspace },
|
||||
];
|
||||
}
|
||||
else {
|
||||
|
|
@ -4190,7 +4187,6 @@ const cli_functions_repository_1 = __nccwpck_require__(85301);
|
|||
const cloud_runner_system_1 = __nccwpck_require__(99393);
|
||||
const yaml_1 = __importDefault(__nccwpck_require__(44603));
|
||||
const github_1 = __importDefault(__nccwpck_require__(83654));
|
||||
const task_parameter_serializer_1 = __nccwpck_require__(35346);
|
||||
const build_parameters_1 = __importDefault(__nccwpck_require__(80787));
|
||||
class RemoteClient {
|
||||
static async runRemoteClientJob() {
|
||||
|
|
@ -4198,12 +4194,8 @@ class RemoteClient {
|
|||
if (!(await RemoteClient.handleRetainedWorkspace())) {
|
||||
await RemoteClient.bootstrapRepository();
|
||||
}
|
||||
await RemoteClient.exportCiParameters();
|
||||
await RemoteClient.runCustomHookFiles(`before-build`);
|
||||
}
|
||||
static async exportCiParameters() {
|
||||
await task_parameter_serializer_1.TaskParameterSerializer.exportAllCiVariablesWithoutPrefix();
|
||||
}
|
||||
static async runCustomHookFiles(hookLifecycle) {
|
||||
remote_client_logger_1.RemoteClientLogger.log(`RunCustomHookFiles: ${hookLifecycle}`);
|
||||
const gameCiCustomHooksPath = node_path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.repoPathAbsolute, `game-ci`, `hooks`);
|
||||
|
|
@ -4598,8 +4590,8 @@ class CloudRunnerCustomSteps {
|
|||
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 region $AWS_DEFAULT_REGION --profile default
|
||||
aws s3 cp /data/cache/$CI_CACHE_KEY/build/build-${cloud_runner_1.default.buildParameters.buildGuid}.tar${cloud_runner_1.default.buildParameters.useCompressionStrategy ? '.lz4' : ''} s3://${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CI_CACHE_KEY/build/build-$BUILD_GUID.tar${cloud_runner_1.default.buildParameters.useCompressionStrategy ? '.lz4' : ''}
|
||||
rm /data/cache/$CI_CACHE_KEY/build/build-${cloud_runner_1.default.buildParameters.buildGuid}.tar${cloud_runner_1.default.buildParameters.useCompressionStrategy ? '.lz4' : ''}
|
||||
aws s3 cp /data/cache/$CACHE_KEY/build/build-${cloud_runner_1.default.buildParameters.buildGuid}.tar${cloud_runner_1.default.buildParameters.useCompressionStrategy ? '.lz4' : ''} s3://${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CACHE_KEY/build/build-$BUILD_GUID.tar${cloud_runner_1.default.buildParameters.useCompressionStrategy ? '.lz4' : ''}
|
||||
rm /data/cache/$CACHE_KEY/build/build-${cloud_runner_1.default.buildParameters.buildGuid}.tar${cloud_runner_1.default.buildParameters.useCompressionStrategy ? '.lz4' : ''}
|
||||
secrets:
|
||||
- name: awsAccessKeyId
|
||||
value: ${process.env.AWS_ACCESS_KEY_ID || ``}
|
||||
|
|
@ -4610,16 +4602,16 @@ class CloudRunnerCustomSteps {
|
|||
- name: aws-s3-pull-build
|
||||
image: amazon/aws-cli
|
||||
commands: |
|
||||
aws configure set aws_access_key_id $CI_AWS_ACCESS_KEY_ID --profile default
|
||||
aws configure set aws_secret_access_key $CI_AWS_SECRET_ACCESS_KEY --profile default
|
||||
aws configure set region $CI_AWS_DEFAULT_REGION --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 region $AWS_DEFAULT_REGION --profile default
|
||||
aws s3 ls ${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/ || true
|
||||
aws s3 ls ${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CI_CACHE_KEY/build || true
|
||||
aws s3 cp s3://${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CI_CACHE_KEY/build/build-$BUILD_GUID_TARGET.tar${cloud_runner_1.default.buildParameters.useCompressionStrategy ? '.lz4' : ''} /data/cache/$CI_CACHE_KEY/build/build-$BUILD_GUID_TARGET.tar${cloud_runner_1.default.buildParameters.useCompressionStrategy ? '.lz4' : ''}
|
||||
aws s3 ls ${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CACHE_KEY/build || true
|
||||
aws s3 cp s3://${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CACHE_KEY/build/build-$BUILD_GUID_TARGET.tar${cloud_runner_1.default.buildParameters.useCompressionStrategy ? '.lz4' : ''} /data/cache/$CACHE_KEY/build/build-$BUILD_GUID_TARGET.tar${cloud_runner_1.default.buildParameters.useCompressionStrategy ? '.lz4' : ''}
|
||||
secrets:
|
||||
- name: CI_AWS_ACCESS_KEY_ID
|
||||
- name: CI_AWS_SECRET_ACCESS_KEY
|
||||
- name: CI_AWS_DEFAULT_REGION
|
||||
- name: AWS_ACCESS_KEY_ID
|
||||
- name: AWS_SECRET_ACCESS_KEY
|
||||
- name: AWS_DEFAULT_REGION
|
||||
- name: BUILD_GUID_TARGET
|
||||
- name: steam-deploy-client
|
||||
image: steamcmd/steamcmd
|
||||
|
|
@ -4661,43 +4653,43 @@ class CloudRunnerCustomSteps {
|
|||
image: amazon/aws-cli
|
||||
hook: after
|
||||
commands: |
|
||||
aws configure set aws_access_key_id $CI_AWS_ACCESS_KEY_ID --profile default
|
||||
aws configure set aws_secret_access_key $CI_AWS_SECRET_ACCESS_KEY --profile default
|
||||
aws configure set region $CI_AWS_DEFAULT_REGION --profile default
|
||||
aws s3 cp --recursive /data/cache/$CI_CACHE_KEY/lfs s3://${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CI_CACHE_KEY/lfs
|
||||
rm -r /data/cache/$CI_CACHE_KEY/lfs
|
||||
aws s3 cp --recursive /data/cache/$CI_CACHE_KEY/Library s3://${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CI_CACHE_KEY/Library
|
||||
rm -r /data/cache/$CI_CACHE_KEY/Library
|
||||
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 region $AWS_DEFAULT_REGION --profile default
|
||||
aws s3 cp --recursive /data/cache/$CACHE_KEY/lfs s3://${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CACHE_KEY/lfs
|
||||
rm -r /data/cache/$CACHE_KEY/lfs
|
||||
aws s3 cp --recursive /data/cache/$CACHE_KEY/Library s3://${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CACHE_KEY/Library
|
||||
rm -r /data/cache/$CACHE_KEY/Library
|
||||
secrets:
|
||||
- name: CI_AWS_ACCESS_KEY_ID
|
||||
- name: AWS_ACCESS_KEY_ID
|
||||
value: ${process.env.AWS_ACCESS_KEY_ID || ``}
|
||||
- name: CI_AWS_SECRET_ACCESS_KEY
|
||||
- name: AWS_SECRET_ACCESS_KEY
|
||||
value: ${process.env.AWS_SECRET_ACCESS_KEY || ``}
|
||||
- name: CI_AWS_DEFAULT_REGION
|
||||
- name: AWS_DEFAULT_REGION
|
||||
value: ${process.env.AWS_REGION || ``}
|
||||
- name: aws-s3-pull-cache
|
||||
image: amazon/aws-cli
|
||||
hook: before
|
||||
commands: |
|
||||
aws configure set aws_access_key_id $CI_AWS_ACCESS_KEY_ID --profile default
|
||||
aws configure set aws_secret_access_key $CI_AWS_SECRET_ACCESS_KEY --profile default
|
||||
aws configure set region $CI_AWS_DEFAULT_REGION --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 region $AWS_DEFAULT_REGION --profile default
|
||||
aws s3 ls ${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/ || true
|
||||
aws s3 ls ${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CI_CACHE_KEY/ || true
|
||||
BUCKET1="${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CI_CACHE_KEY/Library/"
|
||||
aws s3 ls ${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CACHE_KEY/ || true
|
||||
BUCKET1="${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CACHE_KEY/Library/"
|
||||
aws s3 ls $BUCKET1 || true
|
||||
OBJECT1="$(aws s3 ls $BUCKET1 | sort | tail -n 1 | awk '{print $4}' || '')"
|
||||
aws s3 cp s3://$BUCKET1$OBJECT1 /data/cache/$CI_CACHE_KEY/Library/ || true
|
||||
BUCKET2="${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CI_CACHE_KEY/lfs/"
|
||||
aws s3 cp s3://$BUCKET1$OBJECT1 /data/cache/$CACHE_KEY/Library/ || true
|
||||
BUCKET2="${cloud_runner_1.default.buildParameters.awsStackName}/cloud-runner-cache/$CACHE_KEY/lfs/"
|
||||
aws s3 ls $BUCKET2 || true
|
||||
OBJECT2="$(aws s3 ls $BUCKET2 | sort | tail -n 1 | awk '{print $4}' || '')"
|
||||
aws s3 cp s3://$BUCKET2$OBJECT2 /data/cache/$CI_CACHE_KEY/lfs/ || true
|
||||
aws s3 cp s3://$BUCKET2$OBJECT2 /data/cache/$CACHE_KEY/lfs/ || true
|
||||
secrets:
|
||||
- name: CI_AWS_ACCESS_KEY_ID
|
||||
- name: AWS_ACCESS_KEY_ID
|
||||
value: ${process.env.AWS_ACCESS_KEY_ID || ``}
|
||||
- name: CI_AWS_SECRET_ACCESS_KEY
|
||||
- name: AWS_SECRET_ACCESS_KEY
|
||||
value: ${process.env.AWS_SECRET_ACCESS_KEY || ``}
|
||||
- name: CI_AWS_DEFAULT_REGION
|
||||
- name: AWS_DEFAULT_REGION
|
||||
value: ${process.env.AWS_REGION || ``}
|
||||
- name: debug-cache
|
||||
image: ubuntu
|
||||
|
|
@ -5504,9 +5496,6 @@ const cloud_runner_query_override_1 = __importDefault(__nccwpck_require__(31011)
|
|||
const cloud_runner_options_reader_1 = __importDefault(__nccwpck_require__(3343));
|
||||
const build_parameters_1 = __importDefault(__nccwpck_require__(80787));
|
||||
const cloud_runner_options_1 = __importDefault(__nccwpck_require__(96552));
|
||||
const cloud_runner_system_1 = __nccwpck_require__(99393);
|
||||
const cloud_runner_folders_1 = __nccwpck_require__(13527);
|
||||
const node_fs_1 = __importDefault(__nccwpck_require__(87561));
|
||||
class TaskParameterSerializer {
|
||||
static createCloudRunnerEnvironmentVariables(buildParameters) {
|
||||
const result = this.uniqBy([
|
||||
|
|
@ -5524,7 +5513,7 @@ class TaskParameterSerializer {
|
|||
x.value !== undefined &&
|
||||
x.value !== `undefined`)
|
||||
.map((x) => {
|
||||
x.name = `CI_${TaskParameterSerializer.ToEnvVarFormat(x.name)}`;
|
||||
x.name = `${TaskParameterSerializer.ToEnvVarFormat(x.name)}`;
|
||||
x.value = `${x.value}`;
|
||||
return x;
|
||||
}), (item) => item.name);
|
||||
|
|
@ -5542,12 +5531,12 @@ class TaskParameterSerializer {
|
|||
const buildParameters = new build_parameters_1.default();
|
||||
const keys = [
|
||||
...new Set(Object.getOwnPropertyNames(process.env)
|
||||
.filter((x) => !this.blockedParameterNames.has(x) && x.startsWith('CI_'))
|
||||
.filter((x) => !this.blockedParameterNames.has(x) && x.startsWith(''))
|
||||
.map((x) => TaskParameterSerializer.UndoEnvVarFormat(x))),
|
||||
];
|
||||
for (const element of keys) {
|
||||
if (element !== `customJob`) {
|
||||
buildParameters[element] = process.env[`CI_${TaskParameterSerializer.ToEnvVarFormat(element)}`];
|
||||
buildParameters[element] = process.env[`${TaskParameterSerializer.ToEnvVarFormat(element)}`];
|
||||
}
|
||||
}
|
||||
return buildParameters;
|
||||
|
|
@ -5562,7 +5551,7 @@ class TaskParameterSerializer {
|
|||
return cloud_runner_options_1.default.ToEnvVarFormat(input);
|
||||
}
|
||||
static UndoEnvVarFormat(element) {
|
||||
return this.camelize(element.replace('CI_', '').toLowerCase().replace(/_+/g, ' '));
|
||||
return this.camelize(element.replace('', '').toLowerCase().replace(/_+/g, ' '));
|
||||
}
|
||||
static camelize(string) {
|
||||
return TaskParameterSerializer.uncapitalizeFirstLetter(string
|
||||
|
|
@ -5624,19 +5613,6 @@ class TaskParameterSerializer {
|
|||
}
|
||||
return array;
|
||||
}
|
||||
static async exportAllCiVariablesWithoutPrefix() {
|
||||
const file = `${cloud_runner_folders_1.CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}/setEnv.sh`;
|
||||
for (const variable of Object.entries(process.env)) {
|
||||
if (variable[0].includes(`CI_`)) {
|
||||
const name = variable[0].replace(`CI_`, ``);
|
||||
const value = `${variable[1] || ``}`;
|
||||
process.env[name] = value;
|
||||
node_fs_1.default.appendFileSync(file, `export ${name}="$${variable[0]}"\n`);
|
||||
}
|
||||
}
|
||||
await cloud_runner_system_1.CloudRunnerSystem.Run(`chmod +x ${file}`);
|
||||
await cloud_runner_system_1.CloudRunnerSystem.Run(file);
|
||||
}
|
||||
}
|
||||
exports.TaskParameterSerializer = TaskParameterSerializer;
|
||||
TaskParameterSerializer.blockedParameterNames = new Set([
|
||||
|
|
@ -5673,7 +5649,7 @@ class AsyncWorkflow {
|
|||
try {
|
||||
cloud_runner_logger_1.default.log(`Cloud Runner is running async mode`);
|
||||
const asyncEnvironmentVariable = new cloud_runner_environment_variable_1.default();
|
||||
asyncEnvironmentVariable.name = `CI_ASYNC_WORKFLOW`;
|
||||
asyncEnvironmentVariable.name = `ASYNC_WORKFLOW`;
|
||||
asyncEnvironmentVariable.value = `true`;
|
||||
let output = '';
|
||||
output += await cloud_runner_1.default.Provider.runTaskInWorkflow(cloud_runner_1.default.buildParameters.buildGuid, `ubuntu`, `apt-get update > /dev/null
|
||||
|
|
@ -5801,9 +5777,7 @@ class BuildAutomationWorkflow {
|
|||
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!"; else ${commands} ; fi`;
|
||||
return `export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
|
||||
${cloneBuilderCommands}
|
||||
node ${builderPath} -m remote-cli-pre-build
|
||||
. ${cloud_runner_folders_1.CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}/setEnv.sh
|
||||
rm ${cloud_runner_folders_1.CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}/setEnv.sh`;
|
||||
node ${builderPath} -m remote-cli-pre-build`;
|
||||
}
|
||||
static BuildCommands(builderPath) {
|
||||
const distFolder = node_path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.builderPathAbsolute, 'dist');
|
||||
|
|
@ -6100,7 +6074,7 @@ const core_1 = __nccwpck_require__(76762);
|
|||
class GitHub {
|
||||
static get octokitDefaultToken() {
|
||||
return new core_1.Octokit({
|
||||
auth: process.env.CI_GITHUB_TOKEN || process.env.GITHUB_TOKEN,
|
||||
auth: process.env.GITHUB_TOKEN,
|
||||
});
|
||||
}
|
||||
static get octokitPAT() {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -57,7 +57,7 @@ export class Cli {
|
|||
program.parse(process.argv);
|
||||
Cli.options = program.opts();
|
||||
|
||||
return Cli.isCliMode || process.env.CI_CLI;
|
||||
return Cli.isCliMode;
|
||||
}
|
||||
|
||||
static async RunCli(): Promise<void> {
|
||||
|
|
@ -76,7 +76,7 @@ export class Cli {
|
|||
CloudRunnerLogger.log(`Build Params:
|
||||
${JSON.stringify(CloudRunner.buildParameters, undefined, 4)}
|
||||
`);
|
||||
CloudRunner.lockedWorkspace = process.env.CI_LOCKED_WORKSPACE || process.env.LOCKED_WORKSPACE || ``;
|
||||
CloudRunner.lockedWorkspace = process.env.LOCKED_WORKSPACE || ``;
|
||||
CloudRunnerLogger.log(`Locked Workspace: ${CloudRunner.lockedWorkspace}`);
|
||||
await CloudRunner.setup(CloudRunner.buildParameters);
|
||||
|
||||
|
|
|
|||
|
|
@ -29,10 +29,6 @@ class CloudRunnerOptions {
|
|||
return process.env[query];
|
||||
}
|
||||
|
||||
if (alternativeQuery !== query && process.env[`CI_${alternativeQuery}`] !== undefined) {
|
||||
return process.env[`CI_${alternativeQuery}`];
|
||||
}
|
||||
|
||||
if (alternativeQuery !== query && process.env[alternativeQuery] !== undefined) {
|
||||
return process.env[alternativeQuery];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ class CloudRunner {
|
|||
return process.env[`GITHUB_ACTIONS`] !== `true`;
|
||||
}
|
||||
public static get isCloudRunnerAsyncEnvironment() {
|
||||
return process.env[`CI_ASYNC_WORKFLOW`] === `true`;
|
||||
return process.env[`ASYNC_WORKFLOW`] === `true`;
|
||||
}
|
||||
public static async setup(buildParameters: BuildParameters) {
|
||||
CloudRunnerLogger.setup();
|
||||
|
|
@ -104,7 +104,7 @@ class CloudRunner {
|
|||
CloudRunnerLogger.logLine(`Using retained workspace ${CloudRunner.lockedWorkspace}`);
|
||||
CloudRunner.cloudRunnerEnvironmentVariables = [
|
||||
...CloudRunner.cloudRunnerEnvironmentVariables,
|
||||
{ name: `CI_LOCKED_WORKSPACE`, value: CloudRunner.lockedWorkspace },
|
||||
{ name: `LOCKED_WORKSPACE`, value: CloudRunner.lockedWorkspace },
|
||||
];
|
||||
} else {
|
||||
CloudRunnerLogger.log(`Max retained workspaces reached ${buildParameters.maxRetainedWorkspaces}`);
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import { CliFunction } from '../../cli/cli-functions-repository';
|
|||
import { CloudRunnerSystem } from '../services/cloud-runner-system';
|
||||
import YAML from 'yaml';
|
||||
import GitHub from '../../github';
|
||||
import { TaskParameterSerializer } from '../services/task-parameter-serializer';
|
||||
import BuildParameters from '../../build-parameters';
|
||||
|
||||
export class RemoteClient {
|
||||
|
|
@ -21,12 +20,8 @@ export class RemoteClient {
|
|||
if (!(await RemoteClient.handleRetainedWorkspace())) {
|
||||
await RemoteClient.bootstrapRepository();
|
||||
}
|
||||
await RemoteClient.exportCiParameters();
|
||||
await RemoteClient.runCustomHookFiles(`before-build`);
|
||||
}
|
||||
static async exportCiParameters() {
|
||||
await TaskParameterSerializer.exportAllCiVariablesWithoutPrefix();
|
||||
}
|
||||
static async runCustomHookFiles(hookLifecycle: string) {
|
||||
RemoteClientLogger.log(`RunCustomHookFiles: ${hookLifecycle}`);
|
||||
const gameCiCustomHooksPath = path.join(CloudRunnerFolders.repoPathAbsolute, `game-ci`, `hooks`);
|
||||
|
|
|
|||
|
|
@ -45,12 +45,12 @@ export class CloudRunnerCustomSteps {
|
|||
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 region $AWS_DEFAULT_REGION --profile default
|
||||
aws s3 cp /data/cache/$CI_CACHE_KEY/build/build-${CloudRunner.buildParameters.buildGuid}.tar${
|
||||
aws s3 cp /data/cache/$CACHE_KEY/build/build-${CloudRunner.buildParameters.buildGuid}.tar${
|
||||
CloudRunner.buildParameters.useCompressionStrategy ? '.lz4' : ''
|
||||
} s3://${CloudRunner.buildParameters.awsStackName}/cloud-runner-cache/$CI_CACHE_KEY/build/build-$BUILD_GUID.tar${
|
||||
} s3://${CloudRunner.buildParameters.awsStackName}/cloud-runner-cache/$CACHE_KEY/build/build-$BUILD_GUID.tar${
|
||||
CloudRunner.buildParameters.useCompressionStrategy ? '.lz4' : ''
|
||||
}
|
||||
rm /data/cache/$CI_CACHE_KEY/build/build-${CloudRunner.buildParameters.buildGuid}.tar${
|
||||
rm /data/cache/$CACHE_KEY/build/build-${CloudRunner.buildParameters.buildGuid}.tar${
|
||||
CloudRunner.buildParameters.useCompressionStrategy ? '.lz4' : ''
|
||||
}
|
||||
secrets:
|
||||
|
|
@ -63,22 +63,22 @@ export class CloudRunnerCustomSteps {
|
|||
- name: aws-s3-pull-build
|
||||
image: amazon/aws-cli
|
||||
commands: |
|
||||
aws configure set aws_access_key_id $CI_AWS_ACCESS_KEY_ID --profile default
|
||||
aws configure set aws_secret_access_key $CI_AWS_SECRET_ACCESS_KEY --profile default
|
||||
aws configure set region $CI_AWS_DEFAULT_REGION --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 region $AWS_DEFAULT_REGION --profile default
|
||||
aws s3 ls ${CloudRunner.buildParameters.awsStackName}/cloud-runner-cache/ || true
|
||||
aws s3 ls ${CloudRunner.buildParameters.awsStackName}/cloud-runner-cache/$CI_CACHE_KEY/build || true
|
||||
aws s3 ls ${CloudRunner.buildParameters.awsStackName}/cloud-runner-cache/$CACHE_KEY/build || true
|
||||
aws s3 cp s3://${
|
||||
CloudRunner.buildParameters.awsStackName
|
||||
}/cloud-runner-cache/$CI_CACHE_KEY/build/build-$BUILD_GUID_TARGET.tar${
|
||||
}/cloud-runner-cache/$CACHE_KEY/build/build-$BUILD_GUID_TARGET.tar${
|
||||
CloudRunner.buildParameters.useCompressionStrategy ? '.lz4' : ''
|
||||
} /data/cache/$CI_CACHE_KEY/build/build-$BUILD_GUID_TARGET.tar${
|
||||
} /data/cache/$CACHE_KEY/build/build-$BUILD_GUID_TARGET.tar${
|
||||
CloudRunner.buildParameters.useCompressionStrategy ? '.lz4' : ''
|
||||
}
|
||||
secrets:
|
||||
- name: CI_AWS_ACCESS_KEY_ID
|
||||
- name: CI_AWS_SECRET_ACCESS_KEY
|
||||
- name: CI_AWS_DEFAULT_REGION
|
||||
- name: AWS_ACCESS_KEY_ID
|
||||
- name: AWS_SECRET_ACCESS_KEY
|
||||
- name: AWS_DEFAULT_REGION
|
||||
- name: BUILD_GUID_TARGET
|
||||
- name: steam-deploy-client
|
||||
image: steamcmd/steamcmd
|
||||
|
|
@ -120,47 +120,47 @@ export class CloudRunnerCustomSteps {
|
|||
image: amazon/aws-cli
|
||||
hook: after
|
||||
commands: |
|
||||
aws configure set aws_access_key_id $CI_AWS_ACCESS_KEY_ID --profile default
|
||||
aws configure set aws_secret_access_key $CI_AWS_SECRET_ACCESS_KEY --profile default
|
||||
aws configure set region $CI_AWS_DEFAULT_REGION --profile default
|
||||
aws s3 cp --recursive /data/cache/$CI_CACHE_KEY/lfs s3://${
|
||||
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 region $AWS_DEFAULT_REGION --profile default
|
||||
aws s3 cp --recursive /data/cache/$CACHE_KEY/lfs s3://${
|
||||
CloudRunner.buildParameters.awsStackName
|
||||
}/cloud-runner-cache/$CI_CACHE_KEY/lfs
|
||||
rm -r /data/cache/$CI_CACHE_KEY/lfs
|
||||
aws s3 cp --recursive /data/cache/$CI_CACHE_KEY/Library s3://${
|
||||
}/cloud-runner-cache/$CACHE_KEY/lfs
|
||||
rm -r /data/cache/$CACHE_KEY/lfs
|
||||
aws s3 cp --recursive /data/cache/$CACHE_KEY/Library s3://${
|
||||
CloudRunner.buildParameters.awsStackName
|
||||
}/cloud-runner-cache/$CI_CACHE_KEY/Library
|
||||
rm -r /data/cache/$CI_CACHE_KEY/Library
|
||||
}/cloud-runner-cache/$CACHE_KEY/Library
|
||||
rm -r /data/cache/$CACHE_KEY/Library
|
||||
secrets:
|
||||
- name: CI_AWS_ACCESS_KEY_ID
|
||||
- name: AWS_ACCESS_KEY_ID
|
||||
value: ${process.env.AWS_ACCESS_KEY_ID || ``}
|
||||
- name: CI_AWS_SECRET_ACCESS_KEY
|
||||
- name: AWS_SECRET_ACCESS_KEY
|
||||
value: ${process.env.AWS_SECRET_ACCESS_KEY || ``}
|
||||
- name: CI_AWS_DEFAULT_REGION
|
||||
- name: AWS_DEFAULT_REGION
|
||||
value: ${process.env.AWS_REGION || ``}
|
||||
- name: aws-s3-pull-cache
|
||||
image: amazon/aws-cli
|
||||
hook: before
|
||||
commands: |
|
||||
aws configure set aws_access_key_id $CI_AWS_ACCESS_KEY_ID --profile default
|
||||
aws configure set aws_secret_access_key $CI_AWS_SECRET_ACCESS_KEY --profile default
|
||||
aws configure set region $CI_AWS_DEFAULT_REGION --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 region $AWS_DEFAULT_REGION --profile default
|
||||
aws s3 ls ${CloudRunner.buildParameters.awsStackName}/cloud-runner-cache/ || true
|
||||
aws s3 ls ${CloudRunner.buildParameters.awsStackName}/cloud-runner-cache/$CI_CACHE_KEY/ || true
|
||||
BUCKET1="${CloudRunner.buildParameters.awsStackName}/cloud-runner-cache/$CI_CACHE_KEY/Library/"
|
||||
aws s3 ls ${CloudRunner.buildParameters.awsStackName}/cloud-runner-cache/$CACHE_KEY/ || true
|
||||
BUCKET1="${CloudRunner.buildParameters.awsStackName}/cloud-runner-cache/$CACHE_KEY/Library/"
|
||||
aws s3 ls $BUCKET1 || true
|
||||
OBJECT1="$(aws s3 ls $BUCKET1 | sort | tail -n 1 | awk '{print $4}' || '')"
|
||||
aws s3 cp s3://$BUCKET1$OBJECT1 /data/cache/$CI_CACHE_KEY/Library/ || true
|
||||
BUCKET2="${CloudRunner.buildParameters.awsStackName}/cloud-runner-cache/$CI_CACHE_KEY/lfs/"
|
||||
aws s3 cp s3://$BUCKET1$OBJECT1 /data/cache/$CACHE_KEY/Library/ || true
|
||||
BUCKET2="${CloudRunner.buildParameters.awsStackName}/cloud-runner-cache/$CACHE_KEY/lfs/"
|
||||
aws s3 ls $BUCKET2 || true
|
||||
OBJECT2="$(aws s3 ls $BUCKET2 | sort | tail -n 1 | awk '{print $4}' || '')"
|
||||
aws s3 cp s3://$BUCKET2$OBJECT2 /data/cache/$CI_CACHE_KEY/lfs/ || true
|
||||
aws s3 cp s3://$BUCKET2$OBJECT2 /data/cache/$CACHE_KEY/lfs/ || true
|
||||
secrets:
|
||||
- name: CI_AWS_ACCESS_KEY_ID
|
||||
- name: AWS_ACCESS_KEY_ID
|
||||
value: ${process.env.AWS_ACCESS_KEY_ID || ``}
|
||||
- name: CI_AWS_SECRET_ACCESS_KEY
|
||||
- name: AWS_SECRET_ACCESS_KEY
|
||||
value: ${process.env.AWS_SECRET_ACCESS_KEY || ``}
|
||||
- name: CI_AWS_DEFAULT_REGION
|
||||
- name: AWS_DEFAULT_REGION
|
||||
value: ${process.env.AWS_REGION || ``}
|
||||
- name: debug-cache
|
||||
image: ubuntu
|
||||
|
|
|
|||
|
|
@ -6,9 +6,6 @@ import CloudRunnerQueryOverride from './cloud-runner-query-override';
|
|||
import CloudRunnerOptionsReader from './cloud-runner-options-reader';
|
||||
import BuildParameters from '../../build-parameters';
|
||||
import CloudRunnerOptions from '../cloud-runner-options';
|
||||
import { CloudRunnerSystem } from './cloud-runner-system';
|
||||
import { CloudRunnerFolders } from './cloud-runner-folders';
|
||||
import fs from 'node:fs';
|
||||
|
||||
export class TaskParameterSerializer {
|
||||
static readonly blockedParameterNames: Set<string> = new Set([
|
||||
|
|
@ -44,7 +41,7 @@ export class TaskParameterSerializer {
|
|||
x.value !== `undefined`,
|
||||
)
|
||||
.map((x) => {
|
||||
x.name = `CI_${TaskParameterSerializer.ToEnvVarFormat(x.name)}`;
|
||||
x.name = `${TaskParameterSerializer.ToEnvVarFormat(x.name)}`;
|
||||
x.value = `${x.value}`;
|
||||
|
||||
return x;
|
||||
|
|
@ -71,14 +68,14 @@ export class TaskParameterSerializer {
|
|||
const keys = [
|
||||
...new Set(
|
||||
Object.getOwnPropertyNames(process.env)
|
||||
.filter((x) => !this.blockedParameterNames.has(x) && x.startsWith('CI_'))
|
||||
.filter((x) => !this.blockedParameterNames.has(x) && x.startsWith(''))
|
||||
.map((x) => TaskParameterSerializer.UndoEnvVarFormat(x)),
|
||||
),
|
||||
];
|
||||
|
||||
for (const element of keys) {
|
||||
if (element !== `customJob`) {
|
||||
buildParameters[element] = process.env[`CI_${TaskParameterSerializer.ToEnvVarFormat(element)}`];
|
||||
buildParameters[element] = process.env[`${TaskParameterSerializer.ToEnvVarFormat(element)}`];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -98,7 +95,7 @@ export class TaskParameterSerializer {
|
|||
}
|
||||
|
||||
public static UndoEnvVarFormat(element: string): string {
|
||||
return this.camelize(element.replace('CI_', '').toLowerCase().replace(/_+/g, ' '));
|
||||
return this.camelize(element.replace('', '').toLowerCase().replace(/_+/g, ' '));
|
||||
}
|
||||
|
||||
private static camelize(string: string) {
|
||||
|
|
@ -173,17 +170,4 @@ export class TaskParameterSerializer {
|
|||
|
||||
return array;
|
||||
}
|
||||
public static async exportAllCiVariablesWithoutPrefix() {
|
||||
const file = `${CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}/setEnv.sh`;
|
||||
for (const variable of Object.entries(process.env)) {
|
||||
if (variable[0].includes(`CI_`)) {
|
||||
const name = variable[0].replace(`CI_`, ``);
|
||||
const value = `${variable[1] || ``}`;
|
||||
process.env[name] = value;
|
||||
fs.appendFileSync(file, `export ${name}="$${variable[0]}"\n`);
|
||||
}
|
||||
}
|
||||
await CloudRunnerSystem.Run(`chmod +x ${file}`);
|
||||
await CloudRunnerSystem.Run(file);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ describe('Cloud Runner Sync Environments', () => {
|
|||
return x;
|
||||
})
|
||||
.filter((element) => {
|
||||
return !['CI_UNITY_LICENSE', 'UNITY_LICENSE', 'CI_CUSTOM_JOB', 'CUSTOM_JOB'].includes(element.name);
|
||||
return !['UNITY_LICENSE', 'UNITY_LICENSE', 'CUSTOM_JOB', 'CUSTOM_JOB'].includes(element.name);
|
||||
});
|
||||
const newLinePurgedFile = file
|
||||
.replace(/\s+/g, '')
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ export class AsyncWorkflow {
|
|||
try {
|
||||
CloudRunnerLogger.log(`Cloud Runner is running async mode`);
|
||||
const asyncEnvironmentVariable = new CloudRunnerEnvironmentVariable();
|
||||
asyncEnvironmentVariable.name = `CI_ASYNC_WORKFLOW`;
|
||||
asyncEnvironmentVariable.name = `ASYNC_WORKFLOW`;
|
||||
asyncEnvironmentVariable.value = `true`;
|
||||
|
||||
let output = '';
|
||||
|
|
|
|||
|
|
@ -89,9 +89,7 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
|
|||
|
||||
return `export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
|
||||
${cloneBuilderCommands}
|
||||
node ${builderPath} -m remote-cli-pre-build
|
||||
. ${CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}/setEnv.sh
|
||||
rm ${CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}/setEnv.sh`;
|
||||
node ${builderPath} -m remote-cli-pre-build`;
|
||||
}
|
||||
|
||||
private static BuildCommands(builderPath: string) {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ class GitHub {
|
|||
static result: string = ``;
|
||||
private static get octokitDefaultToken() {
|
||||
return new Octokit({
|
||||
auth: process.env.CI_GITHUB_TOKEN || process.env.GITHUB_TOKEN,
|
||||
auth: process.env.GITHUB_TOKEN,
|
||||
});
|
||||
}
|
||||
private static get octokitPAT() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue