我在 Azure DevOps 中创建了名为 mytrigger.yaml 的简单管道,其名称为 mytrigger。
trigger:
branches:
include:
- test/pipeline
pool:
vmImage: ubuntu-latest
steps:
- script: echo Hello, world!
displayName: 'Run a one-line script'
- script: |
echo Add other tasks to build, test, and deploy your project.
echo See https://aka.ms/yaml
displayName: 'Run a multi-line script'
第二个名为 bytrigger.yaml,在 Azure DevOps 中的名称为 bytrigger。
pool:
vmImage: ubuntu-latest
resources:
pipelines:
- pipeline: mySourcePipeline
source: 'mytrigger'
trigger:
branches:
include:
- test/pipeline
steps:
- script: |
echo Add other tasks to build, test, and deploy your project.
echo See https://aka.ms/yaml
displayName: 'Run a multi-line script'
我尝试了 yaml 和经典模式方法来完成该任务,但是在这两种情况下,当我运行 mytrigger 管道并返回到 Azure DevOps 上的管道部分时,我没有看到触发管道在 mytrigger 成功完成后开始工作。
正如您所看到的,两者都在测试/管道分支中。
两个管道独立工作,所以我的期望是通过 mytrigger 管道触发 bytrigger 管道。如何修复它?
除此之外,我想知道它将如何在 Azure DevOps 上显示。我的意思是,当我单击 mytrigger 管道时,不会提及第二个管道,是吗?如果我想查看完整的工作流程,它也可以配置吗?
我可以用你的 yaml 重现相同的内容。
这是因为该
Default branch for manual and scheduled builds
设置不是管道test/pipeline
上的分支。bytrigger
要解决此问题,请编辑
bytrigger
管道 -> 单击垂直 3 个点 -> 触发器 -> YAML 选项卡 -> 获取源 -> 将Default branch for manual and scheduled builds
设置修复为test/pipeline
分支。另外,在
bytrigger
pipeline上,建议trigger: none
在顶部添加排除CI触发器。管道资源触发器的工作原理:
您可以在文档分支注意事项上找到更多详细信息:
是的,如果您单击 mytrigger 管道,则不会提及 bytrigger 管道。如果触发器设置正确,第一个管道完成后,第二个管道将开始运行。您可以
Automatically triggered by <sourcepipeline>
在结果页面中找到触发信息: