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

标签 svn msbuild continuous-integration teamcity-5.0

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

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

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

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

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

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

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

谢谢。

最佳答案

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

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

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

    希望有帮助吗?

    关于svn - 如何加快我们的 TeamCity 构建速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5296695/

    相关文章:

    r - 使用 rgeos 库合并国家多边形

    python - 是否可以在从 Jenkins 启动的 vagrant box 中运行测试套件?

    continuous-integration - 使用 TeamCity 合并语义版本控制的最佳实践是什么

    build - 在 travis-ci -golang 上找不到包

    linux - 将存储库从 Windows 迁移到 Linux 时格式错误的转储文件头(编码问题?)

    SVN - 更改工作副本以指向新的 svn 路径

    java - SVN java 库

    c# - 如何在dll中包含源代码?

    msbuild - 在 MSBuild 中使用注册表属性时引用属性?

    ios - Xamarin iOS MSBuild - 缺少 OutputPath?