我有一个基于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测试结果)失败。
答案 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