AWS CodePipeline automates continuous delivery, allowing you to develop workflows using CodeBuild and CodeDeploy which can be monitored using CloudWatch.
- Pipelines define the software release process.
- Executions are invocations of a pipeline.
- Stages contain action groups, which contain actions.
- Action Groups contain sets of actions which run in parallel with each other.
- Actions perform build/test/deployment operations on the source code and artifacts.
- Transitions are the connections between stages and allow halting a pipeline execution.
- Artifacts allow stages to accept input emitted by other stages.
- Action Types declare actions to be carried out.
Pipelines must contain a source stage and either a build or deployment stage.
- Source fetches the source code.
- Build builds the source code to produce deployable artifacts.
- Deployments get the built artifacts (or source code) to a deployed environment.
At least one of build and/or deployment must be provided. Both are expressed as a series of actions.
Actions provide the logic for interactions with external services that carry out the heavy lifting to build and release software.
The built-in Source action supports the following providers:
The Build action performs a build in a supported provider:
Tests can be used to gate the release of the software on the results of a test suite in a supported service:
- Device Farm
- Ghost Inspector
The Deploy action performs a deployment to a supported AWS service:
- CodeDeploy can be used to perform deployments to on-premise infrastructure.
- Elastic Beanstalk
- Service Catalog
- Alexa Skills Kit
- ECS blue-green
Approval provides a means of gating a release based on human approvals.
Invoke can execute Lambda functions, allowing extension of the CodePipeline service to perform bespoke actions.
- CodeDeploy Triggers publish notifications to an SNS topic.
- CloudWatch Events route CodePipeline events to the specified targets.
- $1 per active pipeline
- Inactive pipelines are free