unique task def per job

pull/218/head
Frostebite 2021-02-07 02:08:17 +00:00
parent e6716c9245
commit 83596d67c2
2 changed files with 23 additions and 22 deletions

View File

@ -87,6 +87,16 @@ Resources:
Fn::GetAtt:
- "KinesisStream"
- "Arn"
CloudWatchIAMRole:
Type: 'AWS::IAM::Role'
Properties:
Statement:
- Effect: "Allow"
Action: "kinesis:PutRecord"
Resource:
Fn::GetAtt:
- "KinesisStream"
- "Arn"
KinesisStream:
Type: AWS::Kinesis::Stream

View File

@ -34,28 +34,19 @@ class AWS {
const alphanumericImageName = image.toString().replace(/[^\da-z]/gi, '');
const taskDefStackName = `${stackName}-taskDef-${alphanumericImageName}-${nanoid()}`;
const stackExists =
(await CF.listStacks().promise()).StackSummaries.find(
(x) => x.StackName === taskDefStackName,
) !== undefined;
if (!stackExists) {
core.info("Task Definition doesn't exist, creating a task definition stack");
const taskDefCloudFormation = fs.readFileSync(`${__dirname}/task-def-formation.yml`, 'utf8');
await CF.createStack({
StackName: taskDefStackName,
TemplateBody: taskDefCloudFormation,
Parameters: [
{
ParameterKey: 'ImageUrl',
ParameterValue: image,
},
],
}).promise();
await CF.waitFor('stackCreateComplete', { StackName: taskDefStackName }).promise();
} else {
core.info('Task definition stack exists already');
}
core.info("Task Definition doesn't exist, creating a task definition stack");
const taskDefCloudFormation = fs.readFileSync(`${__dirname}/task-def-formation.yml`, 'utf8');
await CF.createStack({
StackName: taskDefStackName,
TemplateBody: taskDefCloudFormation,
Parameters: [
{
ParameterKey: 'ImageUrl',
ParameterValue: image,
},
],
}).promise();
await CF.waitFor('stackCreateComplete', { StackName: taskDefStackName }).promise();
const taskDefResources = await CF.describeStackResources({
StackName: taskDefStackName,