如何加快我们的 TeamCity 构建速度?

Mic*_*ael 5 svn msbuild continuous-integration teamcity-5.0

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

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

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

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

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

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

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

谢谢。

Jam*_*den 2

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

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

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

希望有帮助吗?