5

最近几个月,我们的存储库规模扩大了很多,而 TeamCity 的构建现在变得非常缓慢。

大部分来自安装文件和其他非代码、非必要(无论如何构建)的东西,人们已经签入 SVN。

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

我喜欢构建配置中的结帐规则部分,但读到它不起作用,因为它会获取所有代码然后应用规则,如果你问我,这会破坏对象。

现在构建大约需要 1 小时,但如果我可以让 TeamCity 获取它需要的代码而没有别的,那么我认为我可以将它缩短到 10 分钟或更短。

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

任何人都可以建议我们可以进行的任何更改,或者关于使用 TeamCity 和 MSBuild 从头开始​​构建的好文章,这将允许我选择从 SVN 获取的内容?

谢谢。

4

1 回答 1

2
  1. 只构建变化的东西。
  2. CI 构建不需要做发布构建所做的所有事情。所有 CI 需要编译并进行一些验证。
  3. 解决方案,有时开发人员会将负载放入任何单个 sln。如果您在一个 sln 中有大量服务,并且每次只更改一项时它都会构建?所以将它们分开 - 每个输出一个 sln(我的意思是 exe 或服务或任何不是单个 DLL)
  4. 并行化构建。每个输出都有不同的构建目标(在 TeamCity 中)
  5. 构建工件,部署工件。这意味着您永远不必等待构建完成部署。

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

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

希望有帮助吗?

于 2011-03-14T10:04:08.150 回答