log env var serialization
parent
4e2b47d4cd
commit
9f6a951adb
|
|
@ -937,7 +937,7 @@ class CloudRunner {
|
||||||
CloudRunner.setupSelectedBuildPlatform();
|
CloudRunner.setupSelectedBuildPlatform();
|
||||||
CloudRunner.defaultSecrets = task_parameter_serializer_1.TaskParameterSerializer.readDefaultSecrets();
|
CloudRunner.defaultSecrets = task_parameter_serializer_1.TaskParameterSerializer.readDefaultSecrets();
|
||||||
CloudRunner.cloudRunnerEnvironmentVariables =
|
CloudRunner.cloudRunnerEnvironmentVariables =
|
||||||
task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(buildParameters);
|
task_parameter_serializer_1.TaskParameterSerializer.createCloudRunnerEnvironmentVariables(buildParameters);
|
||||||
if (!buildParameters.isCliMode && github_1.default.githubInputEnabled) {
|
if (!buildParameters.isCliMode && github_1.default.githubInputEnabled) {
|
||||||
const buildParameterPropertyNames = Object.getOwnPropertyNames(buildParameters);
|
const buildParameterPropertyNames = Object.getOwnPropertyNames(buildParameters);
|
||||||
for (const element of CloudRunner.cloudRunnerEnvironmentVariables) {
|
for (const element of CloudRunner.cloudRunnerEnvironmentVariables) {
|
||||||
|
|
@ -4731,8 +4731,8 @@ const base_64_1 = __importDefault(__nccwpck_require__(85848));
|
||||||
// import ImageEnvironmentFactory from '../../image-environment-factory';
|
// import ImageEnvironmentFactory from '../../image-environment-factory';
|
||||||
const core = __importStar(__nccwpck_require__(42186));
|
const core = __importStar(__nccwpck_require__(42186));
|
||||||
class TaskParameterSerializer {
|
class TaskParameterSerializer {
|
||||||
static readBuildEnvironmentVariables(buildParameters) {
|
static createCloudRunnerEnvironmentVariables(buildParameters) {
|
||||||
return this.uniqBy([
|
const result = this.uniqBy([
|
||||||
{
|
{
|
||||||
name: 'ContainerMemory',
|
name: 'ContainerMemory',
|
||||||
value: buildParameters.cloudRunnerMemory,
|
value: buildParameters.cloudRunnerMemory,
|
||||||
|
|
@ -4769,6 +4769,8 @@ class TaskParameterSerializer {
|
||||||
}
|
}
|
||||||
return x;
|
return x;
|
||||||
}), (item) => item.name);
|
}), (item) => item.name);
|
||||||
|
core.info(`Serialized Env Vars ${JSON.stringify(result, undefined, 4)}`);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
static uniqBy(a, key) {
|
static uniqBy(a, key) {
|
||||||
const seen = {};
|
const seen = {};
|
||||||
|
|
@ -4779,13 +4781,15 @@ class TaskParameterSerializer {
|
||||||
}
|
}
|
||||||
static readBuildParameterFromEnvironment() {
|
static readBuildParameterFromEnvironment() {
|
||||||
const buildParameters = new build_parameters_1.default();
|
const buildParameters = new build_parameters_1.default();
|
||||||
const keys = Object.getOwnPropertyNames(buildParameters).filter((x) => !this.blocked.has(x));
|
const keys = [
|
||||||
|
...new Set(Object.getOwnPropertyNames(process.env)
|
||||||
|
.filter((x) => !this.blocked.has(x) && x.startsWith('GAMECI-'))
|
||||||
|
.map((x) => TaskParameterSerializer.UndoEnvVarFormat(x))),
|
||||||
|
];
|
||||||
for (const element of keys) {
|
for (const element of keys) {
|
||||||
const parameter = TaskParameterSerializer.UndoEnvVarFormat(element, buildParameters);
|
buildParameters[element] = process.env[`GAMECI-${TaskParameterSerializer.ToEnvVarFormat(element)}`];
|
||||||
buildParameters[parameter] =
|
if (element === `customJob`) {
|
||||||
process.env[TaskParameterSerializer.ToEnvVarFormat(`GAMECI-${TaskParameterSerializer.ToEnvVarFormat(element)}`)];
|
buildParameters[element] = base_64_1.default.decode(buildParameters[element]);
|
||||||
if (parameter === `CUSTOM_JOB` || parameter === `GAMECI-CUSTOM_JOB`) {
|
|
||||||
buildParameters[parameter] = base_64_1.default.decode(buildParameters[parameter]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return buildParameters;
|
return buildParameters;
|
||||||
|
|
@ -4796,8 +4800,15 @@ class TaskParameterSerializer {
|
||||||
static ToEnvVarFormat(input) {
|
static ToEnvVarFormat(input) {
|
||||||
return cloud_runner_options_1.default.ToEnvVarFormat(input);
|
return cloud_runner_options_1.default.ToEnvVarFormat(input);
|
||||||
}
|
}
|
||||||
static UndoEnvVarFormat(element, buildParameters) {
|
static UndoEnvVarFormat(element) {
|
||||||
return (Object.keys(buildParameters).find((x) => `GAMECI-${TaskParameterSerializer.ToEnvVarFormat(x)}` === element) || '');
|
return this.camelize(element.replace('GAMECI-', '').replace('-', ' ').replace('_', ' '));
|
||||||
|
}
|
||||||
|
static camelize(string) {
|
||||||
|
return string
|
||||||
|
.replace(/^\w|[A-Z]|\b\w/g, function (word, index) {
|
||||||
|
return index === 0 ? word.toLowerCase() : word.toUpperCase();
|
||||||
|
})
|
||||||
|
.replace(/\s+/g, '');
|
||||||
}
|
}
|
||||||
static serializeFromObject(buildParameters) {
|
static serializeFromObject(buildParameters) {
|
||||||
const array = [];
|
const array = [];
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -26,7 +26,7 @@ class CloudRunner {
|
||||||
CloudRunner.setupSelectedBuildPlatform();
|
CloudRunner.setupSelectedBuildPlatform();
|
||||||
CloudRunner.defaultSecrets = TaskParameterSerializer.readDefaultSecrets();
|
CloudRunner.defaultSecrets = TaskParameterSerializer.readDefaultSecrets();
|
||||||
CloudRunner.cloudRunnerEnvironmentVariables =
|
CloudRunner.cloudRunnerEnvironmentVariables =
|
||||||
TaskParameterSerializer.readBuildEnvironmentVariables(buildParameters);
|
TaskParameterSerializer.createCloudRunnerEnvironmentVariables(buildParameters);
|
||||||
if (!buildParameters.isCliMode && GitHub.githubInputEnabled) {
|
if (!buildParameters.isCliMode && GitHub.githubInputEnabled) {
|
||||||
const buildParameterPropertyNames = Object.getOwnPropertyNames(buildParameters);
|
const buildParameterPropertyNames = Object.getOwnPropertyNames(buildParameters);
|
||||||
for (const element of CloudRunner.cloudRunnerEnvironmentVariables) {
|
for (const element of CloudRunner.cloudRunnerEnvironmentVariables) {
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,10 @@ import * as core from '@actions/core';
|
||||||
|
|
||||||
export class TaskParameterSerializer {
|
export class TaskParameterSerializer {
|
||||||
static readonly blocked = new Set(['0', 'length', 'prototype', '', 'unityVersion']);
|
static readonly blocked = new Set(['0', 'length', 'prototype', '', 'unityVersion']);
|
||||||
public static readBuildEnvironmentVariables(buildParameters: BuildParameters): CloudRunnerEnvironmentVariable[] {
|
public static createCloudRunnerEnvironmentVariables(
|
||||||
return this.uniqBy(
|
buildParameters: BuildParameters,
|
||||||
|
): CloudRunnerEnvironmentVariable[] {
|
||||||
|
const result = this.uniqBy(
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
name: 'ContainerMemory',
|
name: 'ContainerMemory',
|
||||||
|
|
@ -58,6 +60,9 @@ export class TaskParameterSerializer {
|
||||||
}),
|
}),
|
||||||
(item) => item.name,
|
(item) => item.name,
|
||||||
);
|
);
|
||||||
|
core.info(`Serialized Env Vars ${JSON.stringify(result, undefined, 4)}`);
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uniqBy(a, key) {
|
static uniqBy(a, key) {
|
||||||
|
|
@ -72,15 +77,17 @@ export class TaskParameterSerializer {
|
||||||
|
|
||||||
public static readBuildParameterFromEnvironment(): BuildParameters {
|
public static readBuildParameterFromEnvironment(): BuildParameters {
|
||||||
const buildParameters = new BuildParameters();
|
const buildParameters = new BuildParameters();
|
||||||
const keys = Object.getOwnPropertyNames(buildParameters).filter((x) => !this.blocked.has(x));
|
const keys = [
|
||||||
|
...new Set(
|
||||||
|
Object.getOwnPropertyNames(process.env)
|
||||||
|
.filter((x) => !this.blocked.has(x) && x.startsWith('GAMECI-'))
|
||||||
|
.map((x) => TaskParameterSerializer.UndoEnvVarFormat(x)),
|
||||||
|
),
|
||||||
|
];
|
||||||
for (const element of keys) {
|
for (const element of keys) {
|
||||||
const parameter = TaskParameterSerializer.UndoEnvVarFormat(element, buildParameters);
|
buildParameters[element] = process.env[`GAMECI-${TaskParameterSerializer.ToEnvVarFormat(element)}`];
|
||||||
buildParameters[parameter] =
|
if (element === `customJob`) {
|
||||||
process.env[
|
buildParameters[element] = base64.decode(buildParameters[element]);
|
||||||
TaskParameterSerializer.ToEnvVarFormat(`GAMECI-${TaskParameterSerializer.ToEnvVarFormat(element)}`)
|
|
||||||
];
|
|
||||||
if (parameter === `CUSTOM_JOB` || parameter === `GAMECI-CUSTOM_JOB`) {
|
|
||||||
buildParameters[parameter] = base64.decode(buildParameters[parameter]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -95,10 +102,16 @@ export class TaskParameterSerializer {
|
||||||
return CloudRunnerOptions.ToEnvVarFormat(input);
|
return CloudRunnerOptions.ToEnvVarFormat(input);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static UndoEnvVarFormat(element, buildParameters): string {
|
public static UndoEnvVarFormat(element): string {
|
||||||
return (
|
return this.camelize(element.replace('GAMECI-', '').replace('-', ' ').replace('_', ' '));
|
||||||
Object.keys(buildParameters).find((x) => `GAMECI-${TaskParameterSerializer.ToEnvVarFormat(x)}` === element) || ''
|
}
|
||||||
);
|
|
||||||
|
private static camelize(string) {
|
||||||
|
return string
|
||||||
|
.replace(/^\w|[A-Z]|\b\w/g, function (word, index) {
|
||||||
|
return index === 0 ? word.toLowerCase() : word.toUpperCase();
|
||||||
|
})
|
||||||
|
.replace(/\s+/g, '');
|
||||||
}
|
}
|
||||||
|
|
||||||
private static serializeFromObject(buildParameters) {
|
private static serializeFromObject(buildParameters) {
|
||||||
|
|
|
||||||
|
|
@ -37,9 +37,9 @@ describe('Cloud Runner Environment Serializer', () => {
|
||||||
`,
|
`,
|
||||||
});
|
});
|
||||||
|
|
||||||
const result = TaskParameterSerializer.readBuildEnvironmentVariables(buildParameter);
|
const result = TaskParameterSerializer.createCloudRunnerEnvironmentVariables(buildParameter);
|
||||||
expect(result.find((x) => Number.parseInt(x.name)) !== undefined).toBeFalsy();
|
expect(result.find((x) => Number.parseInt(x.name)) !== undefined).toBeFalsy();
|
||||||
const result2 = TaskParameterSerializer.readBuildEnvironmentVariables(buildParameter);
|
const result2 = TaskParameterSerializer.createCloudRunnerEnvironmentVariables(buildParameter);
|
||||||
expect(result2.find((x) => Number.parseInt(x.name)) !== undefined).toBeFalsy();
|
expect(result2.find((x) => Number.parseInt(x.name)) !== undefined).toBeFalsy();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ describe('Cloud Runner Sync Environments', () => {
|
||||||
// Assert results
|
// Assert results
|
||||||
// expect(file).toContain(JSON.stringify(buildParameter));
|
// expect(file).toContain(JSON.stringify(buildParameter));
|
||||||
expect(file).toContain(`${Input.ToEnvVarFormat(testSecretName)}=${testSecretValue}`);
|
expect(file).toContain(`${Input.ToEnvVarFormat(testSecretName)}=${testSecretValue}`);
|
||||||
const environmentVariables = TaskParameterSerializer.readBuildEnvironmentVariables(buildParameter);
|
const environmentVariables = TaskParameterSerializer.createCloudRunnerEnvironmentVariables(buildParameter);
|
||||||
const secrets = TaskParameterSerializer.readDefaultSecrets().map((x) => {
|
const secrets = TaskParameterSerializer.readDefaultSecrets().map((x) => {
|
||||||
return {
|
return {
|
||||||
name: x.EnvironmentVariable,
|
name: x.EnvironmentVariable,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue