Я пытался определить переменную в ловушке жизненного цикла в задании развертывания, чтобы затем получить доступ к этой переменной в более поздней ловушке жизненного цикла. Документация по заданиям на развертывание ссылается на возможность сделать это, но не предлагает реальных примеров этого случая (выделение выделено):
Определение выходных переменных в обработчиках жизненного цикла задания развертывания и использовать их в других последующих шагах и заданиях на том же этапе.
Пример конвейера, с которым я работал:
stages:
- stage: Pipeline
jobs:
- deployment: Deploy
environment: 'testing'
strategy:
runOnce:
preDeploy:
steps:
- bash: |
echo "##vso[task.setvariable variable=myLocalVar;isOutput=false]local variable"
name: setvarStep
- bash: |
echo "##vso[task.setvariable variable=myOutputVar;isOutput=true]output variable"
name: outvarStep
- bash: |
echo 'Both $(myLocalVar) and $(outvarStep.myOutputVar) are available here'
echo "Both $(myLocalVar) and $(outvarStep.myOutputVar) are available here"
deploy:
steps:
- bash: |
echo 'Neither $(myLocalVar) nor $(outvarStep.myOutputVar) are available here'
echo "Neither $(myLocalVar) nor $(outvarStep.myOutputVar) are available here"
У меня есть пробовал любое количество опций, но ничего из того, что я сделал, похоже, не позволяет этому на самом деле работать - вывод задачи bash в ловушке жизненного цикла развертывания:
Neither nor are available here
- Я пытался связать переменные с задачей bash через вход
env:
, используя оба синтаксиса макроса (например, $(myOutputVar)
и синтаксис выражения времени выполнения, надеясь, что, возможно, найдется скрытая зависимость ( например, $[ dependencies.Deploy.outputs['preDeploy.outVarStep.myOutputVar'] ]
, и многие, многие другие синтаксисы) - Я попытался определить переменные на уровне задания, надеясь, что они будут обновлены с помощью первой
preDeploy
ловушки жизненного цикла и доступны для deploy
LifeC ycle hook. - Я пытался отобразить переменные через синтаксис выражений времени выполнения
- Многие другие комбинации синтаксиса, надеясь наткнуться на фактический ответ
Но все безрезультатно. Я, вероятно, прибегну к хаку загрузки переменной в качестве артефакта и ее загрузки позже, но очень хотел бы найти решение этой проблемы. Кто-нибудь смог сделать это? Большое спасибо заранее.