【发布时间】:2014-12-19 08:15:04
【问题描述】:
我的团队有一个 Continuous Integration 服务器(目前是 TeamCity,但没关系)和大型 Visual Studio 项目,完成后大约需要 1 小时才能完成完整的 CI 流程签入(构建、运行单元测试、在测试服务器上部署...)。
解决方案分为两部分,后端是完全 .NET 堆栈项目(Windows 服务、Web 项目等)和包含大量 JavaScript 和前端事物的前端单页应用程序。
持续集成构建过程耗时 1 小时大约是后端代码、构建、单元测试的 90%...
这是大型项目的常见场景,我希望您分享您的最佳实践和建议, 如何以某种方式在触发逻辑中进行“智能”检查,使解决方案的每个部分(前端、后端)都不会为另一个部分启动构建过程。
【问题讨论】:
-
我不太清楚你到底想知道什么?例如,我们只有一个构建配置,它为存储库中的每个更改构建所有内容(前/后),并将 10 分钟左右的更改组合在一起。我们不使用多个构建/依赖项,因为 a)我们还希望每个成功的构建都是完整的产品并且可以这样使用 b)这意味着我们可以使主构建脚本在任何地方保持简单和可用,在命令行或其他 CI服务器以及,如果需要的话。这些是你想知道的吗?
-
@stijn,感谢您的回复。我想要关于如何分离前端和后端应用程序的最佳实践,以便前端签入会导致仅前端部分的构建过程开始,而后端仅签入后端构建过程。
-
原因很简单,前端应用程序是用纯前端堆栈、AngularJS 等编写的。并且不依赖于 .NET 框架或任何其他服务器端代码。但是,如果我的前端开发人员签入他的 JavaScript,它将触发整个解决方案(前后)的构建过程,这需要大约 1 小时,而仅前端代码的“构建/单元测试/部署”过程不超过10 分钟。
标签: testing msbuild continuous-integration teamcity development-environment