【发布时间】:2021-01-15 16:35:15
【问题描述】:
我有一个 Azure DevOps 管道 (Pipeline1),它应该在另一个 (Pipeline2) 完成时触发。为此,我已经实现了文档中描述的管道资源-
但是,它根本不起作用。实际上 Pipeline2 将在创建或手动创建新 PR 时触发。我已经测试过创建新 PR,更新 PR 多次,手动运行几次,但无论我做什么 Pipeline1 都不会触发。
我尝试了 YAML 架构参考中定义的两个示例,并进一步阅读了 Trigger one pipeline after another 文档,我尝试在所有分支通配符前面加上 refs/heads/。
我必须怎么做才能让它工作?
我尝试过的
没有明确定义任何branchs -
resources:
pipelines:
- pipeline: pipeline2
source: Pipeline2
trigger: true
明确定义所有branches -
resources:
pipelines:
- pipeline: pipeline2
source: Pipeline2
trigger:
branches:
- "*"
在所有branches 通配符前加上refs/heads/ -
resources:
pipelines:
- pipeline: pipeline2
source: Pipeline2
trigger:
branches:
- refs/heads/*
更新
很遗憾,pipelines 资源似乎不适用于 PR。为什么会这样,我不能告诉你。
经过进一步调查,我在 sprint 更新中偶然发现了 Incoming Webhook Service Connection。此更新来自六个月前,在撰写本文时尚未向 YAML schema reference 添加任何内容。
然而,事实证明,这个功能只是doesn't work 句号,即使这样做了,它看起来也只会触发管道的默认分支,这对我们没有好处(可能对大多数人也没有好处)用例)。
我最终确实找到了一年前的一些 documentation on GitHub,但不幸的是,这似乎只是证实了 Incoming Webhook Service Connection 在这种情况下对我们没有用处。
【问题讨论】:
-
嗨@DavidGard,如何通过经典编辑器设置“构建完成”触发器?有用吗?
-
不知道,恐怕我不会尝试。我们过去在混合经典和 YAML 时遇到过问题,所以我不想在这种情况下冒险。
-
好的,@DavidGard。如果您只想在 YAML 文件中配置管道定义,则应确保已禁用或删除您通过经典编辑器设置的设置。
-
@DavidGard 是否有机会在两个存储库中对此进行了测试。我确实有完全相同的问题,似乎无法让它工作。据我所知,两个存储库中的所有默认分支都正确设置。此外,我确实在要触发的管道上遇到了触发器配置错误,但没有任何进一步的信息。
标签: azure-devops