繁体   English   中英

如何强制 TeamCity 将每个提交构建到 GIt 中?

[英]How to force TeamCity to build every commit into GIt?

现在,我是 TeamCity + Maven + Git 的快乐用户。 我有一个像mvn deploy这样的构建,它应该由每次提交到 Git 触发。 所有测试都运行,一切都很好。 =)

但是这个方案有一个问题,在我的机器上运行mvn release:prepeare之后,它会在中央 Git 存储库中创建两个提交(例如,版本1.11.2-SNAPSHOT ),其中一个被标记为1.1 因为 TeamCity 每 N 秒检查一次最新版本,它实际上只构建版本1.2-SNAPSHOT的最新版本。 而这种方式构建1.1实际上永远不会进入 Maven 存储库。 安全策略不允许我从我自己的机器上运行mvn deploy并且 Maven repo deploy 只能从 TeamCity 机器上完成。

因此,我想针对两个提交的 repo 运行两个构建。 据我所知,仅在 TeamCity 中配置一个构建是不可能的。

现在我正在使用解决方法:有一个额外的构建只构建“发布”提交,它是由带有提交正则表达式的触发器触发的。 另一种可能的解决方法是使用针对专门的“发布”分支构建的附加构建。

但是,我不想有变通方法,并且想强制 TeamCity 针对 Git 的每个提交运行构建。 这也将帮助我理解失败的测试。

让事情从 TeamCity 中单个构建构建的问题在于,该特定构建绑定到一个分支(假设它是主干)。 但是,当 Maven 执行release:prepare时,它实际上创建了一个标签。 当它创建此标签时,您没有构建它,因为您现有的项目与原始分支相关联。

我的建议是要么改变你的公司政策,要么为每个标签创建单独的版本。 我们曾经使用 TeamCity,但遇到了您的问题。 我是公司的构建经理,我也负责发布。 我相信只要原始构建在 CI 服务器中正确传递,那么您执行mvn release:prepare release:perform甚至mvn deploy是完全可以的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM