Update garbage collection interface to support olderThan, fullCache, baseDependencies
parent
086194999e
commit
1b3e995bc4
|
|
@ -959,13 +959,13 @@ class CloudRunner {
|
||||||
}
|
}
|
||||||
if (!CloudRunner.buildParameters.isCliMode)
|
if (!CloudRunner.buildParameters.isCliMode)
|
||||||
core.startGroup('Setup shared cloud runner resources');
|
core.startGroup('Setup shared cloud runner resources');
|
||||||
yield CloudRunner.Provider.setup(CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters, CloudRunner.buildParameters.branch, CloudRunner.defaultSecrets);
|
yield CloudRunner.Provider.setupWorkflow(CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters, CloudRunner.buildParameters.branch, CloudRunner.defaultSecrets);
|
||||||
if (!CloudRunner.buildParameters.isCliMode)
|
if (!CloudRunner.buildParameters.isCliMode)
|
||||||
core.endGroup();
|
core.endGroup();
|
||||||
const output = yield new workflow_composition_root_1.WorkflowCompositionRoot().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, CloudRunner.cloudRunnerEnvironmentVariables, 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.isCliMode)
|
if (!CloudRunner.buildParameters.isCliMode)
|
||||||
core.startGroup('Cleanup shared cloud runner resources');
|
core.startGroup('Cleanup shared cloud runner resources');
|
||||||
yield CloudRunner.Provider.cleanup(CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters, CloudRunner.buildParameters.branch, CloudRunner.defaultSecrets);
|
yield CloudRunner.Provider.cleanupWorkflow(CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters, CloudRunner.buildParameters.branch, CloudRunner.defaultSecrets);
|
||||||
cloud_runner_logger_1.default.log(`Cleanup complete`);
|
cloud_runner_logger_1.default.log(`Cleanup complete`);
|
||||||
if (!CloudRunner.buildParameters.isCliMode)
|
if (!CloudRunner.buildParameters.isCliMode)
|
||||||
core.endGroup();
|
core.endGroup();
|
||||||
|
|
@ -1036,7 +1036,7 @@ class CloudRunnerError {
|
||||||
cloud_runner_logger_1.default.error(JSON.stringify(error, undefined, 4));
|
cloud_runner_logger_1.default.error(JSON.stringify(error, undefined, 4));
|
||||||
core.setFailed('Cloud Runner failed');
|
core.setFailed('Cloud Runner failed');
|
||||||
if (cloud_runner_1.default.Provider !== undefined) {
|
if (cloud_runner_1.default.Provider !== undefined) {
|
||||||
yield cloud_runner_1.default.Provider.cleanup(buildParameters.buildGuid, buildParameters, buildParameters.branch, secrets);
|
yield cloud_runner_1.default.Provider.cleanupWorkflow(buildParameters.buildGuid, buildParameters, buildParameters.branch, secrets);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -2398,16 +2398,17 @@ const __1 = __nccwpck_require__(41359);
|
||||||
const aws_cli_commands_1 = __nccwpck_require__(34340);
|
const aws_cli_commands_1 = __nccwpck_require__(34340);
|
||||||
const tertiary_resources_service_1 = __nccwpck_require__(61627);
|
const tertiary_resources_service_1 = __nccwpck_require__(61627);
|
||||||
const task_service_1 = __nccwpck_require__(67205);
|
const task_service_1 = __nccwpck_require__(67205);
|
||||||
|
const garbage_collection_service_1 = __nccwpck_require__(53859);
|
||||||
class AWSBuildEnvironment {
|
class AWSBuildEnvironment {
|
||||||
constructor(buildParameters) {
|
constructor(buildParameters) {
|
||||||
this.baseStackName = buildParameters.awsBaseStackName;
|
this.baseStackName = buildParameters.awsBaseStackName;
|
||||||
}
|
}
|
||||||
inspect() {
|
inspectResources() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
return yield task_service_1.TaskService.awsDescribeJob('');
|
return yield task_service_1.TaskService.awsDescribeJob('');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
watch() {
|
watchWorkflow() {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
listOtherResources() {
|
listOtherResources() {
|
||||||
|
|
@ -2416,26 +2417,27 @@ class AWSBuildEnvironment {
|
||||||
return '';
|
return '';
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
garbageCollect(
|
garbageCollect(filter, previewOnly,
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
filter,
|
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
previewOnly,
|
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
olderThan,
|
olderThan,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
fullCache,
|
fullCache,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
baseDependencies) {
|
baseDependencies) {
|
||||||
throw new Error('Method not implemented.');
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
yield garbage_collection_service_1.GarbageCollectionService.cleanup(!previewOnly);
|
||||||
|
return ``;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
listResources() {
|
listResources() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
yield aws_cli_commands_1.AwsCliCommands.awsListAll();
|
yield aws_cli_commands_1.AwsCliCommands.awsListStacks();
|
||||||
|
yield aws_cli_commands_1.AwsCliCommands.awsListTasks();
|
||||||
|
yield aws_cli_commands_1.AwsCliCommands.awsListLogGroups();
|
||||||
return '';
|
return '';
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
cleanup(
|
cleanupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid,
|
buildGuid,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -2446,7 +2448,7 @@ class AWSBuildEnvironment {
|
||||||
defaultSecretsArray) {
|
defaultSecretsArray) {
|
||||||
return __awaiter(this, void 0, void 0, function* () { });
|
return __awaiter(this, void 0, void 0, function* () { });
|
||||||
}
|
}
|
||||||
setup(
|
setupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid,
|
buildGuid,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -2457,7 +2459,7 @@ class AWSBuildEnvironment {
|
||||||
defaultSecretsArray) {
|
defaultSecretsArray) {
|
||||||
return __awaiter(this, void 0, void 0, function* () { });
|
return __awaiter(this, void 0, void 0, function* () { });
|
||||||
}
|
}
|
||||||
runTask(buildGuid, image, commands, mountdir, workingdir, environment, secrets) {
|
runTaskInWorkflow(buildGuid, image, commands, mountdir, workingdir, environment, secrets) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
process.env.AWS_REGION = __1.Input.region;
|
process.env.AWS_REGION = __1.Input.region;
|
||||||
const ECS = new SDK.ECS();
|
const ECS = new SDK.ECS();
|
||||||
|
|
@ -2830,10 +2832,10 @@ const __1 = __nccwpck_require__(41359);
|
||||||
const fs_1 = __nccwpck_require__(57147);
|
const fs_1 = __nccwpck_require__(57147);
|
||||||
const cloud_runner_1 = __importDefault(__nccwpck_require__(79144));
|
const cloud_runner_1 = __importDefault(__nccwpck_require__(79144));
|
||||||
class LocalDockerCloudRunner {
|
class LocalDockerCloudRunner {
|
||||||
inspect() {
|
inspectResources() {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
watch() {
|
watchWorkflow() {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
listResources() {
|
listResources() {
|
||||||
|
|
@ -2852,7 +2854,7 @@ class LocalDockerCloudRunner {
|
||||||
baseDependencies) {
|
baseDependencies) {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
cleanup(
|
cleanupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid,
|
buildGuid,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -2861,14 +2863,14 @@ class LocalDockerCloudRunner {
|
||||||
branchName,
|
branchName,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
defaultSecretsArray) { }
|
defaultSecretsArray) { }
|
||||||
setup(buildGuid, buildParameters,
|
setupWorkflow(buildGuid, buildParameters,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
branchName,
|
branchName,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
defaultSecretsArray) {
|
defaultSecretsArray) {
|
||||||
this.buildParameters = buildParameters;
|
this.buildParameters = buildParameters;
|
||||||
}
|
}
|
||||||
runTask(buildGuid, image, commands, mountdir, workingdir, environment, secrets) {
|
runTaskInWorkflow(buildGuid, image, commands, mountdir, workingdir, environment, secrets) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
cloud_runner_logger_1.default.log(buildGuid);
|
cloud_runner_logger_1.default.log(buildGuid);
|
||||||
cloud_runner_logger_1.default.log(commands);
|
cloud_runner_logger_1.default.log(commands);
|
||||||
|
|
@ -2994,10 +2996,10 @@ class Kubernetes {
|
||||||
this.namespace = 'default';
|
this.namespace = 'default';
|
||||||
this.buildParameters = buildParameters;
|
this.buildParameters = buildParameters;
|
||||||
}
|
}
|
||||||
inspect() {
|
inspectResources() {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
watch() {
|
watchWorkflow() {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
listResources() {
|
listResources() {
|
||||||
|
|
@ -3016,7 +3018,7 @@ class Kubernetes {
|
||||||
baseDependencies) {
|
baseDependencies) {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
setup(buildGuid, buildParameters,
|
setupWorkflow(buildGuid, buildParameters,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
branchName,
|
branchName,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -3035,7 +3037,7 @@ class Kubernetes {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
runTask(buildGuid, image, commands, mountdir, workingdir, environment, secrets) {
|
runTaskInWorkflow(buildGuid, image, commands, mountdir, workingdir, environment, secrets) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
// Setup
|
// Setup
|
||||||
|
|
@ -3130,7 +3132,7 @@ class Kubernetes {
|
||||||
catch (_a) { }
|
catch (_a) { }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
cleanup(buildGuid, buildParameters,
|
cleanupWorkflow(buildGuid, buildParameters,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
branchName,
|
branchName,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -3720,10 +3722,10 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
const cloud_runner_system_1 = __nccwpck_require__(99393);
|
const cloud_runner_system_1 = __nccwpck_require__(99393);
|
||||||
const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
|
const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
|
||||||
class LocalCloudRunner {
|
class LocalCloudRunner {
|
||||||
inspect() {
|
inspectResources() {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
watch() {
|
watchWorkflow() {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
listResources() {
|
listResources() {
|
||||||
|
|
@ -3742,7 +3744,7 @@ class LocalCloudRunner {
|
||||||
baseDependencies) {
|
baseDependencies) {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
cleanup(
|
cleanupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid,
|
buildGuid,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -3751,7 +3753,7 @@ class LocalCloudRunner {
|
||||||
branchName,
|
branchName,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
defaultSecretsArray) { }
|
defaultSecretsArray) { }
|
||||||
setup(
|
setupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid,
|
buildGuid,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -3760,7 +3762,7 @@ class LocalCloudRunner {
|
||||||
branchName,
|
branchName,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
defaultSecretsArray) { }
|
defaultSecretsArray) { }
|
||||||
runTask(buildGuid, image, commands,
|
runTaskInWorkflow(buildGuid, image, commands,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
mountdir,
|
mountdir,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -3802,10 +3804,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
|
const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
|
||||||
class TestCloudRunner {
|
class TestCloudRunner {
|
||||||
inspect() {
|
inspectResources() {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
watch() {
|
watchWorkflow() {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
listResources() {
|
listResources() {
|
||||||
|
|
@ -3818,7 +3820,7 @@ class TestCloudRunner {
|
||||||
previewOnly) {
|
previewOnly) {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
cleanup(
|
cleanupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid,
|
buildGuid,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -3827,7 +3829,7 @@ class TestCloudRunner {
|
||||||
branchName,
|
branchName,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
defaultSecretsArray) { }
|
defaultSecretsArray) { }
|
||||||
setup(
|
setupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid,
|
buildGuid,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -3836,7 +3838,7 @@ class TestCloudRunner {
|
||||||
branchName,
|
branchName,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
defaultSecretsArray) { }
|
defaultSecretsArray) { }
|
||||||
runTask(commands, buildGuid, image,
|
runTaskInWorkflow(commands, buildGuid, image,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
mountdir,
|
mountdir,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -5585,7 +5587,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.Provider.runTask(cloud_runner_1.default.buildParameters.buildGuid, baseImage.toString(), BuildAutomationWorkflow.BuildWorkflow, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}`, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}/`, cloudRunnerStepState.environment, cloudRunnerStepState.secrets);
|
output += yield cloud_runner_1.default.Provider.runTaskInWorkflow(cloud_runner_1.default.buildParameters.buildGuid, baseImage.toString(), BuildAutomationWorkflow.BuildWorkflow, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}`, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}/`, cloudRunnerStepState.environment, cloudRunnerStepState.secrets);
|
||||||
if (!cloud_runner_1.default.buildParameters.isCliMode)
|
if (!cloud_runner_1.default.buildParameters.isCliMode)
|
||||||
core.endGroup();
|
core.endGroup();
|
||||||
cloud_runner_logger_1.default.logWithTime('Build time');
|
cloud_runner_logger_1.default.logWithTime('Build time');
|
||||||
|
|
@ -5696,7 +5698,7 @@ class CustomWorkflow {
|
||||||
cloud_runner_logger_1.default.log(`Custom Job Description \n${JSON.stringify(buildSteps, undefined, 4)}`);
|
cloud_runner_logger_1.default.log(`Custom Job Description \n${JSON.stringify(buildSteps, undefined, 4)}`);
|
||||||
}
|
}
|
||||||
for (const step of buildSteps) {
|
for (const step of buildSteps) {
|
||||||
output += yield cloud_runner_1.default.Provider.runTask(cloud_runner_1.default.buildParameters.buildGuid, step.image, step.commands, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}`, `/${cloud_runner_folders_1.CloudRunnerFolders.projectPathAbsolute}/`, environmentVariables, [...secrets, ...step.secrets]);
|
output += yield cloud_runner_1.default.Provider.runTaskInWorkflow(cloud_runner_1.default.buildParameters.buildGuid, step.image, step.commands, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}`, `/${cloud_runner_folders_1.CloudRunnerFolders.projectPathAbsolute}/`, environmentVariables, [...secrets, ...step.secrets]);
|
||||||
}
|
}
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -87,7 +87,7 @@ class CloudRunner {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!CloudRunner.buildParameters.isCliMode) core.startGroup('Setup shared cloud runner resources');
|
if (!CloudRunner.buildParameters.isCliMode) core.startGroup('Setup shared cloud runner resources');
|
||||||
await CloudRunner.Provider.setup(
|
await CloudRunner.Provider.setupWorkflow(
|
||||||
CloudRunner.buildParameters.buildGuid,
|
CloudRunner.buildParameters.buildGuid,
|
||||||
CloudRunner.buildParameters,
|
CloudRunner.buildParameters,
|
||||||
CloudRunner.buildParameters.branch,
|
CloudRunner.buildParameters.branch,
|
||||||
|
|
@ -98,7 +98,7 @@ class CloudRunner {
|
||||||
new CloudRunnerStepState(baseImage, CloudRunner.cloudRunnerEnvironmentVariables, CloudRunner.defaultSecrets),
|
new CloudRunnerStepState(baseImage, CloudRunner.cloudRunnerEnvironmentVariables, CloudRunner.defaultSecrets),
|
||||||
);
|
);
|
||||||
if (!CloudRunner.buildParameters.isCliMode) core.startGroup('Cleanup shared cloud runner resources');
|
if (!CloudRunner.buildParameters.isCliMode) core.startGroup('Cleanup shared cloud runner resources');
|
||||||
await CloudRunner.Provider.cleanup(
|
await CloudRunner.Provider.cleanupWorkflow(
|
||||||
CloudRunner.buildParameters.buildGuid,
|
CloudRunner.buildParameters.buildGuid,
|
||||||
CloudRunner.buildParameters,
|
CloudRunner.buildParameters,
|
||||||
CloudRunner.buildParameters.branch,
|
CloudRunner.buildParameters.branch,
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,12 @@ export class CloudRunnerError {
|
||||||
CloudRunnerLogger.error(JSON.stringify(error, undefined, 4));
|
CloudRunnerLogger.error(JSON.stringify(error, undefined, 4));
|
||||||
core.setFailed('Cloud Runner failed');
|
core.setFailed('Cloud Runner failed');
|
||||||
if (CloudRunner.Provider !== undefined) {
|
if (CloudRunner.Provider !== undefined) {
|
||||||
await CloudRunner.Provider.cleanup(buildParameters.buildGuid, buildParameters, buildParameters.branch, secrets);
|
await CloudRunner.Provider.cleanupWorkflow(
|
||||||
|
buildParameters.buildGuid,
|
||||||
|
buildParameters,
|
||||||
|
buildParameters.branch,
|
||||||
|
secrets,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import { Input } from '../../..';
|
||||||
import { AwsCliCommands } from './commands/aws-cli-commands';
|
import { AwsCliCommands } from './commands/aws-cli-commands';
|
||||||
import { TertiaryResourcesService } from './services/tertiary-resources-service';
|
import { TertiaryResourcesService } from './services/tertiary-resources-service';
|
||||||
import { TaskService } from './services/task-service';
|
import { TaskService } from './services/task-service';
|
||||||
|
import { GarbageCollectionService } from './services/garbage-collection-service';
|
||||||
|
|
||||||
class AWSBuildEnvironment implements ProviderInterface {
|
class AWSBuildEnvironment implements ProviderInterface {
|
||||||
private baseStackName: string;
|
private baseStackName: string;
|
||||||
|
|
@ -19,10 +20,10 @@ class AWSBuildEnvironment implements ProviderInterface {
|
||||||
constructor(buildParameters: BuildParameters) {
|
constructor(buildParameters: BuildParameters) {
|
||||||
this.baseStackName = buildParameters.awsBaseStackName;
|
this.baseStackName = buildParameters.awsBaseStackName;
|
||||||
}
|
}
|
||||||
async inspect(): Promise<string> {
|
async inspectResources(): Promise<string> {
|
||||||
return await TaskService.awsDescribeJob('');
|
return await TaskService.awsDescribeJob('');
|
||||||
}
|
}
|
||||||
watch(): Promise<string> {
|
watchWorkflow(): Promise<string> {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -32,10 +33,8 @@ class AWSBuildEnvironment implements ProviderInterface {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
garbageCollect(
|
async garbageCollect(
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
filter: string,
|
filter: string,
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
previewOnly: boolean,
|
previewOnly: boolean,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
olderThan: Number,
|
olderThan: Number,
|
||||||
|
|
@ -44,16 +43,20 @@ class AWSBuildEnvironment implements ProviderInterface {
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
baseDependencies: boolean,
|
baseDependencies: boolean,
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
throw new Error('Method not implemented.');
|
await GarbageCollectionService.cleanup(!previewOnly);
|
||||||
|
|
||||||
|
return ``;
|
||||||
}
|
}
|
||||||
|
|
||||||
async listResources() {
|
async listResources() {
|
||||||
await AwsCliCommands.awsListAll();
|
await AwsCliCommands.awsListStacks();
|
||||||
|
await AwsCliCommands.awsListTasks();
|
||||||
|
await AwsCliCommands.awsListLogGroups();
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
async cleanup(
|
async cleanupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -63,7 +66,7 @@ class AWSBuildEnvironment implements ProviderInterface {
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
||||||
) {}
|
) {}
|
||||||
async setup(
|
async setupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -74,7 +77,7 @@ class AWSBuildEnvironment implements ProviderInterface {
|
||||||
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async runTask(
|
async runTaskInWorkflow(
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
image: string,
|
image: string,
|
||||||
commands: string,
|
commands: string,
|
||||||
|
|
|
||||||
|
|
@ -11,10 +11,10 @@ import CloudRunner from '../../cloud-runner';
|
||||||
class LocalDockerCloudRunner implements ProviderInterface {
|
class LocalDockerCloudRunner implements ProviderInterface {
|
||||||
public buildParameters: BuildParameters | undefined;
|
public buildParameters: BuildParameters | undefined;
|
||||||
|
|
||||||
inspect(): Promise<string> {
|
inspectResources(): Promise<string> {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
watch(): Promise<string> {
|
watchWorkflow(): Promise<string> {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
listResources(): Promise<string> {
|
listResources(): Promise<string> {
|
||||||
|
|
@ -34,7 +34,7 @@ class LocalDockerCloudRunner implements ProviderInterface {
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
cleanup(
|
cleanupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -44,7 +44,7 @@ class LocalDockerCloudRunner implements ProviderInterface {
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
||||||
) {}
|
) {}
|
||||||
setup(
|
setupWorkflow(
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
buildParameters: BuildParameters,
|
buildParameters: BuildParameters,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -55,7 +55,7 @@ class LocalDockerCloudRunner implements ProviderInterface {
|
||||||
this.buildParameters = buildParameters;
|
this.buildParameters = buildParameters;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async runTask(
|
public async runTaskInWorkflow(
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
image: string,
|
image: string,
|
||||||
commands: string,
|
commands: string,
|
||||||
|
|
|
||||||
|
|
@ -39,10 +39,10 @@ class Kubernetes implements ProviderInterface {
|
||||||
this.namespace = 'default';
|
this.namespace = 'default';
|
||||||
this.buildParameters = buildParameters;
|
this.buildParameters = buildParameters;
|
||||||
}
|
}
|
||||||
inspect(): Promise<string> {
|
inspectResources(): Promise<string> {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
watch(): Promise<string> {
|
watchWorkflow(): Promise<string> {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
listResources(): Promise<string> {
|
listResources(): Promise<string> {
|
||||||
|
|
@ -62,7 +62,7 @@ class Kubernetes implements ProviderInterface {
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
public async setup(
|
public async setupWorkflow(
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
buildParameters: BuildParameters,
|
buildParameters: BuildParameters,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -88,7 +88,7 @@ class Kubernetes implements ProviderInterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async runTask(
|
async runTaskInWorkflow(
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
image: string,
|
image: string,
|
||||||
commands: string,
|
commands: string,
|
||||||
|
|
@ -213,7 +213,7 @@ class Kubernetes implements ProviderInterface {
|
||||||
} catch {}
|
} catch {}
|
||||||
}
|
}
|
||||||
|
|
||||||
async cleanup(
|
async cleanupWorkflow(
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
buildParameters: BuildParameters,
|
buildParameters: BuildParameters,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,10 @@ import { ProviderInterface } from '../provider-interface';
|
||||||
import CloudRunnerSecret from '../../services/cloud-runner-secret';
|
import CloudRunnerSecret from '../../services/cloud-runner-secret';
|
||||||
|
|
||||||
class LocalCloudRunner implements ProviderInterface {
|
class LocalCloudRunner implements ProviderInterface {
|
||||||
inspect(): Promise<string> {
|
inspectResources(): Promise<string> {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
watch(): Promise<string> {
|
watchWorkflow(): Promise<string> {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
listResources(): Promise<string> {
|
listResources(): Promise<string> {
|
||||||
|
|
@ -29,7 +29,7 @@ class LocalCloudRunner implements ProviderInterface {
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
cleanup(
|
cleanupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -39,7 +39,7 @@ class LocalCloudRunner implements ProviderInterface {
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
||||||
) {}
|
) {}
|
||||||
public setup(
|
public setupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -49,7 +49,7 @@ class LocalCloudRunner implements ProviderInterface {
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
||||||
) {}
|
) {}
|
||||||
public async runTask(
|
public async runTaskInWorkflow(
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
image: string,
|
image: string,
|
||||||
commands: string,
|
commands: string,
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment
|
||||||
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||||
|
|
||||||
export interface ProviderInterface {
|
export interface ProviderInterface {
|
||||||
cleanup(
|
cleanupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -13,7 +13,7 @@ export interface ProviderInterface {
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
||||||
);
|
);
|
||||||
setup(
|
setupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -23,7 +23,7 @@ export interface ProviderInterface {
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
||||||
);
|
);
|
||||||
runTask(
|
runTaskInWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -52,6 +52,6 @@ export interface ProviderInterface {
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
baseDependencies: boolean,
|
baseDependencies: boolean,
|
||||||
): Promise<string>;
|
): Promise<string>;
|
||||||
inspect(): Promise<string>;
|
inspectResources(): Promise<string>;
|
||||||
watch(): Promise<string>;
|
watchWorkflow(): Promise<string>;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,10 @@ import { ProviderInterface } from '../provider-interface';
|
||||||
import CloudRunnerSecret from '../../services/cloud-runner-secret';
|
import CloudRunnerSecret from '../../services/cloud-runner-secret';
|
||||||
|
|
||||||
class TestCloudRunner implements ProviderInterface {
|
class TestCloudRunner implements ProviderInterface {
|
||||||
inspect(): Promise<string> {
|
inspectResources(): Promise<string> {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
watch(): Promise<string> {
|
watchWorkflow(): Promise<string> {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
listResources(): Promise<string> {
|
listResources(): Promise<string> {
|
||||||
|
|
@ -22,7 +22,7 @@ class TestCloudRunner implements ProviderInterface {
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
throw new Error('Method not implemented.');
|
throw new Error('Method not implemented.');
|
||||||
}
|
}
|
||||||
cleanup(
|
cleanupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -32,7 +32,7 @@ class TestCloudRunner implements ProviderInterface {
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
||||||
) {}
|
) {}
|
||||||
setup(
|
setupWorkflow(
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
|
@ -42,7 +42,7 @@ class TestCloudRunner implements ProviderInterface {
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
||||||
) {}
|
) {}
|
||||||
public async runTask(
|
public async runTaskInWorkflow(
|
||||||
commands: string,
|
commands: string,
|
||||||
buildGuid: string,
|
buildGuid: string,
|
||||||
image: string,
|
image: string,
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
|
||||||
CloudRunnerLogger.logLine(` `);
|
CloudRunnerLogger.logLine(` `);
|
||||||
CloudRunnerLogger.logLine('Starting build automation job');
|
CloudRunnerLogger.logLine('Starting build automation job');
|
||||||
|
|
||||||
output += await CloudRunner.Provider.runTask(
|
output += await CloudRunner.Provider.runTaskInWorkflow(
|
||||||
CloudRunner.buildParameters.buildGuid,
|
CloudRunner.buildParameters.buildGuid,
|
||||||
baseImage.toString(),
|
baseImage.toString(),
|
||||||
BuildAutomationWorkflow.BuildWorkflow,
|
BuildAutomationWorkflow.BuildWorkflow,
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ export class CustomWorkflow {
|
||||||
CloudRunnerLogger.log(`Custom Job Description \n${JSON.stringify(buildSteps, undefined, 4)}`);
|
CloudRunnerLogger.log(`Custom Job Description \n${JSON.stringify(buildSteps, undefined, 4)}`);
|
||||||
}
|
}
|
||||||
for (const step of buildSteps) {
|
for (const step of buildSteps) {
|
||||||
output += await CloudRunner.Provider.runTask(
|
output += await CloudRunner.Provider.runTaskInWorkflow(
|
||||||
CloudRunner.buildParameters.buildGuid,
|
CloudRunner.buildParameters.buildGuid,
|
||||||
step.image,
|
step.image,
|
||||||
step.commands,
|
step.commands,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue