You definitely can achieve what you want, using build triggers. Each "kit" would be a project for cruise, and you can tell each project which projects trigger it - check the docs for info.<br><br>However, you might run into a wall with 50 projects on the same cruise box. Each of our projects runs as a separate process, and not only that, each process has the rails runtime loaded. This means that for 50 projects, you are looking at a lot of memory. If you want to try it anyway, be sure to turn on serialized builds in your site.config.<br>
<br>If you look around and determine that nothing does quite what you want it to, I will say that ccrb is much more hackable than most. That said you might go faster in a language that you're comfortable with.<br><br>
<div class="gmail_quote">On Mon, Apr 21, 2008 at 1:32 PM, Eric Hanchrow <<a href="mailto:eric.hanchrow@gmail.com">eric.hanchrow@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Thanks for the quick response, but I don't think externals will work,<br>
because I don't want to change the structure of our source tree; doing<br>
so would force the developers to change the way they work, and one of<br>
my goals is to avoid that.<br>
<div><div></div><div class="Wj3C7c"><br>
On Mon, Apr 21, 2008 at 1:28 PM, Billy Kimble <<a href="mailto:bkimble@inc21.com">bkimble@inc21.com</a>> wrote:<br>
> You can probably use SVN externals to achieve what you want :)<br>
><br>
> Structure:<br>
><br>
> /project -> <a href="http://yourdomain.com/svn/project" target="_blank">http://yourdomain.com/svn/project</a><br>
> /lib -> SVN External pointing to <a href="http://yourdomain.com/svn/kits/lib201" target="_blank">http://yourdomain.com/svn/kits/lib201</a><br>
> /config -> SVN External pointing to <a href="http://yourdomain.com/svn/kits/" target="_blank">http://yourdomain.com/svn/kits/</a><br>
> config991<br>
> /docs -> SVN External pointing to <a href="http://yourdomain.com/svn/kits/" target="_blank">http://yourdomain.com/svn/kits/</a><br>
> docs2093<br>
><br>
><br>
> In this scenario, if you add <a href="http://yourdomain.com/svn/project" target="_blank">http://yourdomain.com/svn/project</a> to<br>
> CC, it will trigger any time anything in ANY of the kits is<br>
> committed. If you add just the kit's svn repository location to CC,<br>
> it will only trigger for that particular kit.<br>
><br>
> Does this help?<br>
><br>
> Tag a kit and just add that kit to the repository, or<br>
><br>
><br>
> On Apr 21, 2008, at 1:20 PM, Eric Hanchrow wrote:<br>
><br>
> > Naturally I want some sort of continuous integration system. But what<br>
> > makes my situation unusual is that what I want to build is structured<br>
> > in an unusual way, and it's not clear to me if CruiseControl.rb can<br>
> > gracefully handle that structure.<br>
> ><br>
> > I want to independently build half a dozen "projects", each of which<br>
> > (in CruiseControl.NET terms) is its own "queue". Each corresponds to<br>
> > one deliverable set of files. (One project represents our web site;<br>
> > another represents a Windows installer that we build ... etc). Now,<br>
> > those projects don't simply correspond to a single Subversion URL;<br>
> > instead, each is composed of a number of "kits", each of which has its<br>
> > own Subversion URL. We have about 50 separate kits; most are<br>
> > basically a bunch of C-sharp files and a .csproj file. Each kit<br>
> > typically depends on some others; the kits thus form a directed<br>
> > acyclic graph of dependencies. We have a tool that will build a kit,<br>
> > and all its dependencies; and will also check them out of Subversion<br>
> > if needed. I wrote this tool myself and am perfectly comfortable<br>
> > hacking it.<br>
> ><br>
> > For each project, I want CruiseControl.rb to monitor the bits of the<br>
> > subversion repository that correspond to the constituent kits, and<br>
> > trigger a build whenever anything changes in those bits. Note that<br>
> > this is not the same as monitoring the entire repository, since I<br>
> > don't want a change in an unrelated kit to trigger a build for this<br>
> > project; nor is it the same as monitoring just one kit, since the<br>
> > project depends on many kits. Our building tool already knows how to<br>
> > determine whether a kit needs to be updated, so I'm imagining that<br>
> > CruiseControl.rb would simply invoke the build tool as a subprocess.<br>
> ><br>
> > At first I thought I would be able to teach it to do this by suitable<br>
> > fiddling of the "SourceControl" class, but I quickly confused myself<br>
> > -- partly because I haven't yet figured out how CruiseControl.rb<br>
> > works, and partly because I barely know the fundamentals of Ruby.<br>
> ><br>
> > I also have a very vague suspicion that, fundamentally,<br>
> > CruiseControl.rb assumes that there's a one-to-one-to-one<br>
> > correspondence between projects, Subversion URLs, and working copies;<br>
> > and that I'd need to change that assumption in order to get things<br>
> > working the way I want.<br>
> ><br>
> > Anyway: does sound doable -- for someone who's a decent programmer but<br>
> > new to Ruby -- and if so, do you have any advice on how to start?<br>
> > _______________________________________________<br>
> > Cruisecontrolrb-users mailing list<br>
> > <a href="mailto:Cruisecontrolrb-users@rubyforge.org">Cruisecontrolrb-users@rubyforge.org</a><br>
> > <a href="http://rubyforge.org/mailman/listinfo/cruisecontrolrb-users" target="_blank">http://rubyforge.org/mailman/listinfo/cruisecontrolrb-users</a><br>
> ><br>
> > --<br>
> > This message has been scanned for viruses and<br>
> > dangerous content by MailScanner, and is<br>
> > believed to be clean.<br>
><br>
><br>
> --<br>
> This message has been scanned for viruses and<br>
> dangerous content by MailScanner, and is<br>
> believed to be clean.<br>
><br>
> _______________________________________________<br>
> Cruisecontrolrb-users mailing list<br>
> <a href="mailto:Cruisecontrolrb-users@rubyforge.org">Cruisecontrolrb-users@rubyforge.org</a><br>
> <a href="http://rubyforge.org/mailman/listinfo/cruisecontrolrb-users" target="_blank">http://rubyforge.org/mailman/listinfo/cruisecontrolrb-users</a><br>
><br>
_______________________________________________<br>
Cruisecontrolrb-users mailing list<br>
<a href="mailto:Cruisecontrolrb-users@rubyforge.org">Cruisecontrolrb-users@rubyforge.org</a><br>
<a href="http://rubyforge.org/mailman/listinfo/cruisecontrolrb-users" target="_blank">http://rubyforge.org/mailman/listinfo/cruisecontrolrb-users</a><br>
</div></div></blockquote></div><br>