Как я могу использовать переменные, передаваемые между заданиями в условии?
Я создаю конвейер YAML в Azure DevOps. Я создаю пару переменных в первом задании, которые передаю другому заданию и хочу использовать их для условного выполнения некоторых шагов.
Вот как выглядит код:
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"
Я могу печатать $(varFromJob)
переменная шага в использовании задания Но я не могу использовать его в этом примере if (condition).
Я пробовал разные подходы, например variables.varFromJob
и другие взяты из https://docs.microsoft.com/en-us/azure/devops/pipelines/process/conditions?view=azure-devops&tabs=yaml.
Вы, ребята, боролись с подобной проблемой? Как я могу определить его, чтобы он работал?
Большое спасибо! Рафаль
1 ответ
Попробуйте использовать condition
для step
:
steps:
- pwsh: |
Write-Output "Conditionally run"
condition: eq(variables['varFromJob'], 'testVar')
${{ if eq... }}
- это выражение времени компиляции, которое вычисляется при компиляции файла YAML.