我正在努力改进我们的一般自动化流程。我们使用 VS2012 和 TFS2012。
这是我在签入我们的 CI 分支时想要发生的事情:
- 建造
- 按照构建定义设置中的配置构建选定的项目/解决方案。
- 生成可用于部署网站的部署包(无需重新构建整个项目)
- 生成一个可以稍后发布的 nuget 包(无需再次重建整个项目,我需要 dll 来匹配从索引创建的符号,以便我们可以调试它们)
- 测试- 如果且仅当构建成功
- 运行所有已配置的单元测试。
- 部署- 当且仅当所有单元测试都通过这是为了防止破坏性更改进入我们的开发环境
- 从(1.2)获取部署包并将其发布到预期的环境(希望使用发布配置文件和转换进行配置)
- 发布- 当且仅当所有单元测试都通过
- 从 (1.3) 获取 nuget 包并将其发布到我们的私有 nuget 库
对于整个过程,我不需要完整的教程(尽管那会很棒),但更多的是如何进行集成。
例如:
- 我应该在包装项目上使用 msbuild 吗?
- 如何处理在 TFS 构建服务器上构建时创建包?
- 如何强制执行“如果且仅当所有单元测试通过”约束?
- 在构建之后执行部署/发布的最佳/最简单方法是什么。
这是我们想要使用的过程,非常感谢任何帮助实现这一点。我敢肯定,许多其他人对如何着手整合这种流程风格感兴趣。
此外,如果它是相关的,大多数解决方案都混合了共享 dll 项目、网站/api 和单元测试。我想要这个过程的原因之一是能够将它们拆分并将我们的大型 dll 模块化为较小的独立单元,如果没有这种自动发布机制,这将是无法管理的 ATM。
谢谢,加里。