- build/
- Build TFS 2012自动部署过程
Build TFS 2012自动部署过程
Build TFS 2012自动部署过程,build,nuget,autodeploy,Build,Nuget,Autodeploy,我正在努力改进我们的一般自动化过程。我们使用VS2012和TFS2012
以下是我在签入我们的CI分支时希望发生的事情:
构建
按照生成定义设置中的配置生成选定的项目/解决方案
生成可用于部署网站的部署包(无需再次重建整个项目)
生成一个稍后可以发布的nuget包(无需再次重建整个项目,我需要DLL来匹配通过索引创建的符号,以便我们可以调试它们)
测试-当且仅当构建成功时
运行所有配置的单元测试
部署-当且仅当所有单元测试都通过时,这是为了防止破坏性更改进入我们的开发环境
从(1.2)中获取
我正在努力改进我们的一般自动化过程。我们使用VS2012和TFS2012
以下是我在签入我们的CI分支时希望发生的事情:
构建
按照生成定义设置中的配置生成选定的项目/解决方案
生成可用于部署网站的部署包(无需再次重建整个项目)
生成一个稍后可以发布的nuget包(无需再次重建整个项目,我需要DLL来匹配通过索引创建的符号,以便我们可以调试它们)
测试-当且仅当构建成功时
运行所有配置的单元测试
部署-当且仅当所有单元测试都通过时,这是为了防止破坏性更改进入我们的开发环境
从(1.2)中获取部署包并将其发布到预期的环境中(希望使用发布配置文件和转换进行配置)
发布-当且仅当所有单元测试都通过时
从(1.3)中获取nuget软件包,并将其发布到我们的私人nuget图库中
我不需要整个过程的完整教程(尽管那会很棒),但需要更多关于如何集成它的内容
例如:
- 我应该在包装器项目上使用msbuild吗
- 如何处理在TFS构建服务器上构建时创建包的问题
- 如何强制执行“当且仅当所有单元测试都通过”约束
- 作为构建的一部分,在发布后执行部署/发布的最佳/最简单的方法是什么
这是我们想要使用的过程,任何帮助都会意识到这一点,我们非常感谢。
我相信还有很多人对如何开始整合这种风格的流程感兴趣
如果相关的话,大多数解决方案都混合了共享dll项目、网站/API和单元测试。我希望这个过程的一个原因是能够将它们拆分,并将我们的大型DLL模块化为更小的独立单元,这将在没有这种自动发布机制的情况下成为不可管理的ATM
谢谢,
加里
按照生成定义设置中的配置生成选定的项目/解决方案。生成一个可以
用于部署网站(无需重建整个
(再次进行项目)
这是开箱即用的,将部署配置文件添加到项目中,称之为“发布”
将以下内容添加到MSBuild参数
/p:DeployOnBuild=true;PublishProfile=发布
只要发布配置文件与MSBuild参数中的内容相匹配,就不必使用Release
这将生成部署文件作为构建(MSDEPLOY)的一部分
参见代码丛上的Nugetter
测试-当且仅当生成成功时运行所有配置的单元
测试
应该是现成的,但是如果编译不成功,您可以更改生成模板以使生成失败,如果这更适合您的需要
部署-如果且仅当所有单元测试都通过时,这是为了防止
打破进入开发环境的更改需要部署
从(1.2)中打包并发布到预期环境
(希望使用发布配置文件和转换进行配置)
发布-当且仅当所有单元测试都通过时,从
(1.3)并将其发布到我们的私人nuget画廊
请参见上文列出的codeplex上的Nugetter对于上述要求,您应该使用自定义活动在BuildProcessTemplate中添加更多步骤以实现特殊功能。
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)