Azure DevOps具有一项功能(记录在here中),可以在另一个管道完成时触发管道。 这在测试组织中可以正常工作,但在我们的主要组织中则无法使用。 在组织,项目,存储库甚至分支级别上可能都有某些内容,但是我目前仍然受困,将不胜感激!
管道Pipeline B
完成后,管道Pipeline A
应该自动运行。
pipeline-a.yaml
的文件Pipeline A
:
pool:
vmImage: 'ubuntu-latest'
steps:
- script: echo Hello, world!
displayName: 'Do something'
pipeline-b.yaml
的文件Pipeline B
:
trigger: none
pool:
vmImage: 'ubuntu-latest'
resources:
pipelines:
- pipeline: pipeline-a
source: 'Pipeline A'
branch: master
trigger:
branches:
- master
steps:
- script: echo Hello, world!
displayName: 'Do something'
在我的测试组织中,上述管道运行得很不错。这意味着Pipeline A
在提交时运行,完成后Pipeline B
自动运行。
在我们的生产组织中,Pipeline B
不会自动运行。
答案 0 :(得分:3)
删除并重新添加管道可以解决问题。因此,保留YAML文件,但删除管道并再次添加。
Azure DevOps后端似乎时不时丢失管道之间的关系。
答案 1 :(得分:0)
我们今天解决了类似的问题。将Pipeline-A
定义为Pipeline-B
会消耗的资源。
消耗管道从未被触发。删除和重新创建管道对我们不起作用。该工作\管道是全新的,位于功能分支上。最终变得很重要。
最终的解决方法是将功能分支定义为Default branch for manual and scheduled builds
中的Pipeline-B
。您可以在Pipeline -> Edit -> triggers -> yaml-> Get Sources
中找到该设置。期望在将此代码升级到main分支时,我们需要更新设置。
因此,似乎用于手动和计划构建的默认分支会更好地命名
用于手动和计划构建以及管道完成触发器的默认分支