要件
したがって、Azure DevOpsには、パイプラインが他のパイプラインをトリガーできるようにするいくつかの新しい機能があり、ここに記載されています。 https://docs.Microsoft.com/en-us/Azure/devops/pipelines/build/triggers? view = Azure-devops&tabs = yaml#pipeline-triggers-1 必要な動作が得られないという事実は別として、すばらしいですね。同じリポジトリに2つのパイプラインが必要です。
パイプラインA構文
resources:
pipelines:
- pipeline: database
source: database
trigger:
branches:
- develop
- release/*
# The stages filter should work, according to: https://docs.Microsoft.com/en-us/Azure/devops/pipelines/build/triggers?view=Azure-devops&tabs=yaml
# However, this error occurs when specifying: /Azure-pipelines.yml (Line: 8, Col: 15): Stage filters in pipeline resource database is not supported.
#stages:
#- Build
- pipeline: auth
source: auth
trigger:
branches:
- develop
- release/*
- pipeline: api
source: api
trigger:
branches:
- develop
- release/*
- pipeline: web
source: web
trigger:
branches:
- develop
- release/*
... multiple triggers - 9 in total
stages:
...
現在の動作
パイプラインAは、他のパイプラインによってトリガーされるのではなく、自身のリポジトリへの変更によってのみトリガーされます。それはとにかくそれ自身のリポジトリに変更を加えるので、それは無限ループでそれ自身を引き起こします。
質問/コメント
発見
trigger: none
を追加すると、リポジトリにコミットが行われたときにパイプラインAが実行されなくなり、現在はまったく実行されません。az pipelines run --branch master --name "<PipelineName>" --org "https://dev.Azure.com/<OrganisationName>" -p "<ProjectName>"
トリガーパイプラインからアーティファクトを公開しない場合、トリガーされたパイプラインはトリガーされません。これが機能する最小限の実行可能な製品を作成し、このプロセスをこの answer で説明しました。