I am planning a procedue to release our software to our customers using an advanced version of an existing procedure which uses windows batch scripts. I am hoping to improve this process and automate the installation of the following items:
- Files. Files are simply copied to a destination.
- MSSQL Databases. I guess I'll use the OSQL command to run these against a database.
- IIS Virtual Directories. Server versions of windows generally have the IIS toolkit installed which has some tools for creating virtual directories and whatnot from the commandline so I will use that. I think the "iiscnfg" is the one I use to insert previously saved config files into IIS.
- Windows Services. Our services have the ability to install themself from the commandline.
So for each application deployment I have a structure like this:
Releases\
| get-release.bat
| Release1\
| Release2\
| Release3\
| | Content\
| | | Application1\
| | | | bin\
| | | | | Application1.exe
| | | | etc\
| | | | | Application1.config
| | | | db\
| | | | | CreateDatabase.sql
| | | | | CreateTable1.sql
| | | | | CreateTable2.sql
| | | | iis\
| | | | | Application1Web.xml
| | | | pre.bat
| | | | post.bat
| | | | environment.bat
| | | Application2\
| | | Application3\
| | | Application4\
| | Release1.doc
So basically you open a terminal and CD to the Releases directory, run a command something like:
get-release "Release3"
which will run a series of commands on all the applications in the Release3 directory and copy all the files, configs, install all the databases and iis virtual directories.
There is a little bit more which it does like backup the destination directory for files, etc. but its irrelevant for the moment.
My question is whether anyone has any experience doing a deployment like this and if there is any mistakes I can learn from other peoples experience.
Unfortunately we cannot go with MSI packages or that NullSoft one (who's name escapes me for the moment). If its not done like this it is done manually so I'm really trying to help myself here.