Я использую Azure конвейер DevOps для развертывания моего кода, и теперь мне нужно передать значение переменной из задания развертывания в последующее, зависящее от него. Я прочитал этот пример , но, похоже, он вообще не работает.
Я пытаюсь запустить Azure ARM Deployment, в котором предусмотрено хранилище ключей. , Имя хранилища ключей выводится из задания развертывания ARM, и затем я пытаюсь передать это имя другому заданию, которому необходимо добавить определенные c секреты. Контроль доступа позаботился, но мне все еще нужно передать имя.
Я свел проблему к основам передачи переменной от deployment
до job
. Вот мой полный тестовый конвейер (почти полностью скопированный с здесь ):
trigger: none
stages:
- stage: X
jobs:
- deployment: A
pool:
vmImage: "ubuntu-16.04"
environment: test
strategy:
runOnce:
deploy:
steps:
- script: echo "##vso[task.setvariable variable=myOutputVar;isOutput=true]this is the deployment variable value"
name: setvarStep
- script: echo $(setvarStep.myOutputVar)
name: echovar
- job: B
dependsOn: A
pool:
vmImage: "ubuntu-16.04"
variables:
myVarFromDeploymentJob: $[ dependencies.A.outputs['deploy.setvarStep.myOutputVar'] ]
steps:
- script: "echo $(myVarFromDeploymentJob)"
name: echovar
После того, как я запустил это, значение отклика будет пустым в задании B
, но определено в развертывании A
. Почему это? И есть ли способ подсчитать все в dependencies.A.outputs
, чтобы я мог видеть, с чем мне приходится работать?
Как передать переменную из задания развертывания runOnce
в обычное задание?