Refactor parameter serialization into TaskParameterSerializer

pull/310/head
Frostebite 2021-12-23 18:10:05 +00:00
parent 6d11aa0a57
commit bede18971a
4 changed files with 292 additions and 260 deletions

278
dist/index.js vendored
View File

@ -2211,16 +2211,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
}; };
Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.CloudRunnerState = void 0; exports.CloudRunnerState = void 0;
const __1 = __webpack_require__(41359);
const image_environment_factory_1 = __importDefault(__webpack_require__(25145));
const cloud_runner_namespace_1 = __importDefault(__webpack_require__(63287)); const cloud_runner_namespace_1 = __importDefault(__webpack_require__(63287));
const task_parameter_serializer_1 = __webpack_require__(43247);
class CloudRunnerState { class CloudRunnerState {
static setup(buildParameters) { static setup(buildParameters) {
CloudRunnerState.buildParams = buildParameters; CloudRunnerState.buildParams = buildParameters;
if (CloudRunnerState.buildGuid === undefined) { if (CloudRunnerState.buildGuid === undefined) {
CloudRunnerState.buildGuid = cloud_runner_namespace_1.default.generateBuildName(CloudRunnerState.runNumber, buildParameters.platform); CloudRunnerState.buildGuid = cloud_runner_namespace_1.default.generateBuildName(CloudRunnerState.runNumber, buildParameters.platform);
} }
CloudRunnerState.setupDefaultSecrets(); task_parameter_serializer_1.TaskParameterSerializer.setupDefaultSecrets();
} }
static get branchName() { static get branchName() {
return CloudRunnerState.buildParams.branch; return CloudRunnerState.buildParams.branch;
@ -2262,80 +2261,7 @@ class CloudRunnerState {
return `${CloudRunnerState.buildParams.githubRepo}`; return `${CloudRunnerState.buildParams.githubRepo}`;
} }
static readBuildEnvironmentVariables() { static readBuildEnvironmentVariables() {
return [ return task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables();
{
name: 'ContainerMemory',
value: CloudRunnerState.buildParams.cloudRunnerMemory,
},
{
name: 'ContainerCpu',
value: CloudRunnerState.buildParams.cloudRunnerCpu,
},
{
name: 'GITHUB_WORKSPACE',
value: `/${CloudRunnerState.buildVolumeFolder}/${CloudRunnerState.buildGuid}/${CloudRunnerState.repositoryFolder}/`,
},
{
name: 'PROJECT_PATH',
value: CloudRunnerState.buildParams.projectPath,
},
{
name: 'BUILD_PATH',
value: CloudRunnerState.buildParams.buildPath,
},
{
name: 'BUILD_FILE',
value: CloudRunnerState.buildParams.buildFile,
},
{
name: 'BUILD_NAME',
value: CloudRunnerState.buildParams.buildName,
},
{
name: 'BUILD_METHOD',
value: CloudRunnerState.buildParams.buildMethod,
},
{
name: 'CUSTOM_PARAMETERS',
value: CloudRunnerState.buildParams.customParameters,
},
{
name: 'BUILD_TARGET',
value: CloudRunnerState.buildParams.platform,
},
{
name: 'ANDROID_VERSION_CODE',
value: CloudRunnerState.buildParams.androidVersionCode.toString(),
},
{
name: 'ANDROID_KEYSTORE_NAME',
value: CloudRunnerState.buildParams.androidKeystoreName,
},
{
name: 'ANDROID_KEYALIAS_NAME',
value: CloudRunnerState.buildParams.androidKeyaliasName,
},
...CloudRunnerState.serializeBuildParamsAndInput,
];
}
static get serializeBuildParamsAndInput() {
const keys = Object.keys(CloudRunnerState.buildParams);
const array = new Array();
for (const element of keys) {
array.push({
name: element,
value: `${CloudRunnerState.buildParams[element]}`,
});
}
array.push({ name: 'buildParameters', value: JSON.stringify(CloudRunnerState.buildParams) });
const input = Object.getOwnPropertyNames(__1.Input);
for (const element of input) {
array.push({
name: element,
value: `${__1.Input[element]}`,
});
}
return array;
} }
static get getHandleCachingCommand() { static get getHandleCachingCommand() {
return `${CloudRunnerState.builderPathFull}/dist/cloud-runner/handleCaching.sh "${CloudRunnerState.cacheFolderFull}" "${CloudRunnerState.libraryFolderFull}" "${CloudRunnerState.lfsDirectory}" "${CloudRunnerState.purgeRemoteCaching}"`; return `${CloudRunnerState.builderPathFull}/dist/cloud-runner/handleCaching.sh "${CloudRunnerState.cacheFolderFull}" "${CloudRunnerState.libraryFolderFull}" "${CloudRunnerState.lfsDirectory}" "${CloudRunnerState.purgeRemoteCaching}"`;
@ -2350,57 +2276,6 @@ class CloudRunnerState {
} }
return runNumber; return runNumber;
} }
static setupDefaultSecrets() {
CloudRunnerState.defaultSecrets = [
{
ParameterKey: 'GithubToken',
EnvironmentVariable: 'GITHUB_TOKEN',
ParameterValue: CloudRunnerState.buildParams.githubToken,
},
{
ParameterKey: 'branch',
EnvironmentVariable: 'branch',
ParameterValue: CloudRunnerState.branchName,
},
{
ParameterKey: 'buildPathFull',
EnvironmentVariable: 'buildPathFull',
ParameterValue: CloudRunnerState.buildPathFull,
},
{
ParameterKey: 'projectPathFull',
EnvironmentVariable: 'projectPathFull',
ParameterValue: CloudRunnerState.projectPathFull,
},
{
ParameterKey: 'libraryFolderFull',
EnvironmentVariable: 'libraryFolderFull',
ParameterValue: CloudRunnerState.libraryFolderFull,
},
{
ParameterKey: 'builderPathFull',
EnvironmentVariable: 'builderPathFull',
ParameterValue: CloudRunnerState.builderPathFull,
},
{
ParameterKey: 'repoPathFull',
EnvironmentVariable: 'repoPathFull',
ParameterValue: CloudRunnerState.repoPathFull,
},
{
ParameterKey: 'steamPathFull',
EnvironmentVariable: 'steamPathFull',
ParameterValue: CloudRunnerState.steamPathFull,
},
];
CloudRunnerState.defaultSecrets.push(...image_environment_factory_1.default.getEnvironmentVariables(CloudRunnerState.buildParams).map((x) => {
return {
ParameterKey: x.name,
EnvironmentVariable: x.name,
ParameterValue: x.value,
};
}));
}
} }
exports.CloudRunnerState = CloudRunnerState; exports.CloudRunnerState = CloudRunnerState;
CloudRunnerState.defaultGitShaEnvironmentVariable = [ CloudRunnerState.defaultGitShaEnvironmentVariable = [
@ -2433,6 +2308,153 @@ class CloudRunnerStepState {
exports.CloudRunnerStepState = CloudRunnerStepState; exports.CloudRunnerStepState = CloudRunnerStepState;
/***/ }),
/***/ 43247:
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.TaskParameterSerializer = void 0;
const __1 = __webpack_require__(41359);
const image_environment_factory_1 = __importDefault(__webpack_require__(25145));
const cloud_runner_state_1 = __webpack_require__(70912);
class TaskParameterSerializer {
static readBuildEnvironmentVariables() {
return [
{
name: 'ContainerMemory',
value: cloud_runner_state_1.CloudRunnerState.buildParams.cloudRunnerMemory,
},
{
name: 'ContainerCpu',
value: cloud_runner_state_1.CloudRunnerState.buildParams.cloudRunnerCpu,
},
{
name: 'GITHUB_WORKSPACE',
value: `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}/${cloud_runner_state_1.CloudRunnerState.buildGuid}/${cloud_runner_state_1.CloudRunnerState.repositoryFolder}/`,
},
{
name: 'PROJECT_PATH',
value: cloud_runner_state_1.CloudRunnerState.buildParams.projectPath,
},
{
name: 'BUILD_PATH',
value: cloud_runner_state_1.CloudRunnerState.buildParams.buildPath,
},
{
name: 'BUILD_FILE',
value: cloud_runner_state_1.CloudRunnerState.buildParams.buildFile,
},
{
name: 'BUILD_NAME',
value: cloud_runner_state_1.CloudRunnerState.buildParams.buildName,
},
{
name: 'BUILD_METHOD',
value: cloud_runner_state_1.CloudRunnerState.buildParams.buildMethod,
},
{
name: 'CUSTOM_PARAMETERS',
value: cloud_runner_state_1.CloudRunnerState.buildParams.customParameters,
},
{
name: 'BUILD_TARGET',
value: cloud_runner_state_1.CloudRunnerState.buildParams.platform,
},
{
name: 'ANDROID_VERSION_CODE',
value: cloud_runner_state_1.CloudRunnerState.buildParams.androidVersionCode.toString(),
},
{
name: 'ANDROID_KEYSTORE_NAME',
value: cloud_runner_state_1.CloudRunnerState.buildParams.androidKeystoreName,
},
{
name: 'ANDROID_KEYALIAS_NAME',
value: cloud_runner_state_1.CloudRunnerState.buildParams.androidKeyaliasName,
},
...TaskParameterSerializer.serializeBuildParamsAndInput,
];
}
static get serializeBuildParamsAndInput() {
const keys = Object.keys(cloud_runner_state_1.CloudRunnerState.buildParams);
const array = new Array();
for (const element of keys) {
array.push({
name: element,
value: `${cloud_runner_state_1.CloudRunnerState.buildParams[element]}`,
});
}
array.push({ name: 'buildParameters', value: JSON.stringify(cloud_runner_state_1.CloudRunnerState.buildParams) });
const input = Object.getOwnPropertyNames(__1.Input);
for (const element of input) {
array.push({
name: element,
value: `${__1.Input[element]}`,
});
}
return array;
}
static setupDefaultSecrets() {
cloud_runner_state_1.CloudRunnerState.defaultSecrets = [
{
ParameterKey: 'GithubToken',
EnvironmentVariable: 'GITHUB_TOKEN',
ParameterValue: cloud_runner_state_1.CloudRunnerState.buildParams.githubToken,
},
{
ParameterKey: 'branch',
EnvironmentVariable: 'branch',
ParameterValue: cloud_runner_state_1.CloudRunnerState.branchName,
},
{
ParameterKey: 'buildPathFull',
EnvironmentVariable: 'buildPathFull',
ParameterValue: cloud_runner_state_1.CloudRunnerState.buildPathFull,
},
{
ParameterKey: 'projectPathFull',
EnvironmentVariable: 'projectPathFull',
ParameterValue: cloud_runner_state_1.CloudRunnerState.projectPathFull,
},
{
ParameterKey: 'libraryFolderFull',
EnvironmentVariable: 'libraryFolderFull',
ParameterValue: cloud_runner_state_1.CloudRunnerState.libraryFolderFull,
},
{
ParameterKey: 'builderPathFull',
EnvironmentVariable: 'builderPathFull',
ParameterValue: cloud_runner_state_1.CloudRunnerState.builderPathFull,
},
{
ParameterKey: 'repoPathFull',
EnvironmentVariable: 'repoPathFull',
ParameterValue: cloud_runner_state_1.CloudRunnerState.repoPathFull,
},
{
ParameterKey: 'steamPathFull',
EnvironmentVariable: 'steamPathFull',
ParameterValue: cloud_runner_state_1.CloudRunnerState.steamPathFull,
},
];
cloud_runner_state_1.CloudRunnerState.defaultSecrets.push(...image_environment_factory_1.default.getEnvironmentVariables(cloud_runner_state_1.CloudRunnerState.buildParams).map((x) => {
return {
ParameterKey: x.name,
EnvironmentVariable: x.name,
ParameterValue: x.value,
};
}));
}
}
exports.TaskParameterSerializer = TaskParameterSerializer;
/***/ }), /***/ }),
/***/ 91491: /***/ 91491:

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -1,9 +1,9 @@
import { BuildParameters, Input } from '../..'; import { BuildParameters } from '../..';
import ImageEnvironmentFactory from '../../image-environment-factory';
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable'; import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
import CloudRunnerNamespace from '../services/cloud-runner-namespace'; import CloudRunnerNamespace from '../services/cloud-runner-namespace';
import { CloudRunnerProviderInterface } from '../services/cloud-runner-provider-interface'; import { CloudRunnerProviderInterface } from '../services/cloud-runner-provider-interface';
import CloudRunnerSecret from '../services/cloud-runner-secret'; import CloudRunnerSecret from '../services/cloud-runner-secret';
import { TaskParameterSerializer } from './task-parameter-serializer';
export class CloudRunnerState { export class CloudRunnerState {
static setup(buildParameters: BuildParameters) { static setup(buildParameters: BuildParameters) {
@ -14,7 +14,7 @@ export class CloudRunnerState {
buildParameters.platform, buildParameters.platform,
); );
} }
CloudRunnerState.setupDefaultSecrets(); TaskParameterSerializer.setupDefaultSecrets();
} }
public static CloudRunnerProviderPlatform: CloudRunnerProviderInterface; public static CloudRunnerProviderPlatform: CloudRunnerProviderInterface;
public static buildParams: BuildParameters; public static buildParams: BuildParameters;
@ -72,80 +72,7 @@ export class CloudRunnerState {
public static cloudRunnerBranch: string; public static cloudRunnerBranch: string;
public static readBuildEnvironmentVariables(): CloudRunnerEnvironmentVariable[] { public static readBuildEnvironmentVariables(): CloudRunnerEnvironmentVariable[] {
return [ return TaskParameterSerializer.readBuildEnvironmentVariables();
{
name: 'ContainerMemory',
value: CloudRunnerState.buildParams.cloudRunnerMemory,
},
{
name: 'ContainerCpu',
value: CloudRunnerState.buildParams.cloudRunnerCpu,
},
{
name: 'GITHUB_WORKSPACE',
value: `/${CloudRunnerState.buildVolumeFolder}/${CloudRunnerState.buildGuid}/${CloudRunnerState.repositoryFolder}/`,
},
{
name: 'PROJECT_PATH',
value: CloudRunnerState.buildParams.projectPath,
},
{
name: 'BUILD_PATH',
value: CloudRunnerState.buildParams.buildPath,
},
{
name: 'BUILD_FILE',
value: CloudRunnerState.buildParams.buildFile,
},
{
name: 'BUILD_NAME',
value: CloudRunnerState.buildParams.buildName,
},
{
name: 'BUILD_METHOD',
value: CloudRunnerState.buildParams.buildMethod,
},
{
name: 'CUSTOM_PARAMETERS',
value: CloudRunnerState.buildParams.customParameters,
},
{
name: 'BUILD_TARGET',
value: CloudRunnerState.buildParams.platform,
},
{
name: 'ANDROID_VERSION_CODE',
value: CloudRunnerState.buildParams.androidVersionCode.toString(),
},
{
name: 'ANDROID_KEYSTORE_NAME',
value: CloudRunnerState.buildParams.androidKeystoreName,
},
{
name: 'ANDROID_KEYALIAS_NAME',
value: CloudRunnerState.buildParams.androidKeyaliasName,
},
...CloudRunnerState.serializeBuildParamsAndInput,
];
}
private static get serializeBuildParamsAndInput() {
const keys = Object.keys(CloudRunnerState.buildParams);
const array = new Array();
for (const element of keys) {
array.push({
name: element,
value: `${CloudRunnerState.buildParams[element]}`,
});
}
array.push({ name: 'buildParameters', value: JSON.stringify(CloudRunnerState.buildParams) });
const input = Object.getOwnPropertyNames(Input);
for (const element of input) {
array.push({
name: element,
value: `${Input[element]}`,
});
}
return array;
} }
public static get getHandleCachingCommand() { public static get getHandleCachingCommand() {
@ -163,58 +90,4 @@ export class CloudRunnerState {
} }
return runNumber; return runNumber;
} }
public static setupDefaultSecrets() {
CloudRunnerState.defaultSecrets = [
{
ParameterKey: 'GithubToken',
EnvironmentVariable: 'GITHUB_TOKEN',
ParameterValue: CloudRunnerState.buildParams.githubToken,
},
{
ParameterKey: 'branch',
EnvironmentVariable: 'branch',
ParameterValue: CloudRunnerState.branchName,
},
{
ParameterKey: 'buildPathFull',
EnvironmentVariable: 'buildPathFull',
ParameterValue: CloudRunnerState.buildPathFull,
},
{
ParameterKey: 'projectPathFull',
EnvironmentVariable: 'projectPathFull',
ParameterValue: CloudRunnerState.projectPathFull,
},
{
ParameterKey: 'libraryFolderFull',
EnvironmentVariable: 'libraryFolderFull',
ParameterValue: CloudRunnerState.libraryFolderFull,
},
{
ParameterKey: 'builderPathFull',
EnvironmentVariable: 'builderPathFull',
ParameterValue: CloudRunnerState.builderPathFull,
},
{
ParameterKey: 'repoPathFull',
EnvironmentVariable: 'repoPathFull',
ParameterValue: CloudRunnerState.repoPathFull,
},
{
ParameterKey: 'steamPathFull',
EnvironmentVariable: 'steamPathFull',
ParameterValue: CloudRunnerState.steamPathFull,
},
];
CloudRunnerState.defaultSecrets.push(
...ImageEnvironmentFactory.getEnvironmentVariables(CloudRunnerState.buildParams).map((x) => {
return {
ParameterKey: x.name,
EnvironmentVariable: x.name,
ParameterValue: x.value,
};
}),
);
}
} }

