log env var serialization

pull/461/head
Frostebite 2022-09-26 17:01:07 +01:00
parent 4e2b47d4cd
commit 9f6a951adb
6 changed files with 54 additions and 30 deletions

33
dist/index.js vendored
View File

@ -937,7 +937,7 @@ class CloudRunner {
CloudRunner.setupSelectedBuildPlatform();
CloudRunner.defaultSecrets = task_parameter_serializer_1.TaskParameterSerializer.readDefaultSecrets();
CloudRunner.cloudRunnerEnvironmentVariables =
task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(buildParameters);
task_parameter_serializer_1.TaskParameterSerializer.createCloudRunnerEnvironmentVariables(buildParameters);
if (!buildParameters.isCliMode && github_1.default.githubInputEnabled) {
const buildParameterPropertyNames = Object.getOwnPropertyNames(buildParameters);
for (const element of CloudRunner.cloudRunnerEnvironmentVariables) {
@ -4731,8 +4731,8 @@ const base_64_1 = __importDefault(__nccwpck_require__(85848));
// import ImageEnvironmentFactory from '../../image-environment-factory';
const core = __importStar(__nccwpck_require__(42186));
class TaskParameterSerializer {
static readBuildEnvironmentVariables(buildParameters) {
return this.uniqBy([
static createCloudRunnerEnvironmentVariables(buildParameters) {
const result = this.uniqBy([
{
name: 'ContainerMemory',
value: buildParameters.cloudRunnerMemory,
@ -4769,6 +4769,8 @@ class TaskParameterSerializer {
}
return x;
}), (item) => item.name);
core.info(`Serialized Env Vars ${JSON.stringify(result, undefined, 4)}`);
return result;
}
static uniqBy(a, key) {
const seen = {};
@ -4779,13 +4781,15 @@ class TaskParameterSerializer {
}
static readBuildParameterFromEnvironment() {
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) {
const parameter = TaskParameterSerializer.UndoEnvVarFormat(element, buildParameters);
buildParameters[parameter] =
process.env[TaskParameterSerializer.ToEnvVarFormat(`GAMECI-${TaskParameterSerializer.ToEnvVarFormat(element)}`)];
if (parameter === `CUSTOM_JOB` || parameter === `GAMECI-CUSTOM_JOB`) {
buildParameters[parameter] = base_64_1.default.decode(buildParameters[parameter]);
buildParameters[element] = process.env[`GAMECI-${TaskParameterSerializer.ToEnvVarFormat(element)}`];
if (element === `customJob`) {
buildParameters[element] = base_64_1.default.decode(buildParameters[element]);
}
}
return buildParameters;
@ -4796,8 +4800,15 @@ class TaskParameterSerializer {
static ToEnvVarFormat(input) {
return cloud_runner_options_1.default.ToEnvVarFormat(input);
}
static UndoEnvVarFormat(element, buildParameters) {
return (Object.keys(buildParameters).find((x) => `GAMECI-${TaskParameterSerializer.ToEnvVarFormat(x)}` === element) || '');
static UndoEnvVarFormat(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) {
const array = [];

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -26,7 +26,7 @@ class CloudRunner {
CloudRunner.setupSelectedBuildPlatform();
CloudRunner.defaultSecrets = TaskParameterSerializer.readDefaultSecrets();
CloudRunner.cloudRunnerEnvironmentVariables =
TaskParameterSerializer.readBuildEnvironmentVariables(buildParameters);
TaskParameterSerializer.createCloudRunnerEnvironmentVariables(buildParameters);
if (!buildParameters.isCliMode && GitHub.githubInputEnabled) {
const buildParameterPropertyNames = Object.getOwnPropertyNames(buildParameters);
for (const element of CloudRunner.cloudRunnerEnvironmentVariables) {

View File

@ -14,8 +14,10 @@ import * as core from '@actions/core';
export class TaskParameterSerializer {
static readonly blocked = new Set(['0', 'length', 'prototype', '', 'unityVersion']);
public static readBuildEnvironmentVariables(buildParameters: BuildParameters): CloudRunnerEnvironmentVariable[] {
return this.uniqBy(
public static createCloudRunnerEnvironmentVariables(
buildParameters: BuildParameters,
): CloudRunnerEnvironmentVariable[] {
const result = this.uniqBy(
[
{
name: 'ContainerMemory',
@ -58,6 +60,9 @@ export class TaskParameterSerializer {
}),
(item) => item.name,
);
core.info(`Serialized Env Vars ${JSON.stringify(result, undefined, 4)}`);
return result;
}
static uniqBy(a, key) {
@ -72,15 +77,17 @@ export class TaskParameterSerializer {
public static readBuildParameterFromEnvironment(): 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) {
const parameter = TaskParameterSerializer.UndoEnvVarFormat(element, buildParameters);
buildParameters[parameter] =
process.env[
TaskParameterSerializer.ToEnvVarFormat(`GAMECI-${TaskParameterSerializer.ToEnvVarFormat(element)}`)
];
if (parameter === `CUSTOM_JOB` || parameter === `GAMECI-CUSTOM_JOB`) {
buildParameters[parameter] = base64.decode(buildParameters[parameter]);
buildParameters[element] = process.env[`GAMECI-${TaskParameterSerializer.ToEnvVarFormat(element)}`];
if (element === `customJob`) {
buildParameters[element] = base64.decode(buildParameters[element]);
}
}
@ -95,10 +102,16 @@ export class TaskParameterSerializer {
return CloudRunnerOptions.ToEnvVarFormat(input);
}
public static UndoEnvVarFormat(element, buildParameters): string {
return (
Object.keys(buildParameters).find((x) => `GAMECI-${TaskParameterSerializer.ToEnvVarFormat(x)}` === element) || ''
);
public static UndoEnvVarFormat(element): string {
return this.camelize(element.replace('GAMECI-', '').replace('-', ' ').replace('_', ' '));
}
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) {

View File

@ -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();
const result2 = TaskParameterSerializer.readBuildEnvironmentVariables(buildParameter);
const result2 = TaskParameterSerializer.createCloudRunnerEnvironmentVariables(buildParameter);
expect(result2.find((x) => Number.parseInt(x.name)) !== undefined).toBeFalsy();
});
});

View File

@ -52,7 +52,7 @@ describe('Cloud Runner Sync Environments', () => {
// Assert results
// expect(file).toContain(JSON.stringify(buildParameter));
expect(file).toContain(`${Input.ToEnvVarFormat(testSecretName)}=${testSecretValue}`);
const environmentVariables = TaskParameterSerializer.readBuildEnvironmentVariables(buildParameter);
const environmentVariables = TaskParameterSerializer.createCloudRunnerEnvironmentVariables(buildParameter);
const secrets = TaskParameterSerializer.readDefaultSecrets().map((x) => {
return {
name: x.EnvironmentVariable,