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

Reply via email to