gpt4 book ai didi

build - 使用TeamCity为大型项目设置持续集成构建链的首选方法是什么?

转载 作者:行者123 更新时间:2023-12-04 20:34:58 25 4
gpt4 key购买 nike

一段时间以来,我的公司现在使用Maven和TeamCity来构建Java。目前,我们在持续集成和最终持续交付方面投入了大量资金。

在许多较小的应用程序(应用程序)中,我们正在运行一个大型的整体应用程序,约有1百万个LOC。这个在大型构建代理上的应用需要5分钟的编译时间(包括svn 2分钟)。其12k单元测试将再运行5分钟。将构建结果部署到Nexus至少需要10分钟。

为了向开发人员提供快速反馈,我们尝试将不同构建任务中要完成的工作量分开。当前,我们正在使用以下设置:


步骤1:编译所有内容(5分钟),如果失败,则中止链。触发基于SVN更改的构建。
步骤2:编译,验证和部署。 (20到40分钟,主要取决于Nexus和/或网络性能)将快照依赖关系定义为Step。触发基于SVN更改的构建,但前提是快照依赖项已更改。


这样做的好处是:只有在成功更改了步骤1的情况下,才构建步骤2。

这种方法的主要缺点是:步骤2已完成步骤1的所有操作。如果我要介绍如何将部署到测试系统作为步骤3,将浏览器级Selenium测试作为步骤4,那么很多事情将执行两次或三次。

我们尝试过的替代方法:


将步骤2配置为与步骤1在同一构建代理上运行,但是无论如何都会进行svn升级,因此这里没有优势。唯一会好一点的东西是:Maven缓存。
TeamCity构建步骤。据我了解,由于缺乏中间的构建结果,它们几乎没有优势来分离构建任务。


有人知道更好的方法如何更好地进行设置吗?

非常感谢,
斯特凡

最佳答案

我们现在确实做了一周的快照依赖项,除了效率低下外,我也变得很喜欢它们。

TeamCity确实会显示有关构建的依赖关系问题,并且有一个专门针对Build Chains的文档页面告诉您,这正是解决此类问题的方式。

因此,感谢那些对此问题感兴趣的人。我现在将其关闭。

关于build - 使用TeamCity为大型项目设置持续集成构建链的首选方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6942764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com