目前我们正在使用团队城市进行自动测试和部署到测试/登台服务器。我们的解决方案由几个共享一个公共域的 .net web api:s 和 mvc 项目组成。工作流程如下(简化):
- 开发人员检查他对 svn 的更改
- Teamcity 运行一个 msbuild 脚本,负责解决方案的配置转换、测试和打包。然后将解决方案部署到测试服务器(如果测试通过)。
这真的很好用,但我们不确定如何最好地部署到我们的发布服务器以及工作流程应该是什么样子。想象一下,我们有很大的“释放”按钮。然后应该遵循哪些步骤?由于这个问题非常模糊,我试图通过以下问题使其更加具体:
当按下按钮时,我们想标记当前的 svn root。团队城市可以做到这一点,还是我应该反过来,即创建一个标签并让团队城市使用它而不是根?如果是这样,我如何告诉团队城市使用哪个标签?或者我应该使用最新的构建工件吗?
与 1 相关。如何处理发布工件/标签的版本控制(命名)?
出于某种原因,使用 msdeploy 将解决方案部署到我们的发布服务器是否存在不好的做法?我应该考虑手动处理部署步骤吗?
是否应该手动处理数据库迁移?
我还应该考虑什么?
编辑: 我发现这篇博文回答了关于如何创建 svn 主干的自动标记/标签的问题。