General AWS CodePipeline Concepts
AWS CodePipeline is a fully managed continuous delivery service that helps you automate your release pipelines for fast and reliable application and infrastructure updates.
CodePipeline automates the build, test, and deploy phases of your release process every time there is a code change, based on the release model you define.
CodePipeline enables you to rapidly and reliably deliver features and updates.
You can easily integrate AWS CodePipeline with third-party services such as GitHub or with your own custom plugin. With AWS CodePipeline, you only pay for what you use.
There are no upfront fees or long-term commitments.
Uses a user-defined software release process.
A fast and reliable way to quickly release new features and bug fixes.
CodePipeline provides tooling integrations for many AWS and third-party software at each stage of the pipeline including:
- Source stage – S3, CodeCommit, Github, ECR, Bitbucket Cloud (beta).
- Build – CodeBuild, Jenkins.
- Deploy stage – CloudFormation, CodeDeploy, ECS, Elastic Beanstalk, AWS Service Catalog, S3.
Key CodePipeline Concepts
- A workflow that describes how software changes go through the release process.
- Files or changes that will be worked on by the actions and stages in the pipeline.
- Each pipeline stage can create “artifacts”.
- Artifacts are passed, stored in Amazon S3 and then passed on to the next stage.
- Pipelines are broken up into stages, e.g. build stage, deployment stage.
- Each stage can have sequential actions and or parallel actions.
- Stage examples would be build, test, deploy, load test etc.
- Manual approval can be defined at any stage.
- Stages contain at least one action, these actions take some action on artifacts and will have artifacts as either an input, and output, or both.
- The progressing from one stage to another inside of a pipeline.
The diagram below shows a pipeline with a manual approval stage:
Every code change pushed to your code repository automatically enters the workflow and triggers the set of actions defined for each stage of the pipeline.
CodePipeline state changes happen in AWS CloudWatch Events which can create SNS notifications.
Notifications may include failed pipelines or cancelled stages.
If CodePipeline fails a stage, your pipeline stops and you can get information in the console.
You can also audit API calls with AWS CloudTrail.
If CodePipeline cannot perform an action, check that the IAM service role attached to the pipeline has the correct permissions.