如何解决如何使用条件中的作业之间传递的变量?
我正在Azure Azure中构建YAML管道。我在第一份工作中生成了几个变量,我将这些变量传递给其他工作,并希望使用它们有条件地运行一些步骤。
代码如下:
stages:
- stage: ConditionalVars
jobs:
- job: outputVars
steps:
- pwsh: |
Write-Host "##vso[task.setvariable variable=varExample;isOutput=true]testVar"
name: setVars
- job: useVars
dependsOn: outputVars
variables:
varFromJob: $[ dependencies.outputVars.outputs['setVars.varExample']]
steps:
- ${{ if eq($(varFromJob),'testVar')}}:
- pwsh: |
Write-Output "Conditionally run"
在工作useVars中,我可以逐步打印$(varFromJob)
变量。但是我无法在此if(条件)示例中使用它。
我正在尝试使用不同的方法,例如variables.varFromJob
和其他从https://docs.microsoft.com/en-us/azure/devops/pipelines/process/conditions?view=azure-devops&tabs=yaml获取的方法。
你们是否一直在努力解决类似的问题?我如何定义它才能使其正常工作?
非常感谢! 拉法尔
解决方法
尝试为condition
使用step
:
steps:
- pwsh: |
Write-Output "Conditionally run"
condition: eq(variables['varFromJob'],'testVar')
${{ if eq... }}
是编译时表达式,在编译YAML文件时会对其进行评估。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。