<div class="gmail_quote">On Thu, Apr 2, 2009 at 5:06 PM, Alexander Neundorf <span dir="ltr">&lt;<a href="mailto:a.neundorf-work@gmx.net" target="_blank">a.neundorf-work@gmx.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div><div></div><div>On Wednesday 01 April 2009, Philip Lowman wrote:<br>
&gt; Is there a best practices for kicking off Continuous builds using ctest?<br>
&gt; What do most people do for this?<br>
&gt;<br>
&gt; I know about svn hooks but I don&#39;t want multiple builds spawned for each<br>
&gt; commit, just the latest commit when the machines are idle.  Also, I have<br>
&gt; multiple build machines on various operating systems.<br>
<br>
</div></div>I think it&#39;s usually just &quot;time triggered&quot;, e.g. every 15 minutes or so.</blockquote><div><br>Yeah I tried something like that and realized I would have to give up cleaning the build directory because it seems to recompile everytime, even if the svn revision number hasn&#39;t changed (bug?).  I don&#39;t use a config.h file so not rebuilding from scratch on every commit could potentially break the build on MSVC.<br>
<br>I think I have a better idea which would be to turn ctest into a daemon that connects to a build server which sends out a per-branch pulse when a commit occurs.  Connected clients that are idle and interested in the pulse (by having already examined CVSROOT or svn info) could immediately start their builds.  Clients that are busy would queue their update &amp; start their builds when the existing builds finish.<br>
<br>ctest --daemon <a href="http://my.cdash.server.org/check.php">http://my.cdash.server.org/check.php</a> \<br>   -S foo-continuous-msvc80.cmake \<br>   -S foo-continuous-msvc90.cmake<br><br>In this way the continuous builds could be started nearly instantaneously after a commit.  Long polling could be used on the CDash server to make this work through proxy servers.  One could also envision CDash keeping tabs on connected sites and being able to inform the site administrator if one goes down in the middle of the day.<br>
</div></div><br>-- <br>Philip Lowman<br>