AWS CodePipeline features

Why CodePipeline?

AWS CodePipeline is a continuous integration and continuous delivery (CI/CD) service for fast and reliable application and infrastructure updates. You can use CodePipeline to fully model and automate your software release processes.

Page Topics

General

General

A pipeline defines your release process workflow and describes how a new code change progresses through your release process. A pipeline comprises a series of stages (for example, build, test, and deploy), which act as logical divisions in your workflow. Each stage is made up of a sequence of actions, which are tasks such as building code or deploying to test environments. CodePipeline provides you with a graphical user interface to create, configure, and manage your pipeline and its various stages and actions, allowing you to easily visualize and model your release process workflow.

Parallel execution

You can use CodePipeline to model your build, test, and deployment actions to run in parallel in order to increase your workflow speeds.

CodePipeline can pull source code for your pipeline directly from AWS CodeCommit, GitHub, Amazon Elastic Container Registry (Amazon ECR), or Amazon Simple Storage Service (Amazon S3). It can run builds and unit tests in AWS CodeBuild. CodePipeline can deploy your changes using AWS CodeDeploy, AWS Elastic BeanstalkAmazon Elastic Container Service (Amazon ECS), or AWS Fargate.

You can model AWS CloudFormation actions that let you provision, update, or delete AWS resources as part of your release process. This also enables you to continuously deliver serverless applications built using AWS LambdaAmazon API Gateway, and Amazon DynamoDB with the AWS Serverless Application Model (AWS SAM).

You can also trigger custom functions defined by code at any stage of your pipeline using the integration of CodePipeline with Lambda. For example, you can trigger a Lambda function that tests whether your web application successfully deployed.

CodePipeline lets you configure a pipeline that ties these services together along with third-party developer tools and custom systems.

CodePipeline allows you to integrate third-party developer tools, like GitHub or Jenkins, into any stage of your release process with one click. You can use third-party tools for source control, build, test, or deployment. Learn more about our integrations.

CodePipeline allows you to integrate your own custom systems. You can register a custom action that allows you to hook your servers into your pipeline by integrating the CodePipeline open source agent with your servers. You can also use the CodePipeline Jenkins plugin to easily register your existing build servers as a custom action.

CodePipeline allows you to define your pipeline structure through a declarative JSON document that specifies your release workflow and its stages and actions. These documents allow you to update existing pipelines as well as provide starting templates for creating new pipelines.

CodePipeline uses AWS Identity and Access Management (IAM) to manage who can make changes to your release workflow, as well as who can control it. You can grant users access through IAM users, IAM roles, and SAML-integrated directories.

You can create notifications for events impacting your pipelines. Notifications will come in the form of Amazon Simple Notification Service (Amazon SNS) notifications. Each notification includes a status message and a link to the resources whose event generated that notification.