Azure DevOps:PR 审核通过后如何执行构建任务?

问题描述

我可能有一些昂贵的任务/测试,未经审查的 PR 可能需要额外的更改。

我不想为每次提交或微小更改运行这些昂贵的任务,而是仅在此类更改经过审核和批准后才运行。

这些任务可能不仅运行成本高昂,而且还可能有一些运行配额。迁移到 CI 构建是不可取的,因为这意味着破坏应用程序的代码可能会进入主版本,并且需要额外的 PR 来修复。

目前是否可以在 Azure DevOps 中使用?怎么样?

解决方法

如果您调用此 Rest API:Pull Requests - Get Pull Request By Id,响应正文将返回包含评论者信息的 reviewers 数组。如果有一个审阅者批准(或通过建议批准)此拉取请求,则该审阅者的 vote 值为正整数,否则为负整数。因此,此 vote 属性可用作标志,以检查此拉取请求是否已被所需审核者批准或拒绝。

因此,您可以使用 PR triggers 代替 CI triggers,并在通过 PowerShell task 运行那些昂贵的任务之前添加 specifying conditionsPowerShell task 将使用上面的 Rest API 运行脚本来检查此拉取请求是否被批准并将结果返回为标志变量(isApproved)的值,因此标志变量可以在那些指定自定义条件时的昂贵任务,例如 and(succeeded(),eq(variables['isApproved'],'true'))