使用SVN和TeamCity的Web应用程序部署工作流程

时间:2009-07-09 20:23:32

标签: asp.net svn deployment teamcity

我对Subversion很新。到目前为止,我的大部分工作都是使用Visual Source Safe。我希望通过SVN和TeamCity改进我的部署过程。这是我的计划:

将有三个分支:

  1. 开发(/ trunk) - 整个ASP.NET解决方案,包括Web部署项目。
  2. 暂存(/ branches / staging) - Web部署项目输出(仅执行所需的文件 - bin,.aspx,图像等)
  3. 部署(/ branches / deployment) - 与Staging相同
  4. CI流程:

    1. 在trunk中提交源更改。
    2. TeamCity检测到更改,构建解决方案并运行单元测试。
    3. 如果所有测试都通过,TeamCity会将Web部署项目输出提交到分支/暂存,并将其导出到暂存Web服务器上的wwwroot。
    4. 然后,当我准备部署到生产环境时,我将手动执行以下操作:

      1. 将分支/分段与分支/生产合并
      2. 更新生产网络服务器的分支/生产工作副本。
      3. 这有意义吗?在这个过程中,有什么像我这样的VSS用户可能会丢失/误解吗?

3 个答案:

答案 0 :(得分:4)

我已经写了一篇关于如何使用ASP.Net和Web部署项目的相当长的帖子 - 听起来就在你的小巷里(不知道我是否可以发布这个 - mods?):

http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

答案 1 :(得分:4)

迟到的答案,但可以对这个帖子的读者有所帮助:

我做了一些在线研究,找到了一个可以帮助解决问题的分步教程。

This tutorial涵盖了持续集成(CI)的基础知识,以及在源控制存储库上检测到新的更改,对数据库运行指定的单元测试以及同步测试的数据库时构建新数据库的方法到QA环境。

在数据库开发过程中实现持续集成(CI)的必要先决条件是在源代码管理下拥有数据库。

答案 2 :(得分:2)

这可能适合您,但通常舞台是客户接受更改的地方。 如果在每个构建上进行部署,则不会获得一致的行为。

我们不会将构建结果保留在SVN中。对于我们来说,只需在Teamcity中将其置于工件下即可。如果我们在这一点上使用最佳实践,我并不感到害羞。

你会对SVN和Teamcity感到非常高兴......祝你好运!