Azure-基于YAML的管道中的自定义条件

时间:2020-04-06 03:29:21

标签: azure azure-devops

我有一个基于Yaml的天蓝色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'

它将查找特定s3位置下的所有“ * .xml”文件。但是xml文件仅在以下任务成功完成后才会创建:

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

因此,我想要一个自定义条件来检查以后的任务是否成功,然后仅在目录中搜索xml个文件,否则不进行搜索。 当前,它一直在搜索,并且先前的任务(发布PCOM测试结果)失败。

1 个答案:

答案 0 :(得分:0)

只需完成第二项任务condition: succeeded()。只有在此之前的所有任务都成功运行后,它才会运行。如果您需要更复杂的选项,请检查this线程。

或者,您可能可以从API获取有关构建状态的更多信息。

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