【问题标题】:Teamcity doesn't trigger builds consistently for changes on PRTeamcity 不会针对 PR 的更改一致地触发构建
【发布时间】:2020-08-10 13:57:52
【问题描述】:

我有一个带有 bitbucket 服务器存储库的 Teamcity 服务器。 Teamcity 上有一个构建管道,用于验证拉取请求设置。基本上它按预期工作。但是,虽然新的拉取请求会在一分钟内触发,但当我提交拉取请求的更改时,可能需要长达一个小时才能让 Teamcity 在构建配置页面中获得更改。一旦找到它们,它就会按预期触发构建。 如果我在“操作”菜单中选择“检查未决更改”也没有什么不同。

奇怪的是,在我的另一个构建管道上,它在主分支上构建更改,新提交也会在一分钟内触发。

拉取请求构建功能:

我的分支规格:

“更改检查”设置:

还有触发器:

我们使用 TeamCity Professional 2019.2(内部版本 71499)

EDIT1:我刚刚意识到有两种不同的更改视图:一种用于分支,另一种用于拉取请求。更改确实会很快显示在拉取请求的分支中,但不会显示在拉取请求的分支中。

分支视图:

拉取请求视图:

作为参考,那些在 16:32 制作的屏幕截图。

EDIT2:我用这篇文章来设置它:https://www.jetbrains.com/help/teamcity/2019.2/pull-requests.html

EDIT3:我刚刚发现我可以使用浏览器触发构建 Bitbucket 服务器页面上的拉取请求。不知道它是如何工作的。

【问题讨论】:

  • 是 pull-requests/*/ 真正的提交还是真正提交的标签?我想知道 Teamcity 是否没有看到标签已更改
  • 如果“pull-requests/*”是一个标签而不是真正的提交,你需要在你的分支规范中添加:+:refs/tags/*
  • 据我了解,您是否在 ref/heads 中有一个基本分支,当您创建拉取请求时,它会在“以某种方式”链接的 ref/pull-requests 下创建一个新分支与现有的分支。到目前为止,我的理解是拉取请求构建功能会跟踪这些,但我不知道触发器是否仅设置为非常低的频率。我还将用于设置它的文章添加到我的原始帖子中
  • @fgagnaire 只是为了确保我在分支规范中添加了“+:refs/tags/*”,但没有任何更改。与文档中的“+:refs/pull-requests/*/from”相同。
  • 您的文档说要添加“拉取请求”“构建功能”。看起来您正在添加触发器,请查看该链接:blog.jetbrains.com/teamcity/2019/08/… 它适用于 github,但原理应该相同。告诉我它是否有效,我会为其他有相同问题的人添加一个正确的答案

标签: teamcity


【解决方案1】:

这似乎是 Bitbucket Server 的设计: https://community.atlassian.com/t5/Bitbucket-questions/Change-pull-request-refs-after-Commit-instead-of-after-Approval/qaq-p/194702

TLDR:出于性能考虑,pullrequest 分支上的 Refs 不会立即更新。触发它的最简单方法是在 Bitbucket Server 网站上查看 PullRequest。 当我理解正确时,注释和对 master 的 ref 更新也会触发它。

【讨论】:

  • 这会使该功能无用
  • 至少不那么吸引人了,是的。我认为在链接的论坛帖子中有一些可能的解决方法。虽然我不认为我可以将这些应用于我的情况。
猜你喜欢
  • 2012-03-05
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
  • 1970-01-01
  • 1970-01-01
  • 2013-10-09
  • 1970-01-01
  • 2014-07-12
相关资源
最近更新 更多