什么是preferred的方法来设置与TeamCity的一个大项目持续集成构建链? [英] What is the preferred way to setup a continuous integration build chain for a big project with TeamCity?

查看:154
本文介绍了什么是preferred的方法来设置与TeamCity的一个大项目持续集成构建链?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有一段时间我的公司现在使用Maven和TeamCity的构建Java的东西。目前,我们正在投入相当严重的不断融合,并最终连续交付。

for some time my company is now using Maven and TeamCity to build Java stuff. Currently we are investing quite heavily in continuous integration and ultimately continuous delivery.

在许多较小的应用程序(应用程序)我们经营与大约一个大的整体应用。百万LOC。在相当大的生成代理这个应用程序仅需5分钟,编译(包括2分钟svn的了)。其12K单元测试运行的5分钟。部署构建结果的Nexus至少需要10分钟。

Among many smaller applications (apps) we are operating one big monolith app with approx. 1 million LOC. This app on quite a big build agent takes 5 minutes to compile (incl. 2 minutes svn up). Its 12k unit tests are running for another 5 minutes. Deploying the build results to Nexus takes at least 10 minutes.

要提供快速反馈给开发人员,我们试图拆分在不同的构建任务要完成的工作量。目前我们使用以下设置:

To provide fast feedback to developers we try to split the the amount of work to be done in different build tasks. Currently we are using the following setup:


  • 第1步:编译一切(5分钟),如果失败,中止链。触发SVN更改的构建。

  • 第2步:编译,验证和部署。 (20至40分钟,主要取决于Nexus和/或网络性能)定义的快照依赖步骤。触发SVN更改的构建,但前提是快照的依赖关系发生了变化。

这个好部分:第2步,如果有一个成功的构建与步骤1的变化仅内置

The good part about this: Step 2 is only built if there is a successful build with changes of Step 1.

有就是这种方法的主要缺点:第2步做的一切步骤1做了。而且如果我要介绍,作为第3步和浏览器级Selenium测试部署到测试系统作为步骤4的很多东西将要两次或三次执行。

There is a major drawback to this approach: Step 2 does everything Step 1 did already. And if I am to introduce deploying to a test system as Step 3 and browser-level Selenium tests as Step 4 a lot of things are going to be executed twice or thrice.

替代我们尝试:


  • 配置步骤2在同一个生成代理运行的第一步,但SVN起来无论如何都会在这里这样做没有任何优势。唯一的事情,这将是一个更好一点:Maven的缓存

  • 的TeamCity生成步骤。据我了解到他们提供的几乎没有任何优势,分离与缺少中间集结结果的缺点建设任务。

是否有人知道一个更好的办法如何设置这更好的?

Does anybody know a better approach how to set this up better?

非常感谢,
斯特凡

Thanks a lot, Stefan

推荐答案

我们现在没一起去快照依赖一个星期,我已经成长为像他们一样,除了他们的低效率。

We did now go for a week with snapshot dependencies and I have grown to like them, besides their inefficiencies.

TeamCity的不显示依赖关系问题上建立并有专门为建立一个链条文档页面讲,这正是这些问题是如何解决的方式。

TeamCity does display dependency problems on builds and there is a documentation page dedicated to Build Chains telling that this is exactly the way how such problems are solved.

所以,感谢那些谁在这个问题产生了兴趣。我现在将其关闭。

So thanks to those who had interest in this question. I will close it now.

这篇关于什么是preferred的方法来设置与TeamCity的一个大项目持续集成构建链?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