我正在尝试使用powershell根据触发的分支设置BuildConfiguration
有人知道该怎么做吗?
switch($env:Build.SourceBranchName) {
'master' {$env:BuildConfiguration = Release; break;}
'staging' {$env:BuildConfiguration = Staging; break;}
'develop' {$env:BuildConfiguration = Dev; break;}
}
答案 0 :(得分:5)
您可以在 yaml 管道的顶部设置变量并随意使用它们。
variables:
${{ if eq(variables['Build.SourceBranchName'], 'main') }}:
deployTarget: prod
${{ if eq(variables['Build.SourceBranchName'], 'develop') }}:
deployTarget: dev
并使用:
- task: CmdLine@2
displayName: Display deployment
inputs:
script: |
echo '${{ variables.deployTarget }}'
答案 1 :(得分:4)
最终与之合作
switch(${env:BUILD_SOURCEBRANCH}) {
'refs/heads/master' {Write-Host "##vso[task.setvariable variable=BuildConfiguration]Release"; }
'refs/heads/staging' {Write-Host "##vso[task.setvariable variable=BuildConfiguration]Staging"; }
'refs/heads/develop' {Write-Host "##vso[task.setvariable variable=BuildConfiguration]Dev"; }
}
答案 2 :(得分:1)
是的,很高兴您能够弄清楚!
还要注意,相同的task.setvariable
命令可以帮助设置变量,以供稍后在管道中的一个或多个后续步骤使用。有关示例,请参阅this文档。这些功能偶尔会派上用场。
其他阅读内容: Variable group是另一项有趣的功能,它可以存储跨管道可用的值。