我在“ develop”分支中有一个azure-pipelines.yml,配置为在每次构建后触发CI / CD。但是对于“发布”分支,我希望拥有具有不同流程的不同管道。 如何区分不同环境下管道中的不同流量?
这是我文件的开头。
trigger:
- develop
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
答案 0 :(得分:1)
这些软件包应适合于部署到包括生产在内的任何环境。不要配置分支或构建,以使每个环境都是单独构建的。 -用于Azure的.NET DevOps,作者是Jeffrey Palermo
据我了解,他们建议制作一个程序包并将同一程序包部署到不同的环境。
答案 1 :(得分:0)
取决于您要确切执行的操作,可以使用条件:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
# obviously you'd need to put conditions on all the steps
或者您可以创建一个完全不同的管道,并仅在master上触发该触发器。
我认为这也会起作用:
steps:
- ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/master') }}:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
- powershell: 'get-process'
这样,您可以将多个任务放在同一if
下。