optimization - 我可以采取哪些步骤来优化 TeamCity 中的构建时间?

标签 optimization build continuous-integration teamcity

我目前正在努力减少在 TeamCity 中编译和单元测试项目所花费的时间。

目前我的项目需要大约 5 到 8 分钟的时间来构建。

它的作用是:

  1. 清理所有现有文件
  2. 编译每个项目
  3. 创建安装程序

一旦完成,单元测试就会开始,运行大约需要 2 分钟。

它的作用是:

  1. 清理所有现有文件
  2. 编译每个项目
  3. 运行所有单元测试

现在,运行单元测试只需要 5 秒....因此清理和编译步骤大约需要 2 分钟....而创建安装程序步骤大约需要 3 到 6 分钟。

我的第一个问题是:有什么方法可以配置 team city,使其在运行单元测试时不必再次执行清理和编译步骤。我相信我们采用这种方式的主要原因是因为项目构建和单元测试可以由不同的构建代理运行。

我的第二个问题是:项目构建需要 5 到 8 分钟的合理时间吗?有没有办法优化解决方案中项目的编译以及安装程序的创建?

如果我可以提供任何其他详细信息,请告诉我,这可能会帮助您为我指明正确的方向,即优化构建或保持原样。

更新回答一些questions from Nate :

当您在 TeamCity 外部运行构建时,它是否会在单元测试之前再次执行清理/编译?不,因为当您在自己的机器上运行它时,您可以指定要运行构建脚本的哪些部分。我们有清理、编译、单元测试等部分,它们在项目构建与单元测试运行的团队城市中有不同的指定。

如果是这样,你能让构建在测试之前不这样做吗?我们目前不这样做的原因是,当使用不同的构建代理时,单元测试所需的文件将不可用,因此会失败。

您使用什么来构建您的项目?我们使用 Nant 来构建我们的项目,使用 wix 来安装程序,使用 NUnit 和 NCover 来进行单元测试和覆盖率报告。

您使用的是什么源代码控制系统?颠覆

最佳答案

关于 #1:当您在 TeamCity 之外运行构建时,它是否会在单元测试之前再次进行清理/编译?如果是这样,您能否让构建在测试之前不这样做?

您使用什么来构建您的项目?您使用的是什么源代码控制系统?

考虑的另一个选择是拥有多个构建配置。在我的工作中,我们有几种配置。在每次提交后运行的一个。它进行清理/编译和一些快速测试。然后我们有一个夜间配置,它执行清理/编译和所有测试。你能做这样的事吗?

关于optimization - 我可以采取哪些步骤来优化 TeamCity 中的构建时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1141147/

相关文章:

haskell - 为什么这个 Haskell 表达式这么慢?

c++ - 未优化表达式模板实现

c++ - 仅在需要时编译文件

go - go build 是什么意思? (去构建与去安装)

android - 构建 Cordova Android 应用程序时,构建找不到 aidl

bash - 传递变量时正确使用 curl --data-urlencode

.net - NUnit "could not load file or assemby ' MyTestProject'

java - TFS 无法从 Ant/JUnit 构建中找到单元测试结果

sql - 在持续集成下删除和创建数据库的可靠方法

c# - 我可以使用哪些资源来学习分析/优化?