Azure DevOps. Справочные параметры конвейера в PowerShell - PullRequest
0 голосов
/ 24 марта 2020

Я хотел бы сослаться на пользователя, который запустил конвейер и указать, что предыдущая заданная c задача в многоступенчатом конвейере была успешно выполнена или нет в скрипте PowerShell. Как я могу это сделать? Что-то вроде:

Write-Host $env:UserThatRanPipeline $env:Task:BuildApp1:SuccessOrFail

Итак, я получу вывод:

John Smith Success

1 Ответ

1 голос
/ 24 марта 2020

Я хотел бы сослаться на пользователя, который запустил конвейер и указать, что предыдущая заданная задача c в многоступенчатом конвейере успешно выполнена или нет в скрипте PowerShell.

1.Только как Шайки Абрамчик предлагает выше, вы можете использовать Build.RequestedFor для вывода пользователя, который запускает конвейер. Смотрите предопределенные переменные , вы можете использовать что-то вроде: Write-Host $(Build.RequestedFor)

2.Для получения статуса вашей задачи AzureRmWebAppDeployment@4, на данный момент нет предопределенной переменной, доступной для выполнения этой работы. Таким образом, вы должны сделать это с некоторыми логиками c ...

В качестве обходного пути:

Вы можете установить одну переменную SuccessOrFail: 'Succeed' следующим образом в yml:

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'
  SuccessOrFail: 'Succeed' 

А затем добавьте одну задачу powershell сразу после вашей задачи AzureRmWebAppDeployment@4:

- task: PowerShell@2
  condition: failed()
  inputs:
    targetType: 'inline'
    script: |
      # This script will run only when any previous task failed

      echo "##vso[task.setvariable variable=SuccessOrFail]Fail"

3. Убедитесь, что для вашей задачи AzureRmWebAppDeployment@4 не задано пользовательское условие. Как я знаю, эта задача не является независимой, поэтому она будет выполняться при успешном выполнении всех предыдущих задач.

Подводя итог:

Этот сценарий ps будет запускаться, когда задача AzureRmWebAppDeployment@4 не выполнена или пропущена, и сбросит значение SuccessOrFail на Fail. Поэтому, если ваш AzureRmWebAppDeployment@4 успешен, значение $(SuccessOrFail) равно Succeed, в случае сбоя или пропуска значение будет Fail.

Теперь значение Succeed представляет задачу, безусловно, должна успешно, и если значение Fail, оно фактически представляет вашу задачу NotSucceed (Fail + Skip).

Порядок ваших задач должен быть: other tasks =>AzureRmWebAppDeployment@4=> PS task above=> other tasks => Your own Powershell Task.

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