Как условно запустить задание агента сборки с переменной конвейера? - PullRequest
0 голосов
/ 19 декабря 2018

В конвейерах Azure DevOps есть возможность условно запустить задачу на основе переменной конвейера.Это обрабатывается в поле Запустить задачу > Пользовательские условия и используется следующий синтаксис:

eq(variables['VarName'], 'Desired Value')

задание агента имеетаналогичное поле для условного выполнения в Запустить это задание > Пользовательское условие с использованием выражений переменных .

Однако, когда я использую тот же синтаксис, что и условная задача, результат всегда оцениваетсяto 'false' .

Так как я могу условно запустить агентское задание ?

Снимки экрана:

enter image description here enter image description here enter image description here enter image description here enter image description here

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Как-то так у меня сработало:

- job: Job1
  steps:
  - powershell: |
      if (some condition)
      {
          Write-Host ("##vso[task.setvariable variable=RunJob2;isOutput=true]True")
      }

    name: ScriptStep
- job: Job2
  dependsOn: Create_Build_Matrix
  condition: and(succeeded(), eq(dependencies.Job1.outputs['ScriptStep.RunJob2'], 'True'))
0 голосов
/ 20 декабря 2018

Я обнаружил ответ.К сожалению, невозможно условно запустить задание агента с переменной, которая была изменена во время выполнения сборки.

Из документации по конвейеру Azure DevOps в разделе Переменные конвейера:

Чтобы определить или изменить переменную из скрипта, используйте команду ведения журнала task.setvariable. Обратите внимание, что обновленное значение переменной относится к выполняемому заданию, а не распространяется на задания или этапы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...