推入标签时触发多个构建管道

问题描述

我在Azure DevOps中为存储库中的不同分支创建了多个生成管道。 我的意图是在推送特定标签时触发每个管道。 标签的结构对于每个管道都是唯一的。 例子:

--MyRepository
 |
 --master
 |
 --ops
 |
 --dev
 |
 --qa

针对dev,ops和qa的构建管道:

    按下dev时应触发
  • dev-v*
  • 按下ops时应触发
  • ops-v*
  • 按下qa时应触发
  • qa-v*

这是我的yaml文件的外观(其他管道类似):

trigger:
  branches:
    include:
      - refs/tags/ops-v*
    exclude:
      - refs/tags/qa*
      - refs/tags/dev*
stages:
- stage: Init
  jobs:
  - job: CheckoutInit
    steps:
    - checkout: self
    - script: *do something*

现在,当我推送说 dev-v1.0.0 时,会发生所有事件,尽管只有dev管道应该启动。我在做错什么还是我忽略了什么? 任何帮助是极大的赞赏。干杯! 注意:使用Azure Devops是我的新手。

解决方法

根据我的测试,您的Yaml触发器可能是正确的。

当yaml文件在每个分支中具有相同的名称时,我可以重现类似的问题。

例如:

--MyRepository
 |
 --master
 |
 --ops
   -- azure-pipelines.yml
 |
 --dev
   -- azure-pipelines.yml
 |
 --qa
  -- azure-pipelines.yml

因此您可以检查yaml文件是否具有相同的名称。

要解决此问题,您可以更改每个Yaml文件名,并确保它们唯一。

--MyRepository
 |
 --master
 |
 --ops
   -- azure-pipelines-ops.yml
 |
 --dev
   -- azure-pipelines-dev.yml
 |
 --qa
  -- azure-pipelines-qa.yml

然后,您需要再次使用yaml文件(新名称)创建新管道。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...