svn – 如何加速我们的TeamCity构建?

最近几个月,我们的存储库的大小已经大大增加,TeamCity构建现在变得非常缓慢.

很多批量来自安装文件和其他非代码,非必要(无论如何构建)人们已经签入SVN的东西.

我们只运行基本的免费版本,并有3个代理.我们的VCS结帐模式是“自动在服务器上”. 2个解决方案文件都是C#,我们正在使用MSBuild脚本.

我喜欢构建配置中的结帐规则部分,但已经读过它将无法工作,因为它获取所有代码,然后应用规则,如果你问我,这会破坏对象.

现在构建需要大约1小时,但是如果我可以让TeamCity获取它需要的代码而没有其他任何东西,那么我认为我可以将它降低到10分钟或更短时间.

我发现了一些排除文件和文件的文章.使用MSBuild的文件夹,但我在构建脚本中找不到任何关于从SVN获取的内容,我认为TeamCity会这样做.

任何人都可以建议我们可以进行任何更改,或者使用TeamCity和MSBuild从头开始将构建放在一起的好文章,这将允许我选择从SVN获取什么?

谢谢.

最佳答案 >只建立什么改变.

> CI构建不需要完成发布版本所做的全部工作.所有CI需要编译并进行一些验证.

>解决方案,有时开发人员将负载放入任何单一的sln.如果您在一个sln中获得了大量服务,并且每次只需更改一次即可构建它?

所以将它们分开 – 每个输出一个sln(我的意思是exe或服务或任何不是单个DLL)

>并行构建.

为每个输出设置不同的构建目标(在TeamCity中)

>构建工件,部署工件.这意味着您永远不必等待构建完成部署.

对于SVN来说,十分钟的同步仍然是一个非常长的时间,这真的要降下来,在命令行需要多长时间?
将非构建相关项目移动到另一个仓库?

使用大型代码库和svn考虑将核心组件构建到Svn中的已检入二进制文件/引用部分.
这允许您与其他团队共享构建的对象,而不是浪费时间来构建他们的代码.

希望有帮助吗?

点赞