Yes, our application includes a database, windows services, IIS configurations, and other things.. so rather then having the build system do all this work manually and try to maintain it as things changed between versions, we chose to do the work once in the installer and let it do all the legwork. Then of course, we are testing the installer, and it is easier to maintain.
The hardest part was working around limitations in our Build Agent. If you can use psexec and psshutdown, the task is relatively straight forward except - knowing when the installer is complete - knowing when a server is online and ready The first problem I avoided for now by using a static timer, but I have an idea on the solution now, I just haven't bothered to implement. The second I solved by checking the webserver's response using my visual basic script. If the webserver is up and responding, the underlying OS should be ready and willing to accept connections. This last bit was the hardest part in that there did not seem to be a ready solution available, and I did not know visual basic or how to make it console-friendly. That's all up there in the blog now if anyone needs it :) Of course.. all of this is even easier if you aren't on a windows platform :) -Steve -----Original Message----- From: Bob Archer [mailto:[EMAIL PROTECTED] Sent: Thursday, October 16, 2008 10:58 AM To: Steve Kapinos; nant-users@lists.sourceforge.net Subject: RE: [NAnt-users] summary of nant lessons learned, and some examples Ok thanks. I see what you are doing now... you are running the install rather than building it. I actually plan to start doing this soon rather than the current copy files deploy that we are doing to our QA servers. However, I am looking at using rake rather than Nant. I know, heresy. BOb -----Original Message----- From: Steve Kapinos [mailto:[EMAIL PROTECTED] Sent: Thursday, October 16, 2008 10:51 AM To: Bob Archer; nant-users@lists.sourceforge.net Subject: RE: [NAnt-users] summary of nant lessons learned, and some examples I have to run the nant script on a remote computer from where the software is being installed because of required reboots.. so I can't use exec to directly launch the installer... that really complicates life :) The build script for that project looks like this <target name="all" description="Does it all"> <call target="mapRemoteDir"/> <call target="deployUninstall"/> <call target="deployReboot"/> <call target="waitForCleanServer"/> <call target="deployFiles"/> <call target="deployInstall"/> <call target="deployReboot"/> <call target="waitForTMSServer"/> </target> The nant script is run by one machine, which pushes the nightly build to another machine. It uninstalls the last version on that remote, reboots it, waits for it to come back, pushes the new installshield files to it, starts the installer remotely, when the installer is finished, reboots the machine, and then waits to ensure the machine is back. It got even worse when the standard utilities to do this remote stuff (launching processes) did not work from my build agents, hence why I had to use my own visual basic scripts. Also, all the remote process stuff that uses WMI are 'fire and forget' methods. Your local process does not wait for the remote to finish. Further complicating from a script perspective knowing when to move to the next step. -Steve -----Original Message----- From: Bob Archer [mailto:[EMAIL PROTECTED] Sent: Thursday, October 16, 2008 9:48 AM To: Steve Kapinos; nant-users@lists.sourceforge.net Subject: RE: [NAnt-users] summary of nant lessons learned, and some examples Nice info. Thanks. Although, so you not use the Install Shield stand alone builder? Because it does return error codes to the exec task just fine. BOb -----Original Message----- From: Steve Kapinos [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 15, 2008 10:14 PM To: nant-users@lists.sourceforge.net Subject: [NAnt-users] summary of nant lessons learned, and some examples After finally getting around a looking at the results.. after a few projects using nant, including what were for me, some serious stumbling blocks.. I've pulled together examples from my scripts and some 'duh' moments and put them all together hoping future users will find them when they are coming across the same problems. As with most things.. if you had lots of examples from the start.. you'd probably save time. So here's my contribution back to the net for nant Topics included Starting a process on a remote computer Deleting and recreating a directory without generating error messages Setting a property up to have a default value or override it via environment variable. Nant and visual basic scripts, including console messages and error return codes Nant reading the result code of an Installshield Install Nant Map a Windows Share Nant reboot remote computer Rename a group of files I hope someone finds some use in these... if you see anything incorrect, please feel free to comment http://coreplex.blogspot.com/search/label/nant -Steve ------------------------------------------------------------------------ - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ NAnt-users mailing list NAnt-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nant-users ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ NAnt-users mailing list NAnt-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nant-users