typescript aws

pull/235/head
mdugdale 2021-03-27 23:06:58 +00:00
parent 5b2591bdea
commit 6298965513
3 changed files with 15 additions and 9 deletions

11
dist/index.js vendored
View File

@ -404,6 +404,7 @@ class AWS {
const taskDefStackName = `${stackName}-taskDef-${image}-${buildUid}` const taskDefStackName = `${stackName}-taskDef-${image}-${buildUid}`
.toString() .toString()
.replace(/[^\da-z]/gi, ''); .replace(/[^\da-z]/gi, '');
const taskDefStackNameTTL = taskDefStackName + "-ttl";
core.info('Creating build job resources'); core.info('Creating build job resources');
const taskDefCloudFormation = fs.readFileSync(`${__dirname}/task-def-formation.yml`, 'utf8'); const taskDefCloudFormation = fs.readFileSync(`${__dirname}/task-def-formation.yml`, 'utf8');
yield CF.createStack({ yield CF.createStack({
@ -440,9 +441,10 @@ class AWS {
} }
].concat(secrets), ].concat(secrets),
}).promise(); }).promise();
core.info("Creating build cluster...");
const ttlCloudFormation = fs.readFileSync(`${__dirname}/cloudformation-stack-ttl.yml`, 'utf8'); const ttlCloudFormation = fs.readFileSync(`${__dirname}/cloudformation-stack-ttl.yml`, 'utf8');
yield CF.createStack({ yield CF.createStack({
StackName: taskDefStackName + "-ttl", StackName: taskDefStackNameTTL,
TemplateBody: ttlCloudFormation, TemplateBody: ttlCloudFormation,
Capabilities: ["CAPABILITY_IAM"], Capabilities: ["CAPABILITY_IAM"],
Parameters: [ Parameters: [
@ -456,6 +458,7 @@ class AWS {
}, },
], ],
}).promise(); }).promise();
core.info("Creating cleanup cluster...");
try { try {
yield CF.waitFor('stackCreateComplete', { StackName: taskDefStackName }).promise(); yield CF.waitFor('stackCreateComplete', { StackName: taskDefStackName }).promise();
} }
@ -530,7 +533,7 @@ class AWS {
ShardId: stream.StreamDescription.Shards[0].ShardId, ShardId: stream.StreamDescription.Shards[0].ShardId,
}) })
.promise()).ShardIterator || ""; .promise()).ShardIterator || "";
yield CF.waitFor('stackCreateComplete', { StackName: taskDefStackName + "-ttl" }).promise(); yield CF.waitFor('stackCreateComplete', { StackName: taskDefStackNameTTL }).promise();
core.info(`Task status is ${yield getTaskStatus()}`); core.info(`Task status is ${yield getTaskStatus()}`);
const logBaseUrl = `https://console.aws.amazon.com/cloudwatch/home?region=${SDK.config.region}#logsV2:log-groups/${taskDefStackName}`; const logBaseUrl = `https://console.aws.amazon.com/cloudwatch/home?region=${SDK.config.region}#logsV2:log-groups/${taskDefStackName}`;
core.info(`You can also watch the logs at AWS Cloud Watch: ${logBaseUrl}`); core.info(`You can also watch the logs at AWS Cloud Watch: ${logBaseUrl}`);
@ -573,13 +576,13 @@ class AWS {
StackName: taskDefStackName, StackName: taskDefStackName,
}).promise(); }).promise();
yield CF.deleteStack({ yield CF.deleteStack({
StackName: taskDefStackName + "-ttl", StackName: taskDefStackNameTTL,
}).promise(); }).promise();
yield CF.waitFor('stackDeleteComplete', { yield CF.waitFor('stackDeleteComplete', {
StackName: taskDefStackName StackName: taskDefStackName
}).promise(); }).promise();
yield CF.waitFor('stackDeleteComplete', { yield CF.waitFor('stackDeleteComplete', {
StackName: taskDefStackName + "-ttl" StackName: taskDefStackNameTTL
}).promise(); }).promise();
core.info('Cleanup complete'); core.info('Cleanup complete');
}); });

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -219,6 +219,7 @@ class AWS {
const taskDefStackName = `${stackName}-taskDef-${image}-${buildUid}` const taskDefStackName = `${stackName}-taskDef-${image}-${buildUid}`
.toString() .toString()
.replace(/[^\da-z]/gi, ''); .replace(/[^\da-z]/gi, '');
const taskDefStackNameTTL = taskDefStackName+"-ttl";
core.info('Creating build job resources'); core.info('Creating build job resources');
const taskDefCloudFormation = fs.readFileSync(`${__dirname}/task-def-formation.yml`, 'utf8'); const taskDefCloudFormation = fs.readFileSync(`${__dirname}/task-def-formation.yml`, 'utf8');
await CF.createStack({ await CF.createStack({
@ -255,10 +256,11 @@ class AWS {
} }
].concat(secrets), ].concat(secrets),
}).promise(); }).promise();
core.info("Creating build cluster...");
const ttlCloudFormation = fs.readFileSync(`${__dirname}/cloudformation-stack-ttl.yml`, 'utf8'); const ttlCloudFormation = fs.readFileSync(`${__dirname}/cloudformation-stack-ttl.yml`, 'utf8');
await CF.createStack({ await CF.createStack({
StackName: taskDefStackName+"-ttl", StackName: taskDefStackNameTTL,
TemplateBody: ttlCloudFormation, TemplateBody: ttlCloudFormation,
Capabilities: [ "CAPABILITY_IAM" ], Capabilities: [ "CAPABILITY_IAM" ],
Parameters: [ Parameters: [
@ -272,6 +274,7 @@ class AWS {
}, },
], ],
}).promise(); }).promise();
core.info("Creating cleanup cluster...");
try{ try{
await CF.waitFor('stackCreateComplete', { StackName: taskDefStackName }).promise(); await CF.waitFor('stackCreateComplete', { StackName: taskDefStackName }).promise();
@ -369,7 +372,7 @@ class AWS {
.promise() .promise()
).ShardIterator||""; ).ShardIterator||"";
await CF.waitFor('stackCreateComplete', { StackName: taskDefStackName+"-ttl" }).promise(); await CF.waitFor('stackCreateComplete', { StackName: taskDefStackNameTTL }).promise();
core.info(`Task status is ${await getTaskStatus()}`); core.info(`Task status is ${await getTaskStatus()}`);
@ -423,7 +426,7 @@ class AWS {
}).promise(); }).promise();
await CF.deleteStack({ await CF.deleteStack({
StackName: taskDefStackName+"-ttl", StackName: taskDefStackNameTTL,
}).promise(); }).promise();
await CF.waitFor('stackDeleteComplete', { await CF.waitFor('stackDeleteComplete', {
@ -431,7 +434,7 @@ class AWS {
}).promise(); }).promise();
await CF.waitFor('stackDeleteComplete', { await CF.waitFor('stackDeleteComplete', {
StackName: taskDefStackName+"-ttl" StackName: taskDefStackNameTTL
}).promise(); }).promise();
core.info('Cleanup complete'); core.info('Cleanup complete');