Reputation: 47873
I'm looking for my nant build script to be able to clean up after itself if a build goes wrong. I'm looking for something resembling the following execution:
Target= Software.Build
Target= Software.Build.Success *(depends on Software.Build succeeding)*
Target= Software.Build.Failed
I am looking for a solution that if the Software.Build target fails then Software.Build.Failed will be executed e.g. to e-mail someone that the build failed in some way, otherwise Software.Build.Success will be run to allow the build script to continue.
Is this even possible with nant? If so, could anyone point me to a suitable article/solution?
Upvotes: 3
Views: 1340
Reputation: 2142
Or if you have global data to be cleaned up, you can use the NAnt OnFailure event.
<property name="nant.onfailure" value="failure" />
<target name="failure">
<!-- Put your cleaning code in here -->
</target>
Upvotes: 6
Reputation: 7187
NAntContrib has a trycatch
task:
<trycatch>
<try>
<call target="Software.Build" />
</try>
<catch>
<call target="Software.Build.Failed" />
<fail message="build failed" />
</catch>
<finally>
<!-- execute everything that doesn't depend on success or failure -->
</finally>
</trycatch>
<call target="Software.Build.Success" />
Upvotes: 4