List of all available properties for a Copilot pipeline manifest. To learn more about pipelines, see the Pipelines concept page.

Sample manifest for a pipeline triggered from a GitHub repo
name: pipeline-sample-app-frontend
version: 1

  provider: GitHub
    branch: main
    repository: https://github.com/<user>/sample-app-frontend
    # Optional: specify the name of an existing CodeStar Connections connection.
    connection_name: a-connection

  image: aws/codebuild/amazonlinux2-x86_64-standard:3.0

      name: test
        - make test
        - echo "woo! Tests passed"
      name: prod
      requires_approval: true

name String
The name of your pipeline.

version String
The schema version for the template. There is only one version, 1, supported at the moment.

source Map
Configuration for how your pipeline is triggered.

source.provider String
The name of your provider. Currently, GitHub, Bitbucket, and CodeCommit are supported.

source.properties Map
Provider-specific configuration on how the pipeline is triggered.

source.properties.access_token_secret String
The name of AWS Secrets Manager secret that holds the GitHub access token to trigger the pipeline if your provider is GitHub and you created your pipeline with a personal access token.


As of AWS Copilot v1.4.0, the access token is no longer needed for GitHub repository sources. Instead, Copilot will trigger the pipeline using AWS CodeStar connections.

source.properties.branch String
The name of the branch in your repository that triggers the pipeline. The default branch name is main.

source.properties.repository String
The URL of your repository.

source.properties.connection_name String
The name of an existing CodeStar Connections connection. If omitted, Copilot will generate a connection for you.

build Map
Configuration for CodeBuild project.

build.image String
The URI that identifies the Docker image to use for this build project. As of now, aws/codebuild/amazonlinux2-x86_64-standard:3.0 is used by default.

stages Array of Maps
Ordered list of environments that your pipeline will deploy to.

stages.name String
The name of an environment to deploy your services to.

stages.requires_approval Boolean
Indicates whether to add a manual approval step before the deployment.

stages.test_commands Array of Strings
Commands to run integration or end-to-end tests after deployment.