【问题标题】:How can I speed up our TeamCity builds?如何加快 TeamCity 的构建速度?
【发布时间】:2011-03-14 09:20:54
【问题描述】:

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

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

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

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

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

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

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

谢谢。

【问题讨论】:

标签: svn msbuild continuous-integration teamcity-5.0


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

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

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

希望有帮助吗?

【讨论】:

  • 嗨詹姆斯 - 感谢您的回复。澄清一下,同步时间是什么意思?使用 SVN 进行完全干净的结帐,还是只是更新?随着 repo 增长到超过 1GB,完整的结帐需要很长时间。更新取决于更改的内容。我认为我们的 SVN 服务器并没有那么快,但就像你说的 10 分钟仍然太长,无法真正等待。
  • 我的意思是获取您的代码库的全新副本的时间。我认为你需要整理出那个depo。干净的副本需要 10 分钟。
猜你喜欢
  • 2011-01-15
  • 1970-01-01
  • 2012-02-13
  • 1970-01-01
  • 2019-06-11
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多