翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
コードプッシュまたはプルリクエストのトリガーをフィルタリングする
タグやブランチプッシュ、特定のファイルパスの変更、特定のブランチに開かれたプルリクエストなど、さまざまな 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 設定では、指定されたフィルターが互いに競合する可能性があります。以下は、プッシュリクエストイベントとプルリクエストイベントの有効なフィルターの組み合わせの例です。
1 つの設定オブジェクト内でフィルターを組み合わせることができ、これらのフィルターは ANDオペレーションを使用します。つまり、完全一致のみがパイプラインを開始します。次の例は、1 つのフィルターではなく、「設定オブジェクト」内に 2 つの異なるフィルター (filePaths
と branches
) を持つ Git 設定を示しています。次の例では、 は で AND'ed filePaths
になりますbranches
。
{ "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 オペレーションを使用します。これにより、同じパイプラインの実行を開始するように複数のトリガーを設定できます。次の例は、設定オブジェクト内に 1 つのフィルター (branches
) を持つ Git 設定を示しています。Includes
および Excludes
オペレーションは OR’ed になります。つまり、ブランチが除外パターン (feature-branch
例など) と一致する場合、包含も一致しない限り、パイプラインはトリガーされません。main
ブランチの場合など、インクルードパターンが一致すると、パイプラインがトリガーされます。
{ "branches": { "Includes": [ "main" ], "Excludes": [ "feature-branch" ] }
JSON 構造内のフィールド定義のリストについては、「」を参照してくださいパイプラインでのトリガーフィルタリング JSON (CLI)。