> I agree that a build is not a deployment, but I do believe 
> a build can be a component of a deployment.  

I am also looking to use NAnt as both a build tool and a deployment
tool. (Haven't got there yet, still setting up infrastructure).

I disagree, however, with the premise that NAnt should be fully
transactional.

Why?

For NAnt to be fully transactional, every task needs to have built in
"smarts" to support rollback.

How would you achieve this in a task that runs an SQL script to update
the table structure of a database? It seems that you're expecting the
task to be able to understand the script and dynamically generate
another script to restore the database to its former state.

Even for simpler tasks, like deleting files from a file system, the
issue of transactionality becomes difficult. You can't just defer the
delete until it is time to commit, because other activities are likely
to occur in the same directories. Instead, you need to move the files
(to somewhere there is enough disk space, which may not be TEMP), then
handle both commit (delete/cleanup) and rollback (move the files back
again).


In my scripts, the structure I'm taking is that our change controller
will have two separate commandlines to run.

The first will perform a full backup of everything affected - zip
directories, extract registry keys, dump database tables.

When that has worked, the second will do the actual deployment, with
appropriate error messages if everything fails.

Just my 2c,
Bevan.



******************************************************************************
"This message (and any files transmitted with it) are confidential and 
may be legally privileged. If you are not the intended recipient please
notify the sender immediately and delete this message from your system.

This message does not necessarily reflect the views of the
Reserve Bank of New Zealand. If the recipient has any concerns
about the content of this message they should seek alternative
confirmation from the Reserve Bank of New Zealand."
******************************************************************************





-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Nant-users mailing list
Nant-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to