How do you track what you put into production?

Typically, a production deployment does not simply include updating the source code (assembly), but it requires many other important tasks, such as, for example:

  • Db scripts
  • Configuration files (differences from test \ production)
  • Planning Package
  • Executable files to go to the correct path
  • Etc. and etc.

In our company, we simply send an email to the "Release email" email address describing the tasks in the order that you need to change ( TFS ), which need to be updated with SP, db scripts, etc.

I believe that there is no magic tool that automatically performs these tasks, including rollback; but there’s probably something better than email, which helps track releases in production.

Do you have any tools for suggestions or practices for sharing?

+4
source share
3 answers

If several tasks are required to support the full deployment of the project (and this often happens, in my experience), I would suggest using the build / deployment tool. I have used Ant in the past with great success, but I know others who swear by Capistrano, Maven and others.

Using Ant, I wrote a script that:

  • Pull the specific revision I would like to receive from my VCS
  • Create a tarball of the target directory on the remote computer (rollback if necessary)
  • Create a MySQL database dump file (also for rollback)
  • Delete the remote directory and SSH new content just pulled from VCS
  • Perform various other logistic operations (perms file setup, ownership, etc.).
  • Create a release branch in VCS itself
  • Create a tag with the appropriate version information, so I always had a snapshot of the code base at the time of deployment.

Hope this helps. I wrote a few blog posts about this that may (or may not) be helpful. They are dated now, but general information should be strong enough.

+5
source

You might be interested in Team Foundation Build Recipes A website showing some build scripts developed using the SDC task library, and the MSBuildTasks library

+1
source

How about something like SVN? You can put all your code in the repository, and then, when you are ready to release from production, pull your stuff from the test. Then you will have very specific changes with information about what happened. SVN keeps track of all this.

0
source

Source: https://habr.com/ru/post/1309001/


All Articles