View File

@ -0,0 +1,137 @@
import { Input } from '../..';
import ImageEnvironmentFactory from '../../image-environment-factory';
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
import { CloudRunnerState } from './cloud-runner-state';
export class TaskParameterSerializer {
public static readBuildEnvironmentVariables(): CloudRunnerEnvironmentVariable[] {
return [
{
name: 'ContainerMemory',
value: CloudRunnerState.buildParams.cloudRunnerMemory,
},
{
name: 'ContainerCpu',
value: CloudRunnerState.buildParams.cloudRunnerCpu,
},
{
name: 'GITHUB_WORKSPACE',
value: `/${CloudRunnerState.buildVolumeFolder}/${CloudRunnerState.buildGuid}/${CloudRunnerState.repositoryFolder}/`,
},
{
name: 'PROJECT_PATH',
value: CloudRunnerState.buildParams.projectPath,
},
{
name: 'BUILD_PATH',
value: CloudRunnerState.buildParams.buildPath,
},
{
name: 'BUILD_FILE',
value: CloudRunnerState.buildParams.buildFile,
},
{
name: 'BUILD_NAME',
value: CloudRunnerState.buildParams.buildName,
},
{
name: 'BUILD_METHOD',
value: CloudRunnerState.buildParams.buildMethod,
},
{
name: 'CUSTOM_PARAMETERS',
value: CloudRunnerState.buildParams.customParameters,
},
{
name: 'BUILD_TARGET',
value: CloudRunnerState.buildParams.platform,
},
{
name: 'ANDROID_VERSION_CODE',
value: CloudRunnerState.buildParams.androidVersionCode.toString(),
},
{
name: 'ANDROID_KEYSTORE_NAME',
value: CloudRunnerState.buildParams.androidKeystoreName,
},
{
name: 'ANDROID_KEYALIAS_NAME',
value: CloudRunnerState.buildParams.androidKeyaliasName,
},
...TaskParameterSerializer.serializeBuildParamsAndInput,
];
}
private static get serializeBuildParamsAndInput() {
const keys = Object.keys(CloudRunnerState.buildParams);
const array = new Array();
for (const element of keys) {
array.push({
name: element,
value: `${CloudRunnerState.buildParams[element]}`,
});
}
array.push({ name: 'buildParameters', value: JSON.stringify(CloudRunnerState.buildParams) });
const input = Object.getOwnPropertyNames(Input);
for (const element of input) {
array.push({
name: element,
value: `${Input[element]}`,
});
}
return array;
}
public static setupDefaultSecrets() {
CloudRunnerState.defaultSecrets = [
{
ParameterKey: 'GithubToken',
EnvironmentVariable: 'GITHUB_TOKEN',
ParameterValue: CloudRunnerState.buildParams.githubToken,
},
{
ParameterKey: 'branch',
EnvironmentVariable: 'branch',
ParameterValue: CloudRunnerState.branchName,
},
{
ParameterKey: 'buildPathFull',
EnvironmentVariable: 'buildPathFull',
ParameterValue: CloudRunnerState.buildPathFull,
},
{
ParameterKey: 'projectPathFull',
EnvironmentVariable: 'projectPathFull',
ParameterValue: CloudRunnerState.projectPathFull,
},
{
ParameterKey: 'libraryFolderFull',
EnvironmentVariable: 'libraryFolderFull',
ParameterValue: CloudRunnerState.libraryFolderFull,
},
{
ParameterKey: 'builderPathFull',
EnvironmentVariable: 'builderPathFull',
ParameterValue: CloudRunnerState.builderPathFull,
},
{
ParameterKey: 'repoPathFull',
EnvironmentVariable: 'repoPathFull',
ParameterValue: CloudRunnerState.repoPathFull,
},
{
ParameterKey: 'steamPathFull',
EnvironmentVariable: 'steamPathFull',
ParameterValue: CloudRunnerState.steamPathFull,
},
];
CloudRunnerState.defaultSecrets.push(
...ImageEnvironmentFactory.getEnvironmentVariables(CloudRunnerState.buildParams).map((x) => {
return {
ParameterKey: x.name,
EnvironmentVariable: x.name,
ParameterValue: x.value,
};
}),
);
}
}