Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022
パイプライン トリガーは、実行するタイミングをパイプラインに指示します。 トリガーは、スケジュールに基づいて、またはプル要求の作成などのイベントに応答してパイプラインを実行するように構成できます。 Azure Pipelinesでは、次の種類のトリガーがサポートされています。
- 継続的インテグレーション トリガー (CI トリガー) は、コードをブランチにプッシュするときにパイプラインを実行します。
- プル要求トリガー (PR トリガー) は、開いている PR のソース ブランチに PR またはプッシュ コードを発生させるとパイプラインを実行します。 GitHub リポジトリでは、開いている pull request にコメントを追加するときにパイプラインを実行するコメント トリガーがサポートされます。
- スケジュールされたトリガーは、定義済みのスケジュールでパイプラインを実行します。
- パイプライン完了トリガーは、別のパイプラインが完了したときにパイプラインを実行します。
この記事では、 YAML パイプライン トリガーと クラシック ビルド パイプライン トリガーの概要について説明します。 クラシック リリース パイプラインには、 前の一覧で説明した同様のバージョンのトリガーがあります。 詳細については、「 クラシック リリース パイプライン トリガー」を参照してください。
CI のトリガー
CI トリガーは、トリガーによって定義された条件を満たすブランチにプッシュが行われるときにパイプラインを実行します。
trigger キーワードを使用して CI トリガーを構成します。 たとえば、 main ブランチにプッシュが行われたときにパイプラインを実行するには、次のトリガーを指定します。
trigger:
- main
パイプラインを明示的に構成しない場合、暗黙的な CI トリガーを無効にするか、UI 設定が YAML トリガーをオーバーライドしない限り、すべてのブランチで CI トリガーが既定で有効になります。
パイプラインを明示的に構成しない場合、暗黙的な CI トリガーを無効にするか、UI 設定が YAML トリガーをオーバーライドしない限り、すべてのブランチで CI トリガーが既定で有効になります。
注
暗黙的な CI トリガーを無効にする は、Azure DevOps Server 2022.2 以降でのみ使用できます。 Azure DevOps Server 2022 および 2022.1 では、明示的に構成されていない場合、CI トリガーは既定で有効になります。
パイプラインで CI トリガーを無効にするには、次の構文を使用します。
trigger: none
YAML パイプラインでは、次のリポジトリの種類の CI トリガーがサポートされます。 特定のリポジトリの種類で CI トリガーを使用する方法の詳細については、次の記事を参照してください。
- Azure Repos Git の CI トリガー
- GitHub の CI トリガー
- GitHub Enterprise Server の CI のトリガー
- Bitbucket Cloud の CI トリガー
CI トリガーで使用できる完全な YAML トリガーの構文とオプションについては、 トリガー定義を参照してください。
重要
Git のパスでは、CI および PR トリガー パス フィルターなど、大文字と小文字が区別されます。
PR トリガー
プル要求 (PR) トリガーでは、プル要求を開くたびに、またはプル要求のソース ブランチに変更をプッシュするたびに、パイプラインが実行されます。 PR トリガーを構成するには、 pr キーワードを使用します。 たとえば、main ブランチに対して PR が作成されたときにパイプラインを実行するには、次のトリガーを指定します。
pr:
- main
パイプラインで PR トリガーを明示的に構成しない場合、 UI 設定が YAML トリガーをオーバーライドしない限り、既定で有効になります。 任意のブランチに要求をプルすると、パイプラインの実行がトリガーされます。 パイプラインで PR トリガーを無効にするには、次の構文を使用します。
pr: none
YAML PR トリガーは、GitHubおよび Bitbucket Cloud でサポートされています。 これらの種類のリポジトリで PR トリガーを使用する方法の詳細については、GitHub の
Azure Repos Git はブランチ ポリシーを使用して PR トリガーを実装します。 詳細については、Azure Repos Git の PR トリガーを参照してください。
コメントのトリガー
コメント トリガーを使用すると、コントリビューターが /azp run のようなプル リクエスト コマンドを含むプル リクエスト コメントを作成したときに、パイプラインが実行されるように構成できます。 コメント トリガーは、GitHub リポジトリでのみサポートされます。 詳細については、「GitHub リポジトリのコメント トリガーを参照してください。
スケジュールされたトリガー
スケジュールされたトリガーは、定義済みのスケジュールでパイプラインを実行します。 YAML パイプラインをサポートするすべてのリポジトリの種類は、YAML パイプライン のスケジュールされたトリガーをサポートします。 これらのリポジトリの種類には、Git、GitHub、GitHub Enterprise Server、Bitbucket Cloud Azure Reposが含まれます。
YAML でスケジュールされたトリガーを定義するには、 schedules キーワードを使用し、cron 構文を使用してスケジュールを定義します。 次の例では、毎日午前 0 時に実行されるスケジュールを構成します。
# YAML file in the main branch
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- main
詳細と例については、「 スケジュールされたトリガー、 スケジュール定義、 schedules.cron 定義」を参照してください。
パイプラインの完了時トリガー
YAML パイプラインのパイプライン トリガーとクラシック ビルド パイプラインのビルド完了トリガーを使用すると、別のパイプラインの完了時に 1 つのパイプラインをトリガーできます。
ソース パイプラインの実行が完了したときにパイプラインの実行を開始するように、パイプラインにパイプライン リソース トリガーを設定します。
resources:
pipelines:
- pipeline: sourcePipelineResource # Label for this pipeline resource; used when referring to it elsewhere in the pipeline.
source: source-pipeline # The name of the pipeline referenced by this pipeline resource.
project: FabrikamProject # Required only if the source pipeline is in another project
trigger: true # Run this pipeline when any run of source-pipeline completes
パイプラインに複数のパイプライン リソースを追加できます。 任意のバージョンのソース パイプラインが完了したときに実行されるようにトリガーを構成することも、特定のブランチに制限することもできます。
詳細と例については、「 パイプライン完了トリガー」を参照してください。
完全な構文とトリガーのオプションについては、 resources.pipelines.pipeline の定義に関するページを参照してください。
YAML パイプラインでのトリガーに関するブランチの考慮事項
YAML パイプラインでは、異なるブランチで異なるバージョンのパイプラインを保持できが、これは評価されるパイプラインのトリガーのバージョンと、実行するパイプラインのバージョンに影響を与える可能性があります。
| トリガーの種類 | パイプライン YAML バージョン |
|---|---|
CI トリガー (trigger) |
プッシュされたブランチ内のパイプラインのバージョンが使用されます。 |
PR トリガー (pr) |
プル リクエストのソース ブランチにあるパイプラインのバージョンが使用されます。 |
| GitHub プル リクエスト コメント トリガー | プル リクエストのソース ブランチにあるパイプラインのバージョンが使用されます。 |
| スケジュールされたトリガー | 「スケジュールされたトリガーに関するブランチの考慮事項」を参照してください。 |
| パイプライン完了時のトリガー | パイプライン完了トリガーのブランチに関する考慮事項を参照してください。 |
クラシック リリース パイプライン
継続的デプロイ トリガーは、クラシック ビルドまたは YAML パイプラインの完了後にクラシック リリースを開始するのに役立ちます。
スケジュールされたリリース トリガーを使用すると、スケジュールに従ってリリース パイプラインを実行できます。
pull request リリース トリガーは、クラシック リリースを使用して pull request を直接デプロイするために使用されます。
クラシック リリースのステージ トリガーは、クラシック リリースの各ステージのトリガー方法を構成するために使用されます。