AWS CodePipeline automatically builds, tests and launches an application each time the code is changed; a developer uses a graphic user interface to model workflow configurations for the release process within the pipeline. A development team can specify and run actions or a group of actions, which is called a stage. For example, a developer would specify which tests CodePipeline will run and to which pre-production environments it should deploy. The service can then run these actions through the parallel execution process, in which multiple processors handle computing tasks simultaneously to accelerate workflows.
AWS CodePipeline integrates with several Amazon services. It pulls source code from Amazon Simple Storage Service and deploys to both AWS CodeDeploy and AWS Elastic Beanstalk. A developer can also integrate AWS Lambda functions or third-party DevOps tools, such as GitHub or Jenkins. AWS CodePipeline also supports custom systems and actions through the AWS command line interface. These custom actions include build, deploy, test and invoke, which facilitate unique release processes. The developer must create a job worker to poll CodePipeline for job requests, then run the action and return a status result.
An administrator grants permissions to AWS CodePipeline through AWS Identity and Access Management (IAM). IAM roles control which end users can make changes to the application release workflow.