パイプライン トリガーのトラブルシューティング
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
パイプラインがまったく開始しない場合は、次のトリガーに関連する一般的な問題を調べます。
注意
実行が開始されない可能性があるその他の理由は、最後のユーザーが Azure DevOps からサインアウトしてから 5 分後に組織が休止状態になることです。 その後で、各ビルド パイプラインはもう 1 回実行されます。 たとえば、組織が休止状態の場合、次のようになります。
- 組織でのコードの夜間ビルドは、誰かが再びサインインするまで、1 晩だけ実行されます。
- 他の Git リポジトリの CI ビルドは、誰かが再びサインインするまで実行を停止します。
UI の設定が YAML のトリガー設定をオーバーライドしている
YAML パイプラインの trigger
と pr
のトリガー設定は、パイプライン設定 UI でオーバーライドされる可能性があります。 trigger
または pr
トリガーが起動しないと思われる場合は、その設定を調べます。 パイプラインの編集時に、[...] を選択し、[トリガー] を選択します。
リポジトリで使用できるトリガーの種類 ([継続的インテグレーション] または [pull request 検証]) に対する "ここから YAML トリガーをオーバーライドする" 設定を調べます。
pull request トリガーが Azure Repos でサポートされていない
pr
トリガーが起動せず、Azure Repos を使っている場合は、pr
トリガーは Azure Repos でサポートされていないためです。 Azure Repos Git では、pull request のビルド検証の実装にブランチ ポリシーが使われます。 詳しくは、pull request 検証のブランチ ポリシーに関する記事をご覧ください。
[暗黙的な YAML CI トリガー設定の無効化] が有効になっている
Note
この機能は、Azure DevOps Server 2022.2 以降で使用できます。
YAML パイプラインは、Azure DevOps スプリント 227 で導入された [暗黙的な YAML CI トリガー設定を無効化する] 設定が有効になっていない限り、すべてのブランチで CI トリガーを使用して既定で構成されます。 [暗黙的な YAML CI トリガーの無効化] 設定は、組織レベルまたはプロジェクト レベルで構成できます。既定では、この設定は有効になっていません。
パイプラインが既定の暗黙的な CI トリガーを使用し、それらが動作を停止する場合は、この設定をチェックします。 [暗黙的な YAML CI トリガーの無効化] 設定が有効になっているときに、YAML パイプラインに trigger
セクションがない場合、YAML パイプラインの CI トリガーは有効になりません。
CI トリガーと PR トリガーでブランチ フィルターが正しく構成されていない
YAML の PR または CI トリガーを定義するとき、ブランチとパスに対して include
句と exclude
句の両方を指定できます。 include
句がコミットの詳細と一致していることと、exclude
句がそれらを除外していないことを確認します。
YAML の PR または CI トリガーを定義するとき、ブランチ、タグ、パスに対して include
句と exclude
句の両方を指定できます。 include
句がコミットの詳細と一致していることと、exclude
句がそれらを除外していないことを確認します。 詳しくは、pr とトリガーに関する記事をご覧ください。
注意
include
句を指定せずに exclude
句を指定すると、include
句に *
を指定した場合と同じなります。
スケジュールされたトリガーのタイム ゾーンの変換
YAML のスケジュールされたトリガーは、UTC タイム ゾーンを使って設定されます。 スケジュールされたトリガーが適切なタイミングで起動していないように見える場合は、曜日の設定も考慮して、UTC とローカル タイム ゾーンの間の変換を確認してください。 詳細については、「スケジュールされたトリガー」を参照してください。
UI 設定によって YAML のスケジュール トリガーがオーバーライドされる
YAML パイプラインに YAML スケジュール トリガーと UI 定義のスケジュール トリガーの両方がある場合、UI 定義のスケジュール トリガーのみが実行されます。 YAML パイプラインで YAML 定義のスケジュール トリガーを実行するには、パイプライン設定 UI で定義されているスケジュール トリガーを削除する必要があります。
YAML パイプラインからパイプライン設定 UI にアクセスするには、パイプラインを編集し、[...] を選んでから [トリガー] を選びます。
すべてのスケジュール トリガーを削除します。
UI のスケジュールされたトリガーをすべて削除したら、YAML のスケジュールされたトリガーが実行を開始するために、プッシュを行う必要があります。 詳細については、「スケジュールされたトリガー」を参照してください。
さらにサポートが必要です。 バグを見つけました。 提案があります。 どこに行けばよいですか?
問題の報告またはフィードバックの送信は、Developer Community で行ってください。
皆様のご提案をお待ちしています。