我们当前的部署过程包含三件事
- 源代码管理(在我们的案例中为Visual Studio Online)
用于构建.NET Web应用程序的- TeamCity
- Octopus Deploy,用于从TeamCity部署构建的软件包
醇>
这个过程非常简单,大部分工作都是自动化的。
将代码签入主分支后,TeamCity将检测更改并开始构建过程,其中包括以下步骤:
- 恢复NPM包
- 运行gulp脚本来编译SASS文件并缩小和捆绑JavaScript
- 在发布配置中使用MSBuild构建Web应用程序
- 在Octopus Deploy中创建一个版本
醇>
这也是在开发人员没有任何工作的情况下完成的。
我们的大多数网络应用程序在Octopus Deploy中的设置方式如下:
- 检索从TeamCity构建的包(以nuget包的形式)
- 在此过程中部署执行任何Web.config转换的Web应用程序。
- 使用Topshelf部署任何Windows服务,该服务还执行所需的App.config转换
醇>
创建发布时,Octopus Deploy会自动将其部署到我们的内部开发服务器,因此再次开始测试新代码无需任何工作。一旦每个人都满意,我们再按一个按钮,它就会部署到我们所有的生产服务器上。
Octopus Deploy也具备部署数据库架构更改等功能,这已在article中介绍,我们采用了更改脚本驱动方法。