Skip to content

(codepipeline-actions): custom event for codepipeline codecommit actions #12045

@matwerber1

Description

@matwerber1

This feature request is to allow customization of the CloudWatch Event created by a CodeCommit source action in the aws-codepipeline-actions module.

Use Case

Per the blog post below, one may want to add custom logic to the CloudWatch Event that triggers a pipeline, so that they can selectively determine when to trigger a pipeline rather than triggering it on every commit to the branch being watched. This customization may be done by having the CloudWatch Event invoke a Lambda rather than directly triggering the pipeline. The Lambda can apply logic to determine whether this (or a different) pipeline is triggered.

Today, the aws-codepipeline-actions CodeCommit source action does not allow you to specify / modify the rules of the CloudWatch Event created by the construct.

Inspiration for this request is from the blog below:

https://aws.amazon.com/blogs/devops/adding-custom-logic-to-aws-codepipeline-with-aws-lambda-and-amazon-cloudwatch-events/

I want to use trunk-based development (single master branch) but have the ability to selectively trigger a pipeline based on facts about the commit.

For example:

  1. If a README was the the only file changed, do not trigger the normal pipeline.

  2. If (e.g. in the event of an emergency), I need to push a hotfix straight to prod while skipping my test and staging environment, I want to invoke a different pipeline that is source -> build -> prod, instead of my normal pipeline of source-> test -> staging -> prod.

Proposed Solution

Proposed idea #1 is to able to specify your own, previously-created CloudWatch Event, e.g.:

new codepipeline_actions.CodeCommitSourceAction({
          actionName: 'CodeCommit_Source',
          role: props.role,
          eventRole: props.eventRole,
          repository: props.repository,
          branch: props.branch,
          output: props.output,
          event: <YOUR CUSTOM EVENT>        // FEATURE REQUEST
        }),

Idea 2 is to be able to customize the target parameters of the event created by the source action:

new codepipeline_actions.CodeCommitSourceAction({
          actionName: 'CodeCommit_Source',
          role: props.role,
          eventRole: props.eventRole,
          repository: props.repository,
          branch: props.branch,
          output: props.output,
          eventTarget:    <custom Lambda resource>.        // FEATURE REQUEST
}),

Other

  • 👋 I may be able to implement this feature request
  • ⚠️ This feature might incur a breaking change

This is a 🚀 Feature Request

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions