From 83596d67c2a69d77970fa4e8c4c455a86f57342a Mon Sep 17 00:00:00 2001 From: Frostebite Date: Sun, 7 Feb 2021 02:08:17 +0000 Subject: [PATCH] unique task def per job --- action/task-def-formation.yml | 10 ++++++++++ src/model/aws.js | 35 +++++++++++++---------------------- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/action/task-def-formation.yml b/action/task-def-formation.yml index 95d84c2d..720a9f90 100644 --- a/action/task-def-formation.yml +++ b/action/task-def-formation.yml @@ -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 diff --git a/src/model/aws.js b/src/model/aws.js index 49c740ba..d7846a6a 100644 --- a/src/model/aws.js +++ b/src/model/aws.js @@ -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,