2

我正在努力改进我们的一般自动化流程。我们使用 VS2012 和 TFS2012。

这是我在签入我们的 CI 分支时想要发生的事情:

  1. 建造
    1. 按照构建定义设置中的配置构建选定的项目/解决方案。
    2. 生成可用于部署网站的部署包(无需重新构建整个项目)
    3. 生成一个可以稍后发布的 nuget 包(无需再次重建整个项目,我需要 dll 来匹配从索引创建的符号,以便我们可以调试它们)
  2. 测试- 如果且仅当构建成功
    1. 运行所有已配置的单元测试。
  3. 部署- 当且仅当所有单元测试都通过这是为了防止破坏性更改进入我们的开发环境
    1. 从(1.2)获取部署包并将其发布到预期的环境(希望使用发布配置文件和转换进行配置)
  4. 发布- 当且仅当所有单元测试都通过
    1. 从 (1.3) 获取 nuget 包并将其发布到我们的私有 nuget 库

对于整个过程,我不需要完整的教程(尽管那会很棒),但更多的是如何进行集成。

例如:

  • 我应该在包装项目上使用 msbuild 吗?
  • 如何处理在 TFS 构建服务器上构建时创建包?
  • 如何强制执行“如果且仅当所有单元测试通过”约束?
  • 在构建之后执行部署/发布的最佳/最简单方法是什么。

这是我们想要使用的过程,非常感谢任何帮助实现这一点。我敢肯定,许多其他人对如何着手整合这种流程风格感兴趣。

此外,如果它是相关的,大多数解决方案都混合了共享 dll 项目、网站/api 和单元测试。我想要这个过程的原因之一是能够将它们拆分并将我们的大型 dll 模块化为较小的独立单元,如果没有这种自动发布机制,这将是无法管理的 ATM。

谢谢,加里。

4

1 回答 1

0

BUILD 按照构建定义设置中的配置构建选定的项目/解决方案。生成可用于部署网站的部署包(无需重新构建整个项目)

这是开箱即用的,将部署配置文件添加到您的项目中,将它们称为“发布”将以下内容添加到您的 MSBuild 参数中

/p:DeployOnBuild=true;PublishProfile=发布

您不必使用发布,只要您的发布配置文件与您在 MSBuild 参数中输入的内容相匹配

这将生成部署文件作为构建的一部分 (MSDEPLOY)

Generate a nuget package that can later be published (without having to rebuild the entire project again, i need the dlls to match the symbols created from indexing so we can debug them)

请参阅代码 plex 上的 Nugetter http://nugetter.codeplex.com/

测试 - 如果且仅当构建成功时运行所有已配置的单元测试。

应该是开箱即用的,但是如果编译不成功,您可以更改构建模板以使构建失败,如果这更适合您的需求。

部署 - 如果且仅当所有单元测试通过这是为了防止破坏性更改进入我们的开发环境 从 (1.2) 获取部署包并将其发布到预期的环境(希望使用发布配置文件和转换进行配置)发布 - 如果且仅当全部单元测试通过从 (1.3) 获取 nuget 包并将其发布到我们的私人 nuget 库

请参阅上面列出的 codeplex 上的 Nugetter

于 2014-06-25T13:22:41.897 回答