unity-builder/src/model/cloud-runner/services/task-parameter-serializer.ts

93 lines
2.6 KiB
TypeScript
Raw Normal View History

import { Input } from '../..';
import ImageEnvironmentFactory from '../../image-environment-factory';
2021-12-29 23:42:06 +00:00
import CloudRunnerEnvironmentVariable from './cloud-runner-environment-variable';
import { CloudRunnerState } from '../state/cloud-runner-state';
export class TaskParameterSerializer {
public static readBuildEnvironmentVariables(): CloudRunnerEnvironmentVariable[] {
2021-12-30 17:49:16 +00:00
TaskParameterSerializer.setupDefaultSecrets();
return [
{
name: 'ContainerMemory',
value: CloudRunnerState.buildParams.cloudRunnerMemory,
},
{
name: 'ContainerCpu',
value: CloudRunnerState.buildParams.cloudRunnerCpu,
},
{
name: 'BUILD_TARGET',
value: CloudRunnerState.buildParams.platform,
},
...TaskParameterSerializer.serializeBuildParamsAndInput,
];
}
private static get serializeBuildParamsAndInput() {
2021-12-29 18:25:09 +00:00
let array = new Array();
array = TaskParameterSerializer.readBuildParameters(array);
2021-12-29 23:42:06 +00:00
array = TaskParameterSerializer.readInput(array);
2021-12-30 17:49:16 +00:00
array = array.filter((x) => x.value !== undefined && x.name !== '0' && x.value !== '');
2021-12-30 18:20:05 +00:00
array = array.map((x) => {
2021-12-30 18:57:53 +00:00
x.name = Input.ToEnvVarFormat(x.name);
2021-12-30 18:20:05 +00:00
return x;
});
2021-12-29 18:25:09 +00:00
return array;
}
private static readBuildParameters(array: any[]) {
const keys = Object.keys(CloudRunnerState.buildParams);
for (const element of keys) {
2021-12-30 05:10:23 +00:00
array.push(
2021-12-30 14:51:06 +00:00
//{
// name: element,
// value: `${CloudRunnerState.buildParams[element]}`,
//},
2021-12-30 05:10:23 +00:00
{
2021-12-30 18:57:53 +00:00
name: element,
2021-12-30 17:49:16 +00:00
value: CloudRunnerState.buildParams[element],
2021-12-30 05:10:23 +00:00
},
);
}
2021-12-29 23:49:47 +00:00
array.push(
{ name: 'buildParameters', value: JSON.stringify(CloudRunnerState.buildParams) },
{
2021-12-30 18:47:01 +00:00
name: `buildGuid`,
value: CloudRunnerState.buildParams.buildGuid,
2021-12-29 23:49:47 +00:00
},
);
2021-12-29 18:25:09 +00:00
return array;
}
private static readInput(array: any[]) {
const input = Object.getOwnPropertyNames(Input);
for (const element of input) {
2021-12-29 18:25:09 +00:00
if (typeof Input[element] !== 'function') {
2021-12-30 05:10:23 +00:00
array.push(
2021-12-30 14:51:06 +00:00
//{
// name: element,
// value: `${Input[element]}`,
//},
2021-12-30 05:10:23 +00:00
{
2021-12-30 18:57:53 +00:00
name: element,
value: `${Input[element]}`,
2021-12-30 05:10:23 +00:00
},
);
}
}
return array;
}
2021-12-30 17:49:16 +00:00
private static setupDefaultSecrets() {
if (CloudRunnerState.defaultSecrets === undefined)
CloudRunnerState.defaultSecrets = ImageEnvironmentFactory.getEnvironmentVariables(
CloudRunnerState.buildParams,
).map((x) => {
return {
ParameterKey: x.name,
EnvironmentVariable: x.name,
ParameterValue: x.value,
};
2021-12-30 17:49:16 +00:00
});
}
}