Azure DevOps 存储库触发器未触发
Azure DevOps repository trigger not firing
我希望在对同一 Azure 项目中的另一个存储库进行提交后,一个存储库的管道 运行。
我的管道定义:
resources:
repositories:
- repository: SupDevA
name: Sup.Dev.A
type: git
ref: test
trigger:
branches:
include:
- test
steps:
- script: 'echo test'
- template: dummy-template.yml@SupDevA
parameters:
text: 'testing if the dummy templates is executed'
Sup.Dev.A 是在分支 test
上进行提交时应触发我的管道的存储库的名称。但是当我在分支测试上创建提交时,触发器不会触发。
两个存储库在同一个项目中
我错过了什么吗?该代码基于 ms 文档 https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/multi-repo-checkout?view=azure-devops#triggers
编辑:
添加了 -template 部分,很明显,当手动触发时,管道会成功地从资源存储库执行模板
我认为 ref: test
可能会混淆它。
我会尝试删除 ref: test
,因为触发器分支包含应该处理它。如果确实需要它,我会将其更改为 ref: 'refs/heads/test'
.
这实际上更像是评论而不是答案,所以如果这没有帮助,我会在之后删除它。
这对我有用;
trigger: none
resources:
pipelines:
- pipeline: 'HmiTpm-Ci'
source: HmiTpm-Ci
trigger:
branches:
- master
- features/*
- pipeline: 'HmiTpm-Release'
source: HmiTpm-Release
trigger:
branches:
- master
- features/*
...
如果我查看您的脚本,我没有看到 source
已定义 - 您可以尝试定义它吗?
就我而言,我没有使用模板 - 所以这可能是问题所在。
你的样本对我来说效果很好。
# Repo: test
# File: azure-pipelines.yml
resources:
repositories:
- repository: SupDevA
name: Sup.Dev.A
type: git
ref: test
trigger:
branches:
include:
- test
steps:
- script: 'echo test'
- template: dummy-template.yml@SupDevA
parameters:
text: 'testing if the dummy templates is executed'
# Repo: Sup.Dev.A
# File: dummy-template.yml
parameters:
- name: text
default: ''
type: string
steps:
- script: echo ${{ parameters.text }}
你的yaml是正确的,我建议你可以删除repo并重新创建一个新的。此外,请检查您是否覆盖了 CI 触发器。
顺便也可以参考this document.
既然@walter-qian-msft 成功地重现了它,它一定是管道位置与触发器混淆的东西。
因为他可能在默认分支上测试了这个,你是否尝试将你的 YAML 文件合并到 master
/main
分支?
我希望在对同一 Azure 项目中的另一个存储库进行提交后,一个存储库的管道 运行。
我的管道定义:
resources:
repositories:
- repository: SupDevA
name: Sup.Dev.A
type: git
ref: test
trigger:
branches:
include:
- test
steps:
- script: 'echo test'
- template: dummy-template.yml@SupDevA
parameters:
text: 'testing if the dummy templates is executed'
Sup.Dev.A 是在分支 test
上进行提交时应触发我的管道的存储库的名称。但是当我在分支测试上创建提交时,触发器不会触发。
两个存储库在同一个项目中 我错过了什么吗?该代码基于 ms 文档 https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/multi-repo-checkout?view=azure-devops#triggers
编辑: 添加了 -template 部分,很明显,当手动触发时,管道会成功地从资源存储库执行模板
我认为 ref: test
可能会混淆它。
我会尝试删除 ref: test
,因为触发器分支包含应该处理它。如果确实需要它,我会将其更改为 ref: 'refs/heads/test'
.
这实际上更像是评论而不是答案,所以如果这没有帮助,我会在之后删除它。 这对我有用;
trigger: none
resources:
pipelines:
- pipeline: 'HmiTpm-Ci'
source: HmiTpm-Ci
trigger:
branches:
- master
- features/*
- pipeline: 'HmiTpm-Release'
source: HmiTpm-Release
trigger:
branches:
- master
- features/*
...
如果我查看您的脚本,我没有看到 source
已定义 - 您可以尝试定义它吗?
就我而言,我没有使用模板 - 所以这可能是问题所在。
你的样本对我来说效果很好。
# Repo: test
# File: azure-pipelines.yml
resources:
repositories:
- repository: SupDevA
name: Sup.Dev.A
type: git
ref: test
trigger:
branches:
include:
- test
steps:
- script: 'echo test'
- template: dummy-template.yml@SupDevA
parameters:
text: 'testing if the dummy templates is executed'
# Repo: Sup.Dev.A
# File: dummy-template.yml
parameters:
- name: text
default: ''
type: string
steps:
- script: echo ${{ parameters.text }}
你的yaml是正确的,我建议你可以删除repo并重新创建一个新的。此外,请检查您是否覆盖了 CI 触发器。
顺便也可以参考this document.
既然@walter-qian-msft 成功地重现了它,它一定是管道位置与触发器混淆的东西。
因为他可能在默认分支上测试了这个,你是否尝试将你的 YAML 文件合并到 master
/main
分支?