问题描述
在创建管道时,我想为特定分支启用批处理,而不是为其他分支启用批处理,是否有办法在 microsoft azure 管道中这样做?
如果我启用 batch:true
它会在所有分支上运行,如果我删除它,它对任何分支都不起作用
我喜欢
trigger:
batch: true
branches:
include:
- master
- A*
- B*
- C*
- D*
- TEST
- Develop
我不想只对 master
分支进行批处理,但希望对其他分支进行批处理,这可以在不创建单独的管道 yml 的情况下实现吗?仅在同一管道中启用 batch:true
吗?
解决方法
在 Azure DevOps 服务中,yaml 构建只是为当前分支触发和批处理。
例如:
如果我们在 master 分支中创建 YAML build,它会在 master 分支中创建 azure-pipelines.yml
文件。编辑 YAML 构建定义,例如:
trigger:
batch: true
branches:
include:
- master
- TEST
切换到TEST分支并编辑azure-pipelines.yml
文件,例如:
trigger:
batch: true
branches:
include:
- master
然后在 TEST 分支中推送代码,它不会触发构建并将新构建排队。
我想为特定分支启用批处理,而不是为其他分支启用批处理,
作为一种变通方法,我们可以切换分支、编辑 YAML 文件并为特定分支启用批处理。这不会影响其他分支。
注意:由于不同分支的文件不同,我们创建PR时文件azure-pipelines.yml会发生冲突
更新
感谢@Hiteshdua1 的分享。
解决方案是创建不同的 yaml 构建定义,然后我们可以为特定分支启用批处理,而不是为其他分支启用批处理。