Code Pipeline 101
AWS CodePipeline is a fully managed Continuous Integration and Continuous Delivery service.
CodePipeline can orchestrate the Build, Test, and even Deployment of your application every time there is a change to your code; all based on a user-defined software release process.
Traditional manual approaches to code delivery can be slow and prone to errors, whereas an automated process allows developers to frequently release new features and bug fixes in a fast and reliable way.
Workflow
CodePipeline allows you to model your release process as a workflow or pipeline made up of different tasks, such as the simple workflow represented below.
Code Update -> Build -> Test -> Deploy
You define what happens and where for each of the different stages of the workflow, and this can be modeled using the CodePipeline GUI or CLI.
Integrates with
- CodeCommit
- CodeBuild
- CodeDeploy
- Lambda
- Elastic Beanstalk
- Elastic Container Service
- Third Party Tools (e.g. GitHub and Jenkins)
Every code change pushed to your code repo automatically enters the workflow and triggers the set of actions defined for each stage of the pipeline.
The pipeline automatically stops if one of the stages fails. For example, if one of your automatic unit tests fails. This means that bugs are caught before the code is deployed, while they are still easy to fix.