Используйте
Write-Output "##vso[task.setvariable variable=testvar;isOutput=true;]testvalue"
Затем обратитесь к выходной переменной, как если бы она существовала в будущей задаче.
$(taskreference.testvariable)
Имя ссылки на задачу можно задать в разделе вывода задачи сценария powershell:
Но похоже, что перекрестные ссылки еще не доступны, когда я читаю документы:
TODO
Я не уверен, как мы собираемся генерировать имя ссылки на вакансию, поскольку у нас нет цепочки заданий на данный момент.
Это должно быть что-то вроде:
{DefinitionName}_{JobName}
См .: Azure-Pipelines-Agent / docs / Outputvariable.md
Таким образом, на данный момент переменная будет работать только внутри одного и того же задания.
Похоже, сборка YAML уже поддерживает перекрестные ссылки на выходные переменные .
работа:
# Set an output variable from job A
- job: A
pool:
vmImage: 'vs2017-win2016'
steps:
- powershell: echo "##vso[task.setvariable variable=myOutputVar;isOutput=true]this is the value"
name: setvarStep
- script: echo $(setvarStep.myOutputVar)
name: echovar
# Map the variable into job B
- job: B
dependsOn: A
pool:
vmImage: 'ubuntu-16.04'
variables:
myVarFromJobA: $[ dependencies.A.outputs['setvarStep.myOutputVar'] ] # map in the variable
# remember, expressions require single quotes
steps:
- script: echo $(myVarFromJobA)
name: echovar