CodePipeline
AWS CodePipeline automates continuous delivery, allowing you to develop workflows using CodeBuild and CodeDeploy which can be monitored using CloudWatch.
Concepts
- 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.
Stages
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
Actions provide the logic for interactions with external services that carry out the heavy lifting to build and release software.
Source
The built-in Source action supports the following providers:
Build
The Build action performs a build in a supported provider:
- CodeBuild
- Jenkins
Test
Tests can be used to gate the release of the software on the results of a test suite in a supported service:
- CodeBuild
- Device Farm
- Jenkins
- Ghost Inspector
- BlazeMeter
- StormRunner
- Runscope
Deploy
The Deploy action performs a deployment to a supported AWS service:
- CloudFormation
- CodeDeploy can be used to perform deployments to on-premise infrastructure.
- Elastic Beanstalk
- OpsWorks
- Service Catalog
- Alexa Skills Kit
- ECS
- ECS blue-green
Approval
Approval provides a means of gating a release based on human approvals.
Invoke
Invoke can execute Lambda functions, allowing extension of the CodePipeline service to perform bespoke actions.
Monitoring
- CodeDeploy Triggers publish notifications to an SNS topic.
- CloudWatch Events route CodePipeline events to the specified targets.
Pricing
- $1 per active pipeline
- Inactive pipelines are free