Cleanup setup of default secrets

pull/353/head
Frostebite 2022-04-04 20:21:37 +01:00
parent 5327094620
commit 0bf23325a5
7 changed files with 47 additions and 62 deletions

45
dist/index.js vendored
View File

@ -1816,9 +1816,10 @@ class CloudRunner {
cloud_runner_logger_1.default.setup(); cloud_runner_logger_1.default.setup();
CloudRunner.buildParameters = buildParameters; CloudRunner.buildParameters = buildParameters;
CloudRunner.setupBuildPlatform(); CloudRunner.setupBuildPlatform();
const parameters = task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(); CloudRunner.defaultSecrets = task_parameter_serializer_1.TaskParameterSerializer.readDefaultSecrets();
CloudRunner.cloudRunnerEnvironmentVariables = task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables();
if (!buildParameters.cliMode) { if (!buildParameters.cliMode) {
for (const element of parameters) { for (const element of CloudRunner.cloudRunnerEnvironmentVariables) {
core.setOutput(element.name, element.value); core.setOutput(element.name, element.value);
} }
} }
@ -1845,7 +1846,7 @@ class CloudRunner {
yield CloudRunner.CloudRunnerProviderPlatform.setupSharedResources(CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters, CloudRunner.buildParameters.branch, CloudRunner.defaultSecrets); yield CloudRunner.CloudRunnerProviderPlatform.setupSharedResources(CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters, CloudRunner.buildParameters.branch, CloudRunner.defaultSecrets);
if (!CloudRunner.buildParameters.cliMode) if (!CloudRunner.buildParameters.cliMode)
core.endGroup(); core.endGroup();
const output = yield new workflow_composition_root_1.WorkflowCompositionRoot().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), CloudRunner.defaultSecrets)); const output = yield new workflow_composition_root_1.WorkflowCompositionRoot().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, CloudRunner.cloudRunnerEnvironmentVariables, CloudRunner.defaultSecrets));
if (!CloudRunner.buildParameters.cliMode) if (!CloudRunner.buildParameters.cliMode)
core.startGroup('Cleanup'); core.startGroup('Cleanup');
yield CloudRunner.CloudRunnerProviderPlatform.cleanupSharedResources(CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters, CloudRunner.buildParameters.branch, CloudRunner.defaultSecrets); yield CloudRunner.CloudRunnerProviderPlatform.cleanupSharedResources(CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters, CloudRunner.buildParameters.branch, CloudRunner.defaultSecrets);
@ -2925,7 +2926,6 @@ const image_environment_factory_1 = __importDefault(__nccwpck_require__(25145));
const cloud_runner_build_command_process_1 = __nccwpck_require__(71899); const cloud_runner_build_command_process_1 = __nccwpck_require__(71899);
class TaskParameterSerializer { class TaskParameterSerializer {
static readBuildEnvironmentVariables() { static readBuildEnvironmentVariables() {
TaskParameterSerializer.setupDefaultSecrets();
return [ return [
{ {
name: 'ContainerMemory', name: 'ContainerMemory',
@ -2983,21 +2983,19 @@ class TaskParameterSerializer {
} }
return array; return array;
} }
static setupDefaultSecrets() { static readDefaultSecrets() {
if (__1.CloudRunner.defaultSecrets === undefined) { const array = new Array();
const array = new Array(); TaskParameterSerializer.tryAddInput(array, 'UNITY_SERIAL');
TaskParameterSerializer.tryAddInput(array, 'UNITY_SERIAL'); TaskParameterSerializer.tryAddInput(array, 'UNITY_EMAIL');
TaskParameterSerializer.tryAddInput(array, 'UNITY_EMAIL'); TaskParameterSerializer.tryAddInput(array, 'UNITY_PASSWORD');
TaskParameterSerializer.tryAddInput(array, 'UNITY_PASSWORD'); array.push(...image_environment_factory_1.default.getEnvironmentVariables(__1.CloudRunner.buildParameters).map((x) => {
array.push(...image_environment_factory_1.default.getEnvironmentVariables(__1.CloudRunner.buildParameters).map((x) => { return {
return { ParameterKey: x.name,
ParameterKey: x.name, EnvironmentVariable: x.name,
EnvironmentVariable: x.name, ParameterValue: x.value,
ParameterValue: x.value, };
}; }));
})); return array;
__1.CloudRunner.defaultSecrets = array;
}
} }
static getValue(key) { static getValue(key) {
return __1.Input.queryOverrides !== null && __1.Input.queryOverrides[key] !== undefined return __1.Input.queryOverrides !== null && __1.Input.queryOverrides[key] !== undefined
@ -3059,7 +3057,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.BuildAutomationWorkflow = void 0; exports.BuildAutomationWorkflow = void 0;
const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
const task_parameter_serializer_1 = __nccwpck_require__(35346);
const cloud_runner_folders_1 = __nccwpck_require__(13527); const cloud_runner_folders_1 = __nccwpck_require__(13527);
const custom_workflow_1 = __nccwpck_require__(3786); const custom_workflow_1 = __nccwpck_require__(3786);
const core = __importStar(__nccwpck_require__(42186)); const core = __importStar(__nccwpck_require__(42186));
@ -3105,7 +3102,7 @@ class BuildAutomationWorkflow {
cloud_runner_logger_1.default.log(baseImage.toString()); cloud_runner_logger_1.default.log(baseImage.toString());
cloud_runner_logger_1.default.logLine(` `); cloud_runner_logger_1.default.logLine(` `);
cloud_runner_logger_1.default.logLine('Starting build automation job'); cloud_runner_logger_1.default.logLine('Starting build automation job');
output += yield cloud_runner_1.default.CloudRunnerProviderPlatform.runTask(cloud_runner_1.default.buildParameters.buildGuid, baseImage.toString(), BuildAutomationWorkflow.FullWorkflow, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}`, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}/`, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_1.default.defaultSecrets); output += yield cloud_runner_1.default.CloudRunnerProviderPlatform.runTask(cloud_runner_1.default.buildParameters.buildGuid, baseImage.toString(), BuildAutomationWorkflow.FullWorkflow, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}`, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}/`, cloud_runner_1.default.cloudRunnerEnvironmentVariables, cloud_runner_1.default.defaultSecrets);
if (!cloud_runner_1.default.buildParameters.cliMode) if (!cloud_runner_1.default.buildParameters.cliMode)
core.endGroup(); core.endGroup();
cloud_runner_logger_1.default.logWithTime('Build time'); cloud_runner_logger_1.default.logWithTime('Build time');
@ -3208,7 +3205,6 @@ const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
const cloud_runner_folders_1 = __nccwpck_require__(13527); const cloud_runner_folders_1 = __nccwpck_require__(13527);
const yaml_1 = __importDefault(__nccwpck_require__(44603)); const yaml_1 = __importDefault(__nccwpck_require__(44603));
const __1 = __nccwpck_require__(41359); const __1 = __nccwpck_require__(41359);
const task_parameter_serializer_1 = __nccwpck_require__(35346);
class CustomWorkflow { class CustomWorkflow {
static runCustomJob(buildSteps) { static runCustomJob(buildSteps) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
@ -3229,7 +3225,7 @@ class CustomWorkflow {
}; };
return secret; return secret;
}); });
output += yield __1.CloudRunner.CloudRunnerProviderPlatform.runTask(__1.CloudRunner.buildParameters.buildGuid, step['image'], step['commands'], `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}`, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}/`, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), [...__1.CloudRunner.defaultSecrets, ...stepSecrets]); output += yield __1.CloudRunner.CloudRunnerProviderPlatform.runTask(__1.CloudRunner.buildParameters.buildGuid, step['image'], step['commands'], `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}`, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}/`, __1.CloudRunner.cloudRunnerEnvironmentVariables, [...__1.CloudRunner.defaultSecrets, ...stepSecrets]);
} }
return output; return output;
} }
@ -3271,7 +3267,6 @@ exports.WorkflowCompositionRoot = void 0;
const cloud_runner_step_state_1 = __nccwpck_require__(50121); const cloud_runner_step_state_1 = __nccwpck_require__(50121);
const custom_workflow_1 = __nccwpck_require__(3786); const custom_workflow_1 = __nccwpck_require__(3786);
const build_automation_workflow_1 = __nccwpck_require__(94655); const build_automation_workflow_1 = __nccwpck_require__(94655);
const task_parameter_serializer_1 = __nccwpck_require__(35346);
const cloud_runner_1 = __importDefault(__nccwpck_require__(79144)); const cloud_runner_1 = __importDefault(__nccwpck_require__(79144));
class WorkflowCompositionRoot { class WorkflowCompositionRoot {
run(cloudRunnerStepState) { run(cloudRunnerStepState) {
@ -3290,7 +3285,7 @@ class WorkflowCompositionRoot {
if (cloud_runner_1.default.buildParameters.customJob !== '') { if (cloud_runner_1.default.buildParameters.customJob !== '') {
return yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_1.default.buildParameters.customJob); return yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_1.default.buildParameters.customJob);
} }
return yield new build_automation_workflow_1.BuildAutomationWorkflow().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_1.default.defaultSecrets)); return yield new build_automation_workflow_1.BuildAutomationWorkflow().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, cloud_runner_1.default.cloudRunnerEnvironmentVariables, cloud_runner_1.default.defaultSecrets));
} }
catch (error) { catch (error) {
throw error; throw error;

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -9,18 +9,21 @@ import { TaskParameterSerializer } from './services/task-parameter-serializer';
import * as core from '@actions/core'; import * as core from '@actions/core';
import CloudRunnerSecret from './services/cloud-runner-secret'; import CloudRunnerSecret from './services/cloud-runner-secret';
import { CloudRunnerProviderInterface } from './services/cloud-runner-provider-interface'; import { CloudRunnerProviderInterface } from './services/cloud-runner-provider-interface';
import CloudRunnerEnvironmentVariable from './services/cloud-runner-environment-variable';
class CloudRunner { class CloudRunner {
public static CloudRunnerProviderPlatform: CloudRunnerProviderInterface; public static CloudRunnerProviderPlatform: CloudRunnerProviderInterface;
static buildParameters: BuildParameters; static buildParameters: BuildParameters;
public static defaultSecrets: CloudRunnerSecret[]; public static defaultSecrets: CloudRunnerSecret[];
public static cloudRunnerEnvironmentVariables: CloudRunnerEnvironmentVariable[];
private static setup(buildParameters: BuildParameters) { private static setup(buildParameters: BuildParameters) {
CloudRunnerLogger.setup(); CloudRunnerLogger.setup();
CloudRunner.buildParameters = buildParameters; CloudRunner.buildParameters = buildParameters;
CloudRunner.setupBuildPlatform(); CloudRunner.setupBuildPlatform();
const parameters = TaskParameterSerializer.readBuildEnvironmentVariables(); CloudRunner.defaultSecrets = TaskParameterSerializer.readDefaultSecrets();
CloudRunner.cloudRunnerEnvironmentVariables = TaskParameterSerializer.readBuildEnvironmentVariables();
if (!buildParameters.cliMode) { if (!buildParameters.cliMode) {
for (const element of parameters) { for (const element of CloudRunner.cloudRunnerEnvironmentVariables) {
core.setOutput(element.name, element.value); core.setOutput(element.name, element.value);
} }
} }
@ -52,11 +55,7 @@ class CloudRunner {
); );
if (!CloudRunner.buildParameters.cliMode) core.endGroup(); if (!CloudRunner.buildParameters.cliMode) core.endGroup();
const output = await new WorkflowCompositionRoot().run( const output = await new WorkflowCompositionRoot().run(
new CloudRunnerStepState( new CloudRunnerStepState(baseImage, CloudRunner.cloudRunnerEnvironmentVariables, CloudRunner.defaultSecrets),
baseImage,
TaskParameterSerializer.readBuildEnvironmentVariables(),
CloudRunner.defaultSecrets,
),
); );
if (!CloudRunner.buildParameters.cliMode) core.startGroup('Cleanup'); if (!CloudRunner.buildParameters.cliMode) core.startGroup('Cleanup');
await CloudRunner.CloudRunnerProviderPlatform.cleanupSharedResources( await CloudRunner.CloudRunnerProviderPlatform.cleanupSharedResources(

View File

@ -2,10 +2,10 @@ import { CloudRunner, Input } from '../..';
import ImageEnvironmentFactory from '../../image-environment-factory'; import ImageEnvironmentFactory from '../../image-environment-factory';
import CloudRunnerEnvironmentVariable from './cloud-runner-environment-variable'; import CloudRunnerEnvironmentVariable from './cloud-runner-environment-variable';
import { CloudRunnerBuildCommandProcessor } from './cloud-runner-build-command-process'; import { CloudRunnerBuildCommandProcessor } from './cloud-runner-build-command-process';
import CloudRunnerSecret from './cloud-runner-secret';
export class TaskParameterSerializer { export class TaskParameterSerializer {
public static readBuildEnvironmentVariables(): CloudRunnerEnvironmentVariable[] { public static readBuildEnvironmentVariables(): CloudRunnerEnvironmentVariable[] {
TaskParameterSerializer.setupDefaultSecrets();
return [ return [
{ {
name: 'ContainerMemory', name: 'ContainerMemory',
@ -69,30 +69,28 @@ export class TaskParameterSerializer {
return array; return array;
} }
private static setupDefaultSecrets() { public static readDefaultSecrets(): CloudRunnerSecret[] {
if (CloudRunner.defaultSecrets === undefined) { const array = new Array();
const array = new Array(); TaskParameterSerializer.tryAddInput(array, 'UNITY_SERIAL');
TaskParameterSerializer.tryAddInput(array, 'UNITY_SERIAL'); TaskParameterSerializer.tryAddInput(array, 'UNITY_EMAIL');
TaskParameterSerializer.tryAddInput(array, 'UNITY_EMAIL'); TaskParameterSerializer.tryAddInput(array, 'UNITY_PASSWORD');
TaskParameterSerializer.tryAddInput(array, 'UNITY_PASSWORD'); array.push(
array.push( ...ImageEnvironmentFactory.getEnvironmentVariables(CloudRunner.buildParameters).map((x) => {
...ImageEnvironmentFactory.getEnvironmentVariables(CloudRunner.buildParameters).map((x) => { return {
return { ParameterKey: x.name,
ParameterKey: x.name, EnvironmentVariable: x.name,
EnvironmentVariable: x.name, ParameterValue: x.value,
ParameterValue: x.value, };
}; }),
}), );
); return array;
CloudRunner.defaultSecrets = array;
}
} }
private static getValue(key) { private static getValue(key) {
return Input.queryOverrides !== null && Input.queryOverrides[key] !== undefined return Input.queryOverrides !== null && Input.queryOverrides[key] !== undefined
? Input.queryOverrides[key] ? Input.queryOverrides[key]
: process.env[key]; : process.env[key];
} }
private static tryAddInput(array, key) { private static tryAddInput(array, key): CloudRunnerSecret[] {
if (TaskParameterSerializer.getValue(key) !== undefined) { if (TaskParameterSerializer.getValue(key) !== undefined) {
array.push({ array.push({
ParameterKey: key, ParameterKey: key,

View File

@ -1,5 +1,4 @@
import CloudRunnerLogger from '../services/cloud-runner-logger'; import CloudRunnerLogger from '../services/cloud-runner-logger';
import { TaskParameterSerializer } from '../services/task-parameter-serializer';
import { CloudRunnerFolders } from '../services/cloud-runner-folders'; import { CloudRunnerFolders } from '../services/cloud-runner-folders';
import { CloudRunnerStepState } from '../cloud-runner-step-state'; import { CloudRunnerStepState } from '../cloud-runner-step-state';
import { CustomWorkflow } from './custom-workflow'; import { CustomWorkflow } from './custom-workflow';
@ -52,7 +51,7 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
BuildAutomationWorkflow.FullWorkflow, BuildAutomationWorkflow.FullWorkflow,
`/${CloudRunnerFolders.buildVolumeFolder}`, `/${CloudRunnerFolders.buildVolumeFolder}`,
`/${CloudRunnerFolders.buildVolumeFolder}/`, `/${CloudRunnerFolders.buildVolumeFolder}/`,
TaskParameterSerializer.readBuildEnvironmentVariables(), CloudRunner.cloudRunnerEnvironmentVariables,
CloudRunner.defaultSecrets, CloudRunner.defaultSecrets,
); );
if (!CloudRunner.buildParameters.cliMode) core.endGroup(); if (!CloudRunner.buildParameters.cliMode) core.endGroup();

View File

@ -3,7 +3,6 @@ import CloudRunnerSecret from '../services/cloud-runner-secret';
import { CloudRunnerFolders } from '../services/cloud-runner-folders'; import { CloudRunnerFolders } from '../services/cloud-runner-folders';
import YAML from 'yaml'; import YAML from 'yaml';
import { CloudRunner, Input } from '../..'; import { CloudRunner, Input } from '../..';
import { TaskParameterSerializer } from '../services/task-parameter-serializer';
export class CustomWorkflow { export class CustomWorkflow {
public static async runCustomJob(buildSteps) { public static async runCustomJob(buildSteps) {
@ -30,7 +29,7 @@ export class CustomWorkflow {
step['commands'], step['commands'],
`/${CloudRunnerFolders.buildVolumeFolder}`, `/${CloudRunnerFolders.buildVolumeFolder}`,
`/${CloudRunnerFolders.buildVolumeFolder}/`, `/${CloudRunnerFolders.buildVolumeFolder}/`,
TaskParameterSerializer.readBuildEnvironmentVariables(), CloudRunner.cloudRunnerEnvironmentVariables,
[...CloudRunner.defaultSecrets, ...stepSecrets], [...CloudRunner.defaultSecrets, ...stepSecrets],
); );
} }

View File

@ -2,7 +2,6 @@ import { CloudRunnerStepState } from '../cloud-runner-step-state';
import { CustomWorkflow } from './custom-workflow'; import { CustomWorkflow } from './custom-workflow';
import { WorkflowInterface } from './workflow-interface'; import { WorkflowInterface } from './workflow-interface';
import { BuildAutomationWorkflow } from './build-automation-workflow'; import { BuildAutomationWorkflow } from './build-automation-workflow';
import { TaskParameterSerializer } from '../services/task-parameter-serializer';
import CloudRunner from '../cloud-runner'; import CloudRunner from '../cloud-runner';
export class WorkflowCompositionRoot implements WorkflowInterface { export class WorkflowCompositionRoot implements WorkflowInterface {
@ -20,11 +19,7 @@ export class WorkflowCompositionRoot implements WorkflowInterface {
return await CustomWorkflow.runCustomJob(CloudRunner.buildParameters.customJob); return await CustomWorkflow.runCustomJob(CloudRunner.buildParameters.customJob);
} }
return await new BuildAutomationWorkflow().run( return await new BuildAutomationWorkflow().run(
new CloudRunnerStepState( new CloudRunnerStepState(baseImage, CloudRunner.cloudRunnerEnvironmentVariables, CloudRunner.defaultSecrets),
baseImage,
TaskParameterSerializer.readBuildEnvironmentVariables(),
CloudRunner.defaultSecrets,
),
); );
} catch (error) { } catch (error) {
throw error; throw error;