Azure - пользовательское условие в трубопроводе на основе YAML - PullRequest
1 голос
/ 06 апреля 2020

У меня есть основанный на yaml azure конвейер CI / CT. У меня есть задача, определенная ниже:

- task: PublishTestResults@2
  displayName: 'Publish PCOM Test Results'
  condition: always()
  inputs:
    testResultsFormat: NUnit
    testResultsFiles: '*.xml'
    searchFolder: '$(Common.TestResultsDirectory)/$(Build.SourceBranchName)/$(Build.BuildNumber)/test-results/PCOM'
    mergeTestResults: true
    testRunTitle: 'PCOM Tests'

Она ищет все файлы *. xml в определенном месте s3. Но файлы xml будут создаваться только в том случае, если задача, указанная ниже, выполнена успешно:

- bash: 'perl run_aws_cli.pl $(Build.BuildNumber) $(Build.SourceBranchName) $(s3Bucket) $(Build.SourcesDirectory)'
  workingDirectory: 'azure-pipeline/scripts'
  displayName: 'Run ECS Tasks'

Поэтому я хочу, чтобы пользовательское условие проверяло, успешна ли более поздняя задача, а затем ищет только файлы xml в каталоге. иначе не ищите это. В настоящее время поиск выполняется всегда, и более ранняя задача ( Publi sh Результаты теста PCOM ) не выполняется.

1 Ответ

0 голосов
/ 06 апреля 2020

просто сделайте condition: succeeded() на вашем втором задании. это будет работать только в том случае, если все задачи до этого выполняются успешно. если вам нужна более сложная опция, отметьте этот поток.

В качестве альтернативы вы можете получить дополнительную информацию о состоянии сборки из API.

https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/get?view=azure-devops-rest-5.1

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