目标:我尝试创建一个预测试提交方法(首先运行带有测试的 CI 构建,然后将它们推送到“绿色”存储库(如果可以)
问题:Branch Remote Run Trigger 不工作,TeamCity 服务器不提取更改来运行构建。我不明白为什么会这样以及如何解决它。
描述:
我在一个 TC 项目中有两种配置。他们都监视相同的 git 存储库但不同的分支(默认情况下)。共有 3 个分支:master(此处未使用)、develop(用于工作构建和绿色测试)和 artemPersonal(用于个人构建)
- WebUI 开发。仅对绿色存储库使用 refs/heads/develop 分支。在个人构建成功后,新的提交从 TC 来到这个分支。
WebUI 开发预测试提交。用途 refs/heads/artemPersonal 作为默认分支
2.1 我有一个带有分支路径的分支远程运行触发器:
refs/heads/artemPersonal
我尝试了不同的变体,比如refs/heads/*
.2.2 我有一个带有默认分支的 VCS 根集:
refs/heads/artemPersonal
和空分支规范。我还尝试用一些值填充 branc 规范,但现在它是空的。
我推送到 refs/heads/artemPersonal
并期望 TC 运行 Remote-Run 触发器以 pull 更改并开始下一个构建。它没有。待定更改出现在 TC 的 UI 上,但构建没有开始。手动工作正常。
teamcity-remote-run.log 文件给出这样的消息:
Branch 'refs/heads/artemPersonal' in VCS root '"WebSite Development Pre-tested Commits" is matched by branchSpec, branch will be ignored
和
First run of the trigger for buildType 'WebSite :: WebUI develop Pre-Tested Commits 3 branch(es) matched by the pattern. New commits or new matched branches will trigger a personal build.
P.S. 我知道解决方法是不使用个人构建和 Branch Remote Run Trigger,而是使用简单的 VCS Trigger 并仅检查 artemPersonal
分支。但我想使用个人构建。
最佳答案
我想您用于个人构建的分支是 refs/heads/artemPersonal。 它不应出现在 VCS 根目录中的默认分支或分支规范列表中。
为了运行个人构建,您需要在每个要使用的构建配置上定义一个触发器。 (例如,要监控的分支模式 = refs/heads/*)。在您的情况下,您可以使用 WebUI Develop。
确保您在 Team city 和 Git 中的用户名相同。
关于.net - 分支远程运行触发器不在 Teamcity 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25890358/