Hi, I don't know if this is helpful, but here is what we did to trigger builds preventing a build storm with nearly infinite rebuilds.
you don't like "build storms" you should base your triggers on the old CruiseControl plugin Ivycruise or something like this. It does the triggering roughly in the following way: 1. check all projects if the DIRECTLY depend on build project, no transitive dependencies for triggering 2. use the ivy feature to order all depend builds, this results in a list where the projects that have most dependencies on other projects are at the end. Example (x -> y, x depends on y): A -> B -> C D -> C B -> D E -> C 1. C is build. 2. B, D and E will be triggered 3. sort projects so that least depend projects come first: E, D, B, or D, E, B After E is build it triggers B and no build storm occurs. If you have a lot of build queue it could happen that B is build several times. Regards Klaas -----Ursprüngliche Nachricht----- Von: Craig Setera [mailto:[email protected]] Gesendet: Montag, 2. November 2009 22:07 An: [email protected] Betreff: Re: Finding dependent projects Hmm... That doesn't sound really appealing. We are already really fighting with time to build. I'm still not convinced we don't have some serious issues related to caching and TTL, but I haven't been able to pin it down. But we are definitely spending WAY more time doing Ivy resolution than I would like to see and I don't entirely know why that is. In my mind, Ivy is a very simple set of tools that can be amazingly difficult to use well. Getting it working isn't bad... getting it working well seems to be alluding me. On 11/2/09 3:01 PM, Joshua Tharp wrote: > No worries. I've been using Hudson and the plugin for several months. My > only complaint is that a module build can kick off a "build storm" as all > the downstream modules get scheduled, and then if any of those modules are > in turn dependencies, many modules can get placed back on the queue. If you > don't mind your build numbers increasing rather rapidly, and the build > machine cycles aren't in high demand otherwise, then it is a pretty good > solution. > > On Mon, Nov 2, 2009 at 12:57 PM, Craig Setera<[email protected]> wrote: > > >> Thanks. I've been picking up some of our build infrastructure, so I >> apologize for not having a good background on all of this. >> >> >> On 11/2/09 2:54 PM, Joshua Tharp wrote: >> >> >>> Have you looked at the Ivy plugin for Hudson? It does that already. >>> >>> On Mon, Nov 2, 2009 at 12:51 PM, Craig Setera<[email protected]> wrote: >>> >>> >>> >>> >>>> Has anyone used Ivy to map in reverse to find the modules that are >>>> dependent on a particular module? Does anyone have any suggestions in >>>> this >>>> regard? What I'd like to be able to do is trigger a build of all >>>> dependent >>>> modules (in Hudson) when a module is changed to avoid things like >>>> IncompatibleClassChangeError's from occurring. >>>> >>>> Any suggestions appreciated. >>>> Thanks, >>>> Craig >>>> >>>> >>>> >>>> >>>> >>> >>> >> >
