azure-devops - Azure DevOps:PR 审核通过后如何执行 Build Task?
问题描述
我可能有一些昂贵的任务/测试,并且未经审查的 PR 可能需要额外的更改。
我不想为每次提交或微小更改运行那些昂贵的任务,但只有在此类更改经过审查和批准之后。
这些任务可能不仅运行起来很昂贵,而且它们也可能有一些运行配额。迁移到 CI 构建是不可取的,因为这意味着破坏应用程序的代码可能会进入 master,并且需要额外的 PR 来修复。
目前在 Azure DevOps 中是否可行?如何?
解决方案
如果您调用此 Rest API: Pull Requests - Get Pull Request By Id,响应正文将返回reviewers
包含审阅者信息的数组。如果有一个reviewer 批准(或通过建议批准)这个pull request,vote
这个reviewer 的值为正整数,否则为负整数。因此,此vote
属性可用作标志来检查此拉取请求是否被所需的审阅者批准或拒绝。
因此,您可以使用PR 触发器而不是CI 触发器,并通过指定条件在运行那些昂贵的任务之前添加一个PowerShell 任务。并且PowerShell 任务将使用上述 Rest API 运行脚本以检查此拉取请求是否被批准并将结果返回为标志变量()的值,因此可以在指定自定义条件(如
.isApproved
and(succeeded(), eq(variables['isApproved'], 'true'))
推荐阅读
- css - 我如何为 javafx 表格列单元格应用 css
- fortran - 英特尔编译器返回“预期语句结束时找到 Format_element”
- javascript - 为什么 JS map() 返回 TypeError?
- dart - 渡槽和内存数据库
- django - 错误:无效命令“bdist_wheel”
- android - 当子元素展开/折叠时,Android RecyclerView 滚动到顶部
- java - 如何将这些 spring security xml 配置转换为 java 配置
- python-2.7 - 将值分配给组合框时出错(python 2.7)
- javascript - 用 JavaScript 构造 Json 表
- angularjs - Angular 1.6 ng-重复