Skip to content

Commit 492f6e5

Browse files
implement notifications for pipeline status changes
1 parent 415604c commit 492f6e5

File tree

2 files changed

+47
-17
lines changed

2 files changed

+47
-17
lines changed

cicd/2-cicd/cicd.template.yml

Lines changed: 43 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -327,34 +327,60 @@ Resources:
327327
OutputArtifacts:
328328
- Name: integrationTestResultsPOC
329329

330+
# Send pipeline events to an SNS topic.
331+
# Note: Integration with Slack via AWS ChatBot is configured manually via AWS Console.
330332
PipelineNotificationRule:
331333
Type: AWS::CodeStarNotifications::NotificationRule
332334
Properties:
333-
Name: !Sub ${StackName}-pipeline
335+
Name: !Sub ${AWS::StackName}-pipeline
334336
DetailType: FULL
335-
Resource: !Ref Pipeline
337+
Resource: !Sub "arn:${AWS::Partition}:codepipeline:${AWS::Region}:${AWS::AccountId}:${Pipeline}"
336338
EventTypeIds:
337-
- codepipeline-pipeline-action-execution-succeeded
338-
- codepipeline-pipeline-action-execution-failed
339-
- codepipeline-pipeline-action-execution-canceled
340-
- codepipeline-pipeline-action-execution-started
341-
- codepipeline-pipeline-stage-execution-started
342-
- codepipeline-pipeline-stage-execution-succeeded
343-
- codepipeline-pipeline-stage-execution-resumed
344-
- codepipeline-pipeline-stage-execution-canceled
345-
- codepipeline-pipeline-stage-execution-failed
339+
# Pipeline events
346340
- codepipeline-pipeline-pipeline-execution-failed
347-
- codepipeline-pipeline-pipeline-execution-canceled
348-
- codepipeline-pipeline-pipeline-execution-started
349-
- codepipeline-pipeline-pipeline-execution-resumed
350341
- codepipeline-pipeline-pipeline-execution-succeeded
351-
- codepipeline-pipeline-pipeline-execution-superseded
352-
- codepipeline-pipeline-manual-approval-failed
342+
# - codepipeline-pipeline-pipeline-execution-canceled
343+
# - codepipeline-pipeline-pipeline-execution-superseded
344+
# - codepipeline-pipeline-pipeline-execution-started
345+
# - codepipeline-pipeline-pipeline-execution-resumed
346+
# Stage Events
347+
# - codepipeline-pipeline-stage-execution-started
348+
# - codepipeline-pipeline-stage-execution-succeeded
349+
# - codepipeline-pipeline-stage-execution-resumed
350+
# - codepipeline-pipeline-stage-execution-canceled
351+
- codepipeline-pipeline-stage-execution-failed
352+
# Action Events
353+
# - codepipeline-pipeline-action-execution-succeeded
354+
# - codepipeline-pipeline-action-execution-failed
355+
# - codepipeline-pipeline-action-execution-canceled
356+
# - codepipeline-pipeline-action-execution-started
357+
# Approval Events (we don't use approvals yet)
353358
- codepipeline-pipeline-manual-approval-needed
354-
- codepipeline-pipeline-manual-approval-succeeded
359+
# - codepipeline-pipeline-manual-approval-failed
360+
# - codepipeline-pipeline-manual-approval-succeeded
355361
Targets:
356362
- TargetType: SNS
357363
TargetAddress: !Ref PipelineNotificationTopic
358364

359365
PipelineNotificationTopic:
360366
Type: AWS::SNS::Topic
367+
368+
# This policy is necessary for CodePipeline to be allowed to publish to the Topic.
369+
PipelineNotificationTopicPolicy:
370+
Type: AWS::SNS::TopicPolicy
371+
Properties:
372+
Topics:
373+
- !Ref PipelineNotificationTopic
374+
PolicyDocument:
375+
Version: '2008-10-17'
376+
Statement:
377+
- Sid: AWSCodeStarNotifications_publish
378+
Effect: Allow
379+
Principal:
380+
Service:
381+
- codestar-notifications.amazonaws.com
382+
Action: SNS:Publish
383+
Resource: !Ref PipelineNotificationTopic
384+
Condition:
385+
StringEquals:
386+
aws:SourceAccount: !Ref AWS::AccountId

cicd/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,7 @@ Finally, all of the above need some Roles to exist in the AWS accounts before we
5353

5454
* "deploy-setup.sh"
5555
* "setup.template.yml" - AWS resources for the Setup infrastructure
56+
57+
## Opportunities
58+
59+
- Design more granular notifications by calling Slack webhooks _within_ steps.

0 commit comments

Comments
 (0)