【问题标题】:Azure DevOps: How to execute Build Task only after PR has been reviewed and approved?Azure DevOps:PR 审核通过后如何执行 Build Task?
【发布时间】:2021-06-13 07:01:13
【问题描述】:

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

我不想为每次提交或微小更改运行那些昂贵的任务,但只有在此类更改经过审核和批准之后。

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

目前在 Azure DevOps 中是否可行?怎么样?

【问题讨论】:

  • 嗨,mdarefull,我的回答有帮助吗?请检查它,并请让我们知道结果。谢谢。
  • 答案看起来不错,而且完全有道理......虽然我无法验证它,我们正在优先考虑其他任务。非常感谢您的快速回复,我会尽快验证并通知您
  • 嗨,mdarefull,这个问题怎么样?我的回答有帮助吗?我期待着您的来信。谢谢。

标签: azure-devops azure-pipelines pull-request build-pipeline


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 2019-04-27
    • 2018-11-14
    • 2020-04-03
    相关资源
    最近更新 更多