-
Notifications
You must be signed in to change notification settings - Fork 3.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(codepipeline-actions): custom event for codepipeline codecommit actions #12045
(codepipeline-actions): custom event for codepipeline codecommit actions #12045
Comments
Thanks for the feature request @matwerber1 . This is a big feature, and I'm not sure I completely agree with the use cases you've outlined (for example, However, if you want to work on it, I'm happy to offer guidance in getting this in 🙂. |
I'm not 100% sure I agree with it either, but I have talked to some where it might make sense, and of course, the blog post suggests others may want to use the approach, too. I can't promise I can find the time to work on it, but I'm not opposed to it. It would be fun to contribute to the CDK :) Is there a good starting point? My Typescript is not strong but may be a good learning opportunity. |
The |
I just ran into this issue when trying to use a single source for hosting both CDK source and application source, while using CDK Pipelines for the continuous CDK deployment and AWS CodePipeline for Application deployment. Everytime I update the CDK code it will fire both a build for CDK and app and vice versa. Unless this is a anti-pattern. I would imagine more people to have a issues as they adopt CDK Pipelines. |
This is still relevant. Would be great to have if you want to create a scheduled build after a commit. |
With CDK Pipelines this would be a hugely helpful feature. |
@matwerber1 I think, I might have a solution for that: Once you create the Pipeline, you can add (apparently not remove) events const pipeline = new Pipeline(this, 'Pipeline');
const customLambdaTrigger = new Function(this, 'customLambdaTrigger', {
/* your configs */
initialPolicy: [
new PolicyStatement({
actions: ['codecommit:GetDifferences'],
resources: [repository.repositoryArn],
}),
new PolicyStatement({
actions: ['codepipeline:StartPipelineExecution'],
resources: [pipeline.pipelineArn],
}),
],
});
const eventPattern
= {
'detail-type': ['CodeCommit Repository State Change'],
'resources': [repository.repositoryArn],
'source': ['aws.codecommit'],
'detail': {
referenceType: ['branch'],
event: ['referenceCreated', 'referenceUpdated'],
referenceName: ['main'],
},
};
pipeline.onEvent('EventTrigger', {
eventPattern,
description: 'Trigger the pipeline when a commit is pushed to the master branch',
target: new LambdaFunction(customLambdaTrigger),
}); You need to disable the default rules of CC: @skinny85 |
|
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:
If a README was the the only file changed, do not trigger the normal pipeline.
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.:
Idea 2 is to be able to customize the target parameters of the event created by the source action:
Other
This is a 🚀 Feature Request
The text was updated successfully, but these errors were encountered: