Serialize all input and buildparams
parent
cc8895d935
commit
568b5b216b
|
|
@ -482,129 +482,6 @@ class AWSBaseStack {
|
|||
exports.AWSBaseStack = AWSBaseStack;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 81683:
|
||||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
const SDK = __importStar(__webpack_require__(71786));
|
||||
const aws_build_runner_1 = __importDefault(__webpack_require__(29102));
|
||||
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
||||
const aws_job_stack_1 = __webpack_require__(85819);
|
||||
const aws_base_stack_1 = __webpack_require__(28730);
|
||||
const __1 = __webpack_require__(41359);
|
||||
class AWSBuildEnvironment {
|
||||
constructor(buildParameters) {
|
||||
this.baseStackName = buildParameters.awsBaseStackName;
|
||||
}
|
||||
cleanupSharedBuildResources(
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
buildGuid,
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
buildParameters,
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
branchName,
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
defaultSecretsArray) {
|
||||
return __awaiter(this, void 0, void 0, function* () { });
|
||||
}
|
||||
setupSharedBuildResources(
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
buildGuid,
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
buildParameters,
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
branchName,
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
defaultSecretsArray) {
|
||||
return __awaiter(this, void 0, void 0, function* () { });
|
||||
}
|
||||
runBuildTask(buildId, image, commands, mountdir, workingdir, environment, secrets) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
process.env.AWS_REGION = __1.Input.region;
|
||||
const ECS = new SDK.ECS();
|
||||
const CF = new SDK.CloudFormation();
|
||||
cloud_runner_logger_1.default.log(`AWS Region: ${CF.config.region}`);
|
||||
const entrypoint = ['/bin/sh'];
|
||||
const t0 = Date.now();
|
||||
yield new aws_base_stack_1.AWSBaseStack(this.baseStackName).setupBaseStack(CF);
|
||||
const taskDef = yield new aws_job_stack_1.AWSJobStack(this.baseStackName).setupCloudFormations(CF, buildId, image, entrypoint, commands, mountdir, workingdir, secrets);
|
||||
let t2;
|
||||
try {
|
||||
const t1 = Date.now();
|
||||
cloud_runner_logger_1.default.log(`Setup job time: ${Math.floor((t1 - t0) / 1000)}s`);
|
||||
yield aws_build_runner_1.default.runTask(taskDef, ECS, CF, environment, buildId, commands);
|
||||
t2 = Date.now();
|
||||
cloud_runner_logger_1.default.log(`Run job time: ${Math.floor((t2 - t1) / 1000)}s`);
|
||||
}
|
||||
finally {
|
||||
yield this.cleanupResources(CF, taskDef);
|
||||
const t3 = Date.now();
|
||||
if (t2 !== undefined)
|
||||
cloud_runner_logger_1.default.log(`Cleanup job time: ${Math.floor((t3 - t2) / 1000)}s`);
|
||||
}
|
||||
});
|
||||
}
|
||||
cleanupResources(CF, taskDef) {
|
||||
var _a;
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
cloud_runner_logger_1.default.log('Cleanup starting');
|
||||
yield CF.deleteStack({
|
||||
StackName: taskDef.taskDefStackName,
|
||||
}).promise();
|
||||
yield CF.deleteStack({
|
||||
StackName: taskDef.taskDefStackNameTTL,
|
||||
}).promise();
|
||||
yield CF.waitFor('stackDeleteComplete', {
|
||||
StackName: taskDef.taskDefStackName,
|
||||
}).promise();
|
||||
yield CF.waitFor('stackDeleteComplete', {
|
||||
StackName: taskDef.taskDefStackNameTTL,
|
||||
}).promise();
|
||||
const stacks = (_a = (yield CF.listStacks().promise()).StackSummaries) === null || _a === void 0 ? void 0 : _a.filter((x) => x.StackStatus !== 'DELETE_COMPLETE');
|
||||
cloud_runner_logger_1.default.log(`Deleted Stacks: ${taskDef.taskDefStackName}, ${taskDef.taskDefStackNameTTL}`);
|
||||
cloud_runner_logger_1.default.log(`Stacks: ${JSON.stringify(stacks, undefined, 4)}`);
|
||||
cloud_runner_logger_1.default.log('Cleanup complete');
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.default = AWSBuildEnvironment;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 29102:
|
||||
|
|
@ -859,17 +736,17 @@ exports.AWSError = void 0;
|
|||
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
||||
const core = __importStar(__webpack_require__(42186));
|
||||
class AWSError {
|
||||
static handleStackCreationFailure(error, CF, taskDefStackName, taskDefCloudFormation, parameters, secrets) {
|
||||
static handleStackCreationFailure(error, CF, taskDefStackName) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
cloud_runner_logger_1.default.log(' \n ');
|
||||
cloud_runner_logger_1.default.log('aws stack parameters: ');
|
||||
cloud_runner_logger_1.default.log(JSON.stringify(parameters, undefined, 4));
|
||||
cloud_runner_logger_1.default.log('aws stack secrets: ');
|
||||
cloud_runner_logger_1.default.log(JSON.stringify(secrets, undefined, 4));
|
||||
cloud_runner_logger_1.default.log('aws stack: ');
|
||||
cloud_runner_logger_1.default.log(taskDefCloudFormation);
|
||||
//CloudRunnerLogger.log('aws stack parameters: ');
|
||||
//CloudRunnerLogger.log(JSON.stringify(parameters, undefined, 4));
|
||||
//CloudRunnerLogger.log('aws stack secrets: ');
|
||||
//CloudRunnerLogger.log(JSON.stringify(secrets, undefined, 4));
|
||||
//CloudRunnerLogger.log('aws stack: ');
|
||||
//CloudRunnerLogger.log(taskDefCloudFormation);
|
||||
cloud_runner_logger_1.default.log('aws error: ');
|
||||
core.error(error);
|
||||
core.error(JSON.stringify(error, undefined, 4));
|
||||
cloud_runner_logger_1.default.log('Getting events and resources for task stack');
|
||||
const events = (yield CF.describeStackEvents({ StackName: taskDefStackName }).promise()).StackEvents;
|
||||
const resources = (yield CF.describeStackResources({ StackName: taskDefStackName }).promise()).StackResources;
|
||||
|
|
@ -1044,7 +921,7 @@ class AWSJobStack {
|
|||
yield CF.waitFor('stackCreateComplete', { StackName: taskDefStackName }).promise();
|
||||
}
|
||||
catch (error) {
|
||||
yield aws_error_1.AWSError.handleStackCreationFailure(error, CF, taskDefStackName, taskDefCloudFormation, parameters, secrets);
|
||||
yield aws_error_1.AWSError.handleStackCreationFailure(error, CF, taskDefStackName);
|
||||
throw error;
|
||||
}
|
||||
const taskDefResources = (yield CF.describeStackResources({
|
||||
|
|
@ -1131,6 +1008,129 @@ class AWSTemplates {
|
|||
exports.AWSTemplates = AWSTemplates;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 37569:
|
||||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
const SDK = __importStar(__webpack_require__(71786));
|
||||
const aws_build_runner_1 = __importDefault(__webpack_require__(29102));
|
||||
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
||||
const aws_job_stack_1 = __webpack_require__(85819);
|
||||
const aws_base_stack_1 = __webpack_require__(28730);
|
||||
const __1 = __webpack_require__(41359);
|
||||
class AWSBuildEnvironment {
|
||||
constructor(buildParameters) {
|
||||
this.baseStackName = buildParameters.awsBaseStackName;
|
||||
}
|
||||
cleanupSharedBuildResources(
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
buildGuid,
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
buildParameters,
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
branchName,
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
defaultSecretsArray) {
|
||||
return __awaiter(this, void 0, void 0, function* () { });
|
||||
}
|
||||
setupSharedBuildResources(
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
buildGuid,
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
buildParameters,
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
branchName,
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
defaultSecretsArray) {
|
||||
return __awaiter(this, void 0, void 0, function* () { });
|
||||
}
|
||||
runBuildTask(buildId, image, commands, mountdir, workingdir, environment, secrets) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
process.env.AWS_REGION = __1.Input.region;
|
||||
const ECS = new SDK.ECS();
|
||||
const CF = new SDK.CloudFormation();
|
||||
cloud_runner_logger_1.default.log(`AWS Region: ${CF.config.region}`);
|
||||
const entrypoint = ['/bin/sh'];
|
||||
const t0 = Date.now();
|
||||
yield new aws_base_stack_1.AWSBaseStack(this.baseStackName).setupBaseStack(CF);
|
||||
const taskDef = yield new aws_job_stack_1.AWSJobStack(this.baseStackName).setupCloudFormations(CF, buildId, image, entrypoint, commands, mountdir, workingdir, secrets);
|
||||
let t2;
|
||||
try {
|
||||
const t1 = Date.now();
|
||||
cloud_runner_logger_1.default.log(`Setup job time: ${Math.floor((t1 - t0) / 1000)}s`);
|
||||
yield aws_build_runner_1.default.runTask(taskDef, ECS, CF, environment, buildId, commands);
|
||||
t2 = Date.now();
|
||||
cloud_runner_logger_1.default.log(`Run job time: ${Math.floor((t2 - t1) / 1000)}s`);
|
||||
}
|
||||
finally {
|
||||
yield this.cleanupResources(CF, taskDef);
|
||||
const t3 = Date.now();
|
||||
if (t2 !== undefined)
|
||||
cloud_runner_logger_1.default.log(`Cleanup job time: ${Math.floor((t3 - t2) / 1000)}s`);
|
||||
}
|
||||
});
|
||||
}
|
||||
cleanupResources(CF, taskDef) {
|
||||
var _a;
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
cloud_runner_logger_1.default.log('Cleanup starting');
|
||||
yield CF.deleteStack({
|
||||
StackName: taskDef.taskDefStackName,
|
||||
}).promise();
|
||||
yield CF.deleteStack({
|
||||
StackName: taskDef.taskDefStackNameTTL,
|
||||
}).promise();
|
||||
yield CF.waitFor('stackDeleteComplete', {
|
||||
StackName: taskDef.taskDefStackName,
|
||||
}).promise();
|
||||
yield CF.waitFor('stackDeleteComplete', {
|
||||
StackName: taskDef.taskDefStackNameTTL,
|
||||
}).promise();
|
||||
const stacks = (_a = (yield CF.listStacks().promise()).StackSummaries) === null || _a === void 0 ? void 0 : _a.filter((x) => x.StackStatus !== 'DELETE_COMPLETE');
|
||||
cloud_runner_logger_1.default.log(`Deleted Stacks: ${taskDef.taskDefStackName}, ${taskDef.taskDefStackNameTTL}`);
|
||||
cloud_runner_logger_1.default.log(`Stacks: ${JSON.stringify(stacks, undefined, 4)}`);
|
||||
cloud_runner_logger_1.default.log('Cleanup complete');
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.default = AWSBuildEnvironment;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 79144:
|
||||
|
|
@ -1151,9 +1151,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
const aws_build_platform_1 = __importDefault(__webpack_require__(81683));
|
||||
const aws_1 = __importDefault(__webpack_require__(37569));
|
||||
const cloud_runner_state_1 = __webpack_require__(70912);
|
||||
const kubernetes_build_platform_1 = __importDefault(__webpack_require__(10471));
|
||||
const k8s_1 = __importDefault(__webpack_require__(25107));
|
||||
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
||||
const cloud_runner_step_state_1 = __webpack_require__(64854);
|
||||
const workflow_composition_root_1 = __webpack_require__(54204);
|
||||
|
|
@ -1168,12 +1168,12 @@ class CloudRunner {
|
|||
switch (cloud_runner_state_1.CloudRunnerState.buildParams.cloudRunnerCluster) {
|
||||
case 'k8s':
|
||||
cloud_runner_logger_1.default.log('Building with Kubernetes');
|
||||
cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform = new kubernetes_build_platform_1.default(cloud_runner_state_1.CloudRunnerState.buildParams);
|
||||
cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform = new k8s_1.default(cloud_runner_state_1.CloudRunnerState.buildParams);
|
||||
break;
|
||||
default:
|
||||
case 'aws':
|
||||
cloud_runner_logger_1.default.log('Building with AWS');
|
||||
cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform = new aws_build_platform_1.default(cloud_runner_state_1.CloudRunnerState.buildParams);
|
||||
cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform = new aws_1.default(cloud_runner_state_1.CloudRunnerState.buildParams);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1252,7 +1252,7 @@ exports.CloudRunnerError = CloudRunnerError;
|
|||
|
||||
/***/ }),
|
||||
|
||||
/***/ 10471:
|
||||
/***/ 25107:
|
||||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,4 @@
|
|||
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||
import * as SDK from 'aws-sdk';
|
||||
import * as core from '@actions/core';
|
||||
|
||||
|
|
@ -8,22 +7,22 @@ export class AWSError {
|
|||
error: any,
|
||||
CF: SDK.CloudFormation,
|
||||
taskDefStackName: string,
|
||||
taskDefCloudFormation: string,
|
||||
parameters: any[],
|
||||
secrets: CloudRunnerSecret[],
|
||||
//taskDefCloudFormation: string,
|
||||
//parameters: any[],
|
||||
//secrets: CloudRunnerSecret[],
|
||||
) {
|
||||
CloudRunnerLogger.log(' \n ');
|
||||
CloudRunnerLogger.log('aws stack parameters: ');
|
||||
CloudRunnerLogger.log(JSON.stringify(parameters, undefined, 4));
|
||||
//CloudRunnerLogger.log('aws stack parameters: ');
|
||||
//CloudRunnerLogger.log(JSON.stringify(parameters, undefined, 4));
|
||||
|
||||
CloudRunnerLogger.log('aws stack secrets: ');
|
||||
CloudRunnerLogger.log(JSON.stringify(secrets, undefined, 4));
|
||||
//CloudRunnerLogger.log('aws stack secrets: ');
|
||||
//CloudRunnerLogger.log(JSON.stringify(secrets, undefined, 4));
|
||||
|
||||
CloudRunnerLogger.log('aws stack: ');
|
||||
CloudRunnerLogger.log(taskDefCloudFormation);
|
||||
//CloudRunnerLogger.log('aws stack: ');
|
||||
//CloudRunnerLogger.log(taskDefCloudFormation);
|
||||
|
||||
CloudRunnerLogger.log('aws error: ');
|
||||
core.error(error);
|
||||
core.error(JSON.stringify(error, undefined, 4));
|
||||
CloudRunnerLogger.log('Getting events and resources for task stack');
|
||||
const events = (await CF.describeStackEvents({ StackName: taskDefStackName }).promise()).StackEvents;
|
||||
const resources = (await CF.describeStackResources({ StackName: taskDefStackName }).promise()).StackResources;
|
||||
|
|
|
|||
|
|
@ -156,9 +156,9 @@ export class AWSJobStack {
|
|||
error,
|
||||
CF,
|
||||
taskDefStackName,
|
||||
taskDefCloudFormation,
|
||||
parameters,
|
||||
secrets,
|
||||
//taskDefCloudFormation,
|
||||
//parameters,
|
||||
//secrets,
|
||||
);
|
||||
throw error;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import AWSBuildPlatform from './aws/aws-build-platform';
|
||||
import AWSBuildPlatform from './aws';
|
||||
import { BuildParameters } from '..';
|
||||
import { CloudRunnerState } from './state/cloud-runner-state';
|
||||
import Kubernetes from './k8s/kubernetes-build-platform';
|
||||
import Kubernetes from './k8s';
|
||||
import CloudRunnerLogger from './services/cloud-runner-logger';
|
||||
import { CloudRunnerStepState } from './state/cloud-runner-step-state';
|
||||
import { WorkflowCompositionRoot } from './workflows/workflow-composition-root';
|
||||
|
|
|
|||
Loading…
Reference in New Issue