Azure Pipeline如何配置仅在PR合并到master时运行PublishTestResults任务
Azure Pipeline 测试结果发布任务配置方案
你需要将任务原有单条件always()调整为组合条件,同时满足「无论前置任务状态都执行」「仅PR触发构建」「PR目标分支为master」的要求,修改后的完整配置如下:
- task: PublishTestResults@2 inputs: testResultsFormat: cTest testResultsFiles: $(Build.SourcesDirectory)/build/Testing/*/Test.xml testRunTitle: UnitTest PR $(System.PullRequest.PullRequestId) displayName: Publish unittest results condition: and(always(), eq(variables['Build.Reason'], 'PullRequest'), eq(variables['System.PullRequest.TargetBranch'], 'refs/heads/master')) - task: PublishTestResults@2 inputs: testResultsFormat: jUnit testResultsFiles: $(Build.BinariesDirectory)/FunctionalTests.xml testRunTitle: FunctionalTest PR $(System.PullRequest.PullRequestId) displayName: Publish functional test results condition: and(always(), eq(variables['Build.Reason'], 'PullRequest'), eq(variables['System.PullRequest.TargetBranch'], 'refs/heads/master'))
条件项说明
always():保留原有执行逻辑,无论前置任务成功、失败、被取消,只要流水线运行到该任务节点就会触发执行eq(variables['Build.Reason'], 'PullRequest'):过滤构建触发源,仅当构建由拉取请求事件触发时满足条件eq(variables['System.PullRequest.TargetBranch'], 'refs/heads/master'):过滤PR目标分支,仅当PR要合并到master分支时满足条件,注意该变量默认携带refs/heads/前缀,不能直接用master做匹配
内容的提问来源于stack exchange,提问作者Ashkan
相关产品推荐
相关产品推荐

