Amazon CodePipeline is a continuous integration and continuous delivery service for fast and reliable application and infrastructure updates. You can use CodePipeline to fully model and automate your software release processes.
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 (e.g., 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. Amazon 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.
You can use CodePipeline to model your build, test, and deployment actions to run in parallel in order to increase your workflow speeds.
Amazon Web Services integrations
Amazon CodePipeline can pull source code for your pipeline directly from Amazon CodeCommit, Amazon ECR, or Amazon S3. It can run builds and unit tests in Amazon CodeBuild. CodePipeline can deploy your changes using Amazon CodeDeploy, Amazon Elastic Beanstalk, Amazon Elastic Container Service (Amazon ECS), or Amazon Fargate.
You can model Amazon CloudFormation actions that let you provision, update, or delete Amazon Web Services resources as part of your release process. This also enables you to continuously deliver serverless applications built using Amazon Lambda, Amazon API Gateway, and Amazon DynamoDB with the Amazon Serverless Application Model (SAM).
You can also trigger custom functions defined by code at any stage of your pipeline using CodePipeline's integration with Amazon Lambda. For example, you can trigger a Lambda function that tests whether your web application deployed successfully.
CodePipeline lets you configure a pipeline that ties these services.
Amazon 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.
Amazon 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 enable you to update existing pipelines as well as provide starting templates for creating new pipelines.
Amazon CodePipeline uses Amazon 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 SNS notifications. Each notification includes a status message as well as a link to the resources whose event generated that notification.