Web Application Deployment Workflow with SVN and TeamCity

I am new to Subversion. Most of my work so far has been with Visual Source Safe. I want to improve the deployment process with SVN and TeamCity. This is my plan:

There would be three branches:

  • Development (/ trunk) is a solution for all ASP.NET applications, including a web deployment project.
  • Staging (/ branch / staging) - output of the web deployment project (files necessary only for execution - bin, .aspx, images, etc.)
  • Deployment (branches / deployment) - same as Staging

CI process:

  • Correct the original changes in the trunk.
  • TeamCity detects changes, builds a solution, and runs unit tests.
  • If all the tests are passed, TeamCity transfers the results of the web deployment project to the branches / stage and exports them to wwwroot on the intermediate web server.

Then, when I'm ready to deploy to production, I will do the following manually:

  • Combine branches / staging with branches / production
  • Update production web server of working copy of branches / production.
It makes sense? Is there anything that a VSS user like me might be missing / misunderstanding in this process?
+4
source share
3 answers

I wrote a rather long post on how to do this with ASP.Net and web deployment projects - it sounds right up your mall (I donโ€™t know if I am allowed to publish this - mods?):

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

+4
source

Late answer, but may be useful for readers of this topic:

I did a little online research and found a step-by-step guide that might help with your problem.

This tutorial describes the basics of continuous integration (CI) and the means to create a new database whenever a new change is found on the original checkout repository, do the unit tests with the database, and synchronize the test database with the QA environment.

A prerequisite for the implementation of continuous integration (CI) in the database development process is the availability of a database under source control.

+4
source

This may work for you, but usually this scene is the place where customers accept change. If you deploy to each assembly, they do not get consistent behavior.

We do not save the build result in SVN. It was normal for us to just have it in Teamcity under artifacts. I am not sure if we use best practices at this point.

You will be much happier with SVN and Teamcity ... good luck!

+2
source

All Articles