> For the complete documentation index, see [llms.txt](https://mamawhocode.gitbook.io/aws/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mamawhocode.gitbook.io/aws/services/devtools/cicd/codepipeline.md).

# CodePipeline

a continuous delivery service to automate your build, test, deploy process for rapid delivery

[Conceps](https://docs.aws.amazon.com/codepipeline/latest/userguide/concepts.html) |&#x20;

## Overview

<figure><img src="https://arkalim.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F3240f1e6-d82c-490b-9b77-13edd0f5d2dc%2FUntitled.png?table=block&#x26;id=df0c239a-e3ed-42a1-bbe6-b0ac7c686c6d&#x26;spaceId=bf3df57d-a354-4a62-aedc-c0c5d8650229&#x26;width=1150&#x26;userId=&#x26;cache=v2" alt=""><figcaption><p>CodePipeline</p></figcaption></figure>

* ***Visual workflow*** to orchestrate CD pipelines. Pipeline can be edited when needed to add or remove stages.
* Each stage in the pipeline creates an artifact which is stored in S3 (Artifact Store). The next stage uses this artifact as input.
* When a developer commit a code change to source repo -> CodePipeline will auto detect the changes -> Auto build -> Deploy to staging for Testing -> (Manually approval) -> Deploy to production.

### Pipeline

<figure><img src="https://arkalim.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F08f9e5f8-6a96-4b98-a508-8a43012b57bf%2FUntitled.png?table=block&#x26;id=850f7a4d-31a1-439a-b9b2-259fdba77aa0&#x26;spaceId=bf3df57d-a354-4a62-aedc-c0c5d8650229&#x26;width=2000&#x26;userId=&#x26;cache=v2" alt=""><figcaption><p>a pipeline</p></figcaption></figure>

* ***Source***: CodeCommit, ECR, S3
* ***Build***: [CodeBuild](/aws/services/devtools/cicd/codebuild.md)
* ***Test:*** [CodeBuild](/aws/services/devtools/cicd/codebuild.md)&#x20;
* ***Deploy***: CodeDeploy, ECS, Margate, Beanstalk

<figure><img src="https://2259236002-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fuh9xZDZ53qGqmMCM44PU%2Fuploads%2FajKfTZzQ1XvmTCvhLJ3T%2Fimage.png?alt=media&amp;token=f8d3d299-dfa8-433c-85a9-cf983ced54f5" alt=""><figcaption></figcaption></figure>

### Benefits

* Configurable workflow
* Easy to integrate with your pre-built plugins (Github, Jenkins) or custom plugins.

## Features

* Access control using IAM.
* Receive notifications using SNS.

## Concepts

* [Stage](#overview): is ***a logical unit***. Each stage contains [actions](#concepts) that are performed on the application [artifacts](https://docs.aws.amazon.com/codepipeline/latest/userguide/concepts.html#concepts-artifacts).
* [Action](#concepts): is a ***set of operations***. [Valid CodePipeline action](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers) types are `source`, `build`, `test`, `deploy`, `approval`, and `invoke`. The action can be run parallel or sequential.
* [Execution](#concepts): is a ***set of changes*** released by a pipeline. Each pipeline execution is unique and has its own ID.&#x20;
* [Transition](#concepts): is the point where a [pipeline execution](#concepts) moves to the next [stage](#concepts).

<figure><img src="https://docs.aws.amazon.com/images/codepipeline/latest/userguide/images/pipeline-elements-workflow.png" alt="" width="188"><figcaption><p>A transition</p></figcaption></figure>
