Pipeline

以下は Copilot Pipeline の Manifest で利用できるすべてのプロパティのリストです。Pipeline の概念説明のページも合わせてご覧ください。

GitHub のリポジトリからトリガーされる Pipeline のサンプル Manifest
    name: frontend

    source:
      provider: GitHub
      properties:
        branch: main
        repository: https://github.com/<user>/frontend
        # オプション。既存の CodeStar Connection の接続名を指定します。
        connection_name: a-connection

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

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

name String
Pipeline 名。

version String
テンプレートのスキーマバージョン。現在サポートされているバージョンは 1 だけです。

source Map Pipeline のトリガーに関する設定。

source.provider String
プロバイダー名。現在 GitHubBitbucket そして CodeCommit がサポートされています。

source.properties Map
Pipeline のトリガーに関するプロバイダー固有の設定。

source.properties.access_token_secret String
Pipeline をトリガーするための GitHub アクセストークンを保持する AWS Secrets Manager シークレットの名前。 (プロバイダーが GitHub で、個人のアクセストークンを利用して Pipeline を作成した場合)

Info

Copilot v1.4.0 から GitHub リポジトリをソースにする場合のアクセストークンは不要になりました。代わりに Copilot は AWS CodeStar の GitHub への接続を使って Pipeline をトリガーします。

source.properties.branch String
Pipeline をトリガーするリポジトリのブランチ名。 Copilot は、このフィールドに現在のローカルブランチを自動的に入力します。

source.properties.repository String
リポジトリの URL 。

source.properties.connection_name String
既存の CodeStar Connections の接続名。指定しない場合 Copilot は接続を作成します。

source.properties.output_artifact_format String 任意項目。アーティファクトの出力形式です。CODEBUILD_CLONE_REF または CODE_ZIP を指定します。省略した場合、デフォルトの CODE_ZIP が利用されます。

Info

このプロパティは、access_token_secret を使用するGitHub version 1 ソースアクションでは利用できません。

build Map
CodeBuild プロジェクトに関する設定。

build.image String
CodeBuild のビルドプロジェクトで利用する Docker イメージの URI。aws/codebuild/amazonlinux2-x86_64-standard:3.0 がデフォルトで利用されます。

build.buildspec String 任意項目。ビルドプロジェクトで利用する buildspec ファイルを指定する URI です。デフォルトでは、Copilot が buildspec ファイルを作成します。作成したファイルは、 copilot/pipelines/[your pipeline name]/buildspec.yml に配置されています。

stages Array of Maps
Pipeline のデプロイ先である 1 つ以上の Environment をデプロイしたい順番に並べたリスト。

stages.name String
Service をデプロイする Environment 名。

stages.requires_approval Boolean
Optional. Indicates whether to add a manual approval step before the deployment. Defaults to false. 任意項目。デプロイの前に手動承認ステップを追加するかどうかを示します。デフォルトは false です。

stages.deployments Map
Optional. Control which CloudFormation stacks to deploy and their order.
The deployments dependencies are specified in a map of the form: 任意項目。デプロイする CloudFormation スタックとその順序を制御します。 デプロイの依存関係は、次の形式の Map で指定されます。

stages:
  - name: test
    deployments:
      <service or job name>:
      <other service or job name>:
        depends_on: [<name>, ...]

例えば、Git リポジトリのレイアウトが次のようになっているとします。

copilot
├── api
│   └── manifest.yml
└── frontend
    └── manifest.yml

また、frontend の前に api がデプロイされるようにデプロイの順序を制御したい場合は、ステージを次のように設定できます。

stages:
  - name: test
    deployments:
      api:
      frontend:
        depends_on:
          - api
また、パイプラインの一部をリリースするマイクロサービスを制限することもできます。以下の Manifest では、api のみをデプロイし、frontend をデプロイしないよう指定しています。
stages:
  - name: test
    deployments:
      api:

最後に、もし deployments が指定されていない場合、デフォルトでは Copilot は git リポジトリにあるすべての Service と Job を並行してデプロイします。

stages.deployments.<name> Map
デプロイする Job または Service の名前。

stages.deployments.<name>.depends_on Array of Strings
Optional. Name of other job or services that should be deployed prior to deploying this microservice. Defaults to no dependencies.
任意項目。このマイクロサービスをデプロイする前にデプロイする必要がある他の Job または Service の名前。デフォルトでは依存関係はありません。

stages.deployments.<name>.stack_name String
任意項目。作成または更新するスタックの名前。デフォルトは <app name>-<stage name>-<deployment name> です。 たとえば、Application 名が demo、ステージ名が test、Service 名が frontend の場合、スタック名は demo-test-frontend になります。

stages.deployments.<name>.template_path String
任意項目。build フェーズで生成された CloudFormation テンプレートへのパス。デフォルトは infrastructure/<deployment name>-<stage name>.yml です。

stages.deployments.<name>.template_config String
任意項目。build フェーズで生成された CloudFormation テンプレート設定へのパス。デフォルトは infrastructure/<deployment name>-<stage name>.params.json です。

stages.test_commands Array of Strings
任意項目。デプロイ後にインテグレーションテストまたは E2E テストを実行するコマンドです。デフォルトでは、デプロイ後の検証は行いません。