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: Fn::GetAtt:
- "KinesisStream" - "KinesisStream"
- "Arn" - "Arn"
CloudWatchIAMRole:
Type: 'AWS::IAM::Role'
Properties:
Statement:
- Effect: "Allow"
Action: "kinesis:PutRecord"
Resource:
Fn::GetAtt:
- "KinesisStream"
- "Arn"
KinesisStream: KinesisStream:
Type: AWS::Kinesis::Stream Type: AWS::Kinesis::Stream

View File

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