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 分支?