CodePipeline now natively supports Branches, PRs and Monorepos. This repository will no longer be maintained and we recommend you leverage the native functionality!
This project provides a serverless CI/CD platform leveraging native AWS services provisioned using the AWS Cloud Development Kit (CDK). As per the AWS Well Architected Framework, this project assumes the use of multiple AWS accounts for secure isolation of environments.
This CI/CD platform is in use at a variety of AWS clients where the development teams are leveraging CloudFormation, Serverless Framework, AWS CDK and Terraform.
- Pipelines as code.
- Bring Developers closer to their infrastructure and operations by providing a prescriptive platform.
- Support for (almost) any toolset the application developers want to use e.g. Terraform, CDK, Cloudformation, Pulumi etc.
- Minimize platform lock-in. Applications can be migrated to other CI/CD orchestration platform with minimal changes required by the developers.
- Enables "you build it, you run it".
- Cloud native and built on top of AWS Serverless CI/CD tools
- Runs on top of AWS Landing Zone/Control Tower
- Supports pipeline notifications via AWS SNS
- Supports branches (pipeline per branch)
- Auto-increments semantic versioning per pipeline.
This is the pipeline that will be generated for each repository. The build and deployment stages in the pipeline execute a user defined shell script in an isolated docker container. The docker environment is provisioned on the fly by AWS CodeBuild.
The number of stages and their function is fully customizable e.g. adding a stage for security/vulnerability scanning, adding a stage for executing test cases etc.
- AWS CodeCommit (or any source control providor supported by CodePipeline)
- AWS CodePipeline
- AWS CodeBuild
- AWS Lambda
- AWS S3
- AWS SNS
- AWS CloudWatch
- AWS Systems Manager: Parameter Store
- AWS CloudFormation