-
Notifications
You must be signed in to change notification settings - Fork 4k
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
feat(app-delivery): continuous delivery for CDK apps #2073
Conversation
@@ -1,151 +1,132 @@ | |||
## Continuous Integration / Continuous Delivery for CDK Applications | |||
This library includes a *CodePipeline* composite Action for deploying AWS CDK Applications. | |||
# App Delivery |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have we made the previous method of building a CDK pipeline impossible now, or is that code still available? We're not really explaining how it works anymore at least.
I'm concerned because existing customers could be depending on this right now, and we'd break them with no real replacement. I would like this library to both export the CDK primitives to build this pipeline, as well as a the helper tool that builds a standard pipeline using those primitives from a config file, and explain both methods in the README.
The refactor is so big I can't really tell whether that is what's going on, but if not that's what I want :).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is basically a full replacement of the existing module. Start with the README file and judge if it offers the right building blocks. I’ll also see if we can expose more of the building blocks.
I’ll make sure to include a breaking change message in the commit. I don’t believe the current offering was of much value to anyone, especially given it did not support assets.
@@ -0,0 +1,4 @@ | |||
#!/bin/bash |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't really do this because it won't work on Windows.
Has to be a JavaScript file.
(And it's not "just a build script", it's in the hot path of every CDK user)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point about Windows. I’ll convert to JavaScript.
@skinny85, I've extracted the various pipeline actions from the app-delivery module into the codepipeline-actions module ( You will see that I've implemented them as constructs, which made it much easier and less convoluted. I am not super happy that those don't look & feel like the other pipeline actions, so we should re-visit once we refactor the Action API. Let's align the terminology:
The app-delivery module now includes only the boot pipeline (and app) and a command line program that reads a yaml file and creates/updates your boot pipeline. I am not 100% happy with the API of Other remaining work:
|
seed |
🌱 |
76be772
to
71625fe
Compare
Did the rebase. Let's see the if the build passes. |
To use it, create a file called `cdk.pipelines.yaml` with a map where the key is | ||
the name of the bootstrap pipeline and the value is an object with the following options: | ||
|
||
* `source`: the GitHub repository to monitor. Must be in the form **http://github.com/ACCOUNT/REPO**. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would CodeCommit work here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes works for me
This looks really cool! I'm excited to try out this feature. |
Superseded by #3437 |
Thanks so much for taking the time to contribute to the AWS CDK ❤️ We will shortly assign someone to review this pull request and help get it
|
Rewrite the app delivery library to allow full deployment of CDK apps. A CDK pipeline can be created using a command line tool called
cdk-pipeline
(which we will eventually integrate into the toolkit). This pipeline is also called "a bootstrapping pipeline". It's behavior is fixed - it builds and deploys a CDK app from a source control repo (currently only GitHub is supported).In order to customize the deployment behavior, users can configure the bootstrapping pipeline to only deploy a deployment stack instead, which will in turn, deploy the rest of the CDK app. This approach provides full flexibility to CDK users as it offers CI/CD for both the pipeline itself and the rest of the app, with full customizability.
Fixed #308
Fixes #1917
Fixes #1151
Moral support: @NetaNir
Co-authored-by: rix0rrr huijbers@amazon.com
Co-authored-by: RomainMuller rmuller@amazon.com
Co-authored-by: skinny85 adamruka@amazon.com
Pull Request Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license.