Tipically a deploy in production does not involve just a mere source code update (build) but requires a lot of other important tasks like, for example:
- Db scripts
- Configuration files (differents from test\production)
- Batch to schedule
- Executables to move to the correct path
- Etc. etc.
In our company we just send an email to a “Release email address” describing the tasks in order, which changeset need to be published (TFS), which SP need to be updated, db scripts and so on.
I believe there’s not a magic tool that does these tasks automagically in order, rollback included; but probably there’s something better than email that helps to keep track of releases in production.
Do you have any tools to suggest or practices to share?
When multiple tasks are required to support a full project deployment (and that’s frequently the case, in my experience), I’d suggest using a build/deployment tool. I’ve used Ant in the past with great success, but know others who swear by Capistrano, Maven and others.
Using Ant, I wrote a script that would:
Hope that helps some. I’ve written a few blog posts about this that may (or may not) be useful. They’re dated now, but the general information should still be solid enough.