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:

Test

Tests can be used to gate the release of the software on the results of a test suite in a supported service:

Deploy

The Deploy action performs a deployment to a supported AWS service:

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