コードプッシュまたはプルリクエストでトリガーをフィルタリングする - AWS CodePipeline

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コードプッシュまたはプルリクエストでトリガーをフィルタリングする

タグやブランチのプッシュ、特定のファイルパスの変更、特定のブランチに開かれたプルリクエストなど、さまざまな Git イベントに対してパイプライン実行を開始するようにパイプライントリガーのフィルターを設定できます。 AWS CodePipeline コンソールまたは の create-pipelineおよび update-pipeline コマンドを使用して AWS CLI 、トリガーのフィルターを設定できます。

次のトリガータイプにフィルターを指定できます。

  • プッシュする

    プッシュトリガーは、変更がソースリポジトリにプッシュされるとパイプラインを開始します。実行では、プッシュ先のブランチ (つまり、送信先ブランチ) からのコミットが使用されます。ブランチ、ファイルパス、または Git タグでプッシュトリガーをフィルタリングできます。

  • プルリクエスト

    プルリクエストトリガーは、ソースリポジトリでプルリクエストがオープン、更新、またはクローズされたときにパイプラインを開始します。実行では、プル元のソースブランチ (つまり、ソースブランチ) からのコミットを使用します。ブランチとファイルパスでプルリクエストトリガーをフィルタリングできます。

    注記

    プルリクエストでサポートされているイベントタイプは、オープン、更新、またはクローズ (マージ) されます。その他のプルリクエストイベントはすべて無視されます。

パイプライン定義を使用すると、同じプッシュトリガー設定内で異なるフィルターを組み合わせることができます。パイプライン定義の詳細については、「」を参照してくださいパイプライン JSON でのトリガーフィルタリング (CLI)。有効な組み合わせは次のとおりです。

  • タグ

  • ブランチ

  • ブランチ + ファイルパス

フィルタータイプは次のように指定します。

  • フィルターなし

    このトリガー設定は、アクション設定の一部として指定されたデフォルトブランチへのプッシュ時にパイプラインを開始します。

  • フィルターを指定する

    コードプッシュのブランチ名など、特定のフィルターでパイプラインを開始し、正確なコミットを取得するフィルターを追加します。これにより、変更時にパイプラインが自動的に開始されないようにも設定されます。

  • 変更を検出しない

    これによりトリガーは追加されず、パイプラインは変更時に自動的に開始されません。

次の表は、各イベントタイプの有効なフィルターオプションを示しています。この表は、アクション設定の自動変更検出で、どのトリガー設定がデフォルトで true または false になるかも示しています。

トリガーの設定 イベントタイプ フィルターのオプション 変更を検出する
トリガーの追加 — フィルターなし なし なし true
トリガーの追加 — コードプッシュでフィルタリングする プッシュイベント Git タグ、ブランチ、ファイルパス false
トリガーの追加 — プルリクエストのフィルタリング プルリクエスト ブランチ、ファイルパス false
トリガーなし – 検出しない なし なし false
注記

このトリガータイプは、自動変更検出 (Webhookトリガータイプとして) を使用します。このトリガータイプを使用するソースアクションプロバイダーは、コードプッシュ用に設定された接続 (Bitbucket Cloud、 GitHub GitHub Enterprise Server、 GitLab.com、セルフ GitLabマネージド) です。

フィルタリングについては、 で説明されているように、glob 形式の正規表現パターンがサポートされています構文での glob パターンの使用

注記

場合によっては、ファイルパスでフィルタリングされたトリガーを持つパイプラインの場合、ファイルパスフィルターを持つブランチが最初に作成されたときにパイプラインが開始されないことがあります。詳細については、「ファイルパスによるトリガーフィルタリングを使用する接続を持つパイプラインは、ブランチの作成時に開始されない場合があります」を参照してください。

トリガーフィルターに関する考慮事項

トリガーを使用する場合は、次の考慮事項が適用されます。

  • ブランチとファイルパスのフィルターを使用するトリガーの場合、ブランチを初めてプッシュすると、新しく作成されたブランチで変更されたファイルのリストにアクセスできないため、パイプラインは実行されません。

  • プッシュ (ブランチフィルター) とプルリクエスト (ブランチフィルター) のトリガー設定が交差する場合、プルリクエストをマージすると 2 つのパイプライン実行がトリガーされる場合があります。

トリガーフィルターの例

プッシュリクエストイベントタイプとプルリクエストイベントタイプのフィルターを含む Git 設定では、指定されたフィルターが互いに競合する可能性があります。以下は、プッシュリクエストイベントとプルリクエストイベントの有効なフィルターの組み合わせの例です。

お客様が単一の設定オブジェクト内でフィルターを組み合わせる場合、これらのフィルターは AND オペレーションを使用します。つまり、完全一致のみがパイプラインを開始します。次の例は、Git 設定を示しています。

{ "filePaths": { "includes": ["common/**/*.js"] }, "branches": { "includes": ["feature/**"] } }

上記の Git 設定では、この例は、AND オペレーションが成功したためにパイプラインの実行を開始するイベントを示しています。

{ "ref": "refs/heads/feature/triggers", ... "commits": [ { ... "modified": [ "common/app.js" ] ... } ] }

この例では、ブランチはフィルタリングできますが、ファイルパスはフィルタリングできないため、パイプラインの実行を開始しないイベントを示します。

{ "ref": "refs/heads/feature/triggers", ... "commits": [ { ... "modified": [ "src/Main.java" ] ... } ] }

同時に、プッシュ配列内のトリガー設定オブジェクトは OR オペレーションを使用します。これにより、同じパイプラインの実行を開始するように複数のトリガーを設定できます。JSON 構造内のフィールド定義のリストについては、「」を参照してくださいパイプライン JSON でのトリガーフィルタリング (CLI)