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