We have set up an environment where we can conditionally rebuild components,
if they've changed without having to rebuild the entire system. Doing so
requires careful management of dependencies. If an interface or common
datatype changes, then you pretty much need to rebuild everything. But if
the changes are localized to a DLL then you can rebuild it independently.

In our system we look at the *modifications.xml* file that is output by
CruiseControl. If it contains only changes to a single component then we
only rebuild that component; otherwise we build everything.

Unfortunately the vast majority of the changes are to more than just a
component. To overcome this and avoid a 2 hour build, we've engineered our
system into assembly systems which are small enough to build quickly (10 min
max), but large enough so that we only have a few of them. They are layered
and independently versioned. Changes at the top or application layer are the
most common and only require a rebuild of that assembly system. Changes at
the bottom or core layer are the least common and require a rebuild of
everything above it.

Hope that helps.
Chris.
---
X

Continuous improvement is better than delayed perfection. - Mark Twain


On Tue, Aug 9, 2011 at 8:36 AM, Macdiarmid, James D. <
james.d.macdiar...@saic.com> wrote:

> **
>
> I’m still a bit green with Nant scripting.  I have a build script that has
> one main target, and a ton of calls to other targets.  During the build
> process, I’m building a client GUI, Mid Tier piece and a web service p
> iece.  At the start of the build process, there are calls to targets that
> pull  tickets and change sets from TFS that are ready for a daily build
> process then writes them to a file to be included in a final report at the
> end of the build.  There are a few other things that take place but my
> main concern is that if my build breaks anywhere thereafter it adds
> additional time to the build.  Right now the whole build process takes
> roughly 2  hours to complete and builds both .NET and VB6 code.  I’d like
> to be able to be able to set something in the script  as a conditional and
> only rebuild or rerun a portion of the build process.
>
> Has anyone done anything such as this?
>
> Thank you for your time and I look forward to hearing your replies.
>
> Jim
>
>
> ------------------------------------------------------------------------------
> uberSVN's rich system and user administration capabilities and model
> configuration take the hassle out of deploying and managing Subversion and
> the tools developers use with it. Learn more about uberSVN and get a free
> download at:  http://p.sf.net/sfu/wandisco-dev2dev
>
> _______________________________________________
> NAnt-users mailing list
> NAnt-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nant-users
>
>
------------------------------------------------------------------------------
uberSVN's rich system and user administration capabilities and model 
configuration take the hassle out of deploying and managing Subversion and 
the tools developers use with it. Learn more about uberSVN and get a free 
download at:  http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
NAnt-users mailing list
NAnt-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to