Передать выходную переменную на разные этапы - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть конвейер в Azure DevOps, который по сути выглядит следующим образом

stage: BuildStage
   job: SetUp
   job: Compile
stage: DeployStage
   job: Deploy

В задании SetUp я определяю выходную переменную, которую я могу определить в задании Compile, используя, например,

variables:
   MyVariableFromSetUp: $[ dependencies.SetUp.outputs['MyVariable'] ]

Вопрос в том, как я могу сделать то же самое в задании на развертывание? Я не хочу запускать этап SetUp дважды, поскольку для вычисления значения MyVariable требуется много времени, поэтому я должен его кешировать.

У DeployStage есть зависимость от BuildStage, но, похоже, я не могу использовать dependencies как я и ожидал. В документации не упоминается многоэтапный случай при работе с переменными.

1 Ответ

1 голос
/ 09 апреля 2020

Эй, в настоящее время нет прямого способа сделать это, основываясь на том, что я нашел, вы будете следовать одному из следующих 3 методов

  1. Передавая его как значение артефакта, используя это метод https://medium.com/microsoftazure/how-to-pass-variables-in-azure-pipelines-yaml-tasks-5c81c5d31763

  2. Передача его через конечную точку API с использованием модуля powershell VSTeam https://www.donovanbrown.com/post/Passing-variables-from-stage-to-stage-in-Azure-DevOps-release, аналогичный метод также можно найти здесь https://stefanstranger.github.io/2019/06/26/PassingVariablesfromStagetoStage/

...