Title: Message
Martin,
 
That's fine if your tasks are simplistic, and you can organise them in that way (although personally, I don't like the dependency way of doing things anyway, as I feel they make the scripts harder to read :) . However, many of my tasks have sections of script, and exec tasks in them (not to mention nested loops :), so are not so straightforward.
 
A good example is an Nunit task. We may run an Nunit test on a single compiled assembly (using the exec task), but that assembly contains potentially hundreds of tests. Some of those tests are good, some fail, some only fail when external services aren't available. In this case, the true/false way of looking at things isn't perfect for me - I need to be able to analyse the results, so I guarantee that task will pass by using the failonerror=false in the exec tast. That way, I can look at all the results and form a summary which is useful (and gets emailed out as part of a CCNET continuous integration). Using the dependencies method doesn't provide that granularity (unless I'm missing something somewhere :). The target that test runs from also works out what's been built, and what can be tested before actually running the tests in sequence on all the built assemblies. I suspect this is also the case in checking for warnings / option explicit as mentioned in the earlier email.
 
Originally, I had all my tasks in a single dependency list (<target name="Main" depends="Update,Build,Deploy,Test,Package"/> etc), but this just wasn't maintainable once the scripts became more complex (IWe checkout, build, deploy, test and package from Nant).
 
Hope that makes sense?
 
-----Original Message-----
From: Martin Gainty [mailto:[EMAIL PROTECTED]
Sent: 13 May 2004 4:36P
To: Price, Henry; [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: Re: [Nant-users] Interim state on a build between SUCCEEDED and FAILED

Henry/Bill
A)Put all of your mission critical tasks up front in some sort of clean or init target specifying failonerror="true" for all critical tasks
B)introduce the concept of task dependencies to later targets..consequent targets cannot execute if the initial target(s) failed
----- Original Message -----
Sent: Thursday, May 13, 2004 11:13 AM
Subject: RE: [Nant-users] Interim state on a build between SUCCEEDED and FAILED

I've worked around a similar problem which relates to the success of Nunit tests (amongst other things) based on external sources. We have no control over them, so they are prone to fail which would normally cause the build to fail entirely. In this case, we may be aware that the external sources are down, but still want the build to run (entirely) without just failing.

Without going into huge detail, the way I do most of it is with a combination of the <exec> task (to run the Nunit tests - gives a bit more control than the Nant task) and several generous chunks of C# script. The tests are run and output XML, some C# script then runs against that XML looking for failures and stores the result in a Nant property. The <exec> task has failonerror="false" so the build will continue regardless of failures.

As the last task in the build, it looks at a number of such properties (this can be applied to template checking, Ndoc generation, FXCop etc) and then I have another little piece of C# script which then writes a summary report (something like 'Build Succeeded, but the following external tests failed ... There were the following warnings...' etc. You can also use a conditional <fail> task to fail things deliberately at the end if you decide it's all gone too wrong.

This is fine for a non-release candidate, the scripts also check for this, and are a lot more rigid in what passes and gets versioned and packaged for release.

Sorry if that's a bit vague - hope it helps :)

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: 13 May 2004 3:04P
To: [EMAIL PROTECTED]
Subject: [Nant-users] Interim state on a build between SUCCEEDED and FAILED


I have written a custom task to perform a scan on a VS project file when the build is executed to ensure the project complies with standards (it checks that option explicit is set in a VB project for example and checks for files in the archive that aren't part of the project.)

The problem I have is that I want to have an interim state in the build script so that if there are errors from my task, it doesn't fail the build but does produce warnings and the end state of the build script should be SUCCEEDED WITH WARNINGS or something.  I can throw an exception in my task and fail the build, but I can't see any way of just flagging warnings.

The task currently outputs a warning in the build output, but this tends to get lost in the total output as there are about 50 projects that get built and checking each one is laborious.

Is what I want to do possible?  Has anyone found another way?

Cheers,

Bill




______________________________________________________________

CONFIDENTIALITY NOTICE

This communication and the information it contains is intended for the person or organisation to
whom it is addressed.  Its contents are confidential and may be protected in law.  Unauthorised use,  copying or disclosure of any of it may be unlawful.  If you are not the intended recipient, please

contact us immediately.

The contents of any attachments in this e-mail may contain software viruses, which could damage your
own computer system.  While Marlborough Stirling has taken every reasonable precaution to minimise
this risk, we cannot accept liability for any damage, which you sustain as a result of software
viruses.  You should carry out your own virus checking procedure before opening any attachment.


Marlborough Stirling plc, Registered in England and Wales
Registered No. 3008820,
Allen Jones House, Jessop Avenue, Cheltenham, Gloucestershire, GL50 3SH
Tel: 01242 547000     Fax: 01242 547100
http://www.marlborough-stirling.com



-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband Sign-up now for SourceForge Broadband and get the fastest 6.0/768 connection for only $19.95/mo for the first 3 months! http://ads.osdn.com/?ad_id%62&alloc_ida84&op=click

_______________________________________________
Nant-users mailing list
[EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-users



"This communication is intended solely for the addressee and is confidential and not for third party unauthorised distribution."


"This communication is intended solely for the addressee and is confidential and not for third party unauthorised distribution."

Reply via email to