【问题标题】:VSTS Pull request doesn't trigger buildVSTS 拉取请求不会触发构建
【发布时间】:2018-06-14 16:35:12
【问题描述】:

直到上周我一直在处理这个问题,但现在不是了。我的develop 分支上有一个构建策略。创建拉取请求时,它会自动执行构建定义。构建在托管代理上运行。

它工作正常,但现在我需要在创建 PR 时手动触发构建。我尝试启用然后禁用。还尝试删除并重新创建策略。都没有奏效。

我错过了什么吗? VSTS 有什么变化吗?

构建策略的屏幕截图:

【问题讨论】:

  • 发现构建没有触发是什么情况?您是否创建了一个创建 PR 以合并到开发分支中,或者您是否只是对现有 PR 的一个评论(或其他)?
  • 你的 repo 是托管在 VSTS 还是其他地方?
  • @Marina - 工作时和不工作时相同的过程。之前,创建一个新 PR 以合并到开发中并将新提交推送到现有 PR 会触发构建。现在都不会触发构建。
  • @Brian - Repo 托管在 VSTS 中。
  • @nthpixel 你能分享一下你如何配置构建验证策略的屏幕截图吗?

标签: azure-devops azure-pipelines


【解决方案1】:

对于 PR 构建验证在将更改推送到源分支后没有立即触发,是由于构建过期设置为 如果已上传开发,则在 12 小时后

也就是说,当源分支更新时,构建不会立即触发。更多关于build expiration的详情如下:

设置构建过期时间以确保对受保护的更新 分支不会破坏打开的拉取请求中的更改。

  • 当 分支名称已更新: 此选项将构建策略状态设置为 更新受保护分支时拉取请求失败。你必须 重新排队构建以刷新构建状态。此设置可确保 即使在受保护的情况下,拉取请求中的更改也会成功构建 分支变化。此选项最适合具有重要 变化量较小的分支。忙碌工作的团队 开发分支可能会发现等待构建具有破坏性 每次更新受保护的分支时完成。

  • n 小时后 如果分支名称已更新: 此选项使当前 如果通过构建,则受保护分支更新时的策略状态 早于输入的阈值。此选项是一种折衷方案 在受保护分支更新时始终需要构建和 从不需要一个。这个选择非常适合减少数量 受保护分支频繁更新时的构建次数。

  • 从不: 对受保护分支的更新不会更改策略状态。这个 减少分支的构建数量,但可能会导致问题 关闭最近未更新的拉取请求时。

因此,如果您希望在 PR 更新后立即触发构建,您应该将构建过期时间更改为 在更新开发时立即

【讨论】:

  • 我设置它立即过期,但构建仍然没有自动触发。
  • 你能通过在不同的分支上设置 PR 构建验证策略来仔细检查吗?
猜你喜欢
  • 1970-01-01
  • 2018-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-12
  • 1970-01-01
  • 1970-01-01
  • 2016-10-29
相关资源
最近更新 更多