<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Self As Team &#187; continous integration</title>
	<atom:link href="http://blog.intraspectivecorp.com/tag/continous-integration/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.intraspectivecorp.com</link>
	<description>Dallas based Ruby on Rails and Java Consulting</description>
	<lastBuildDate>Mon, 21 Sep 2009 02:06:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Continuous Integration Too Simple to Ignore</title>
		<link>http://blog.intraspectivecorp.com/2008/04/15/continuous-integration-too-simple-to-ignore/</link>
		<comments>http://blog.intraspectivecorp.com/2008/04/15/continuous-integration-too-simple-to-ignore/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 21:52:33 +0000</pubDate>
		<dc:creator>David Hainlin</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[continous integration]]></category>
		<category><![CDATA[cruise control]]></category>

		<guid isPermaLink="false">http://blog.intraspectivecorp.com/2008/04/15/continuous-integration-too-simple-to-ignore/</guid>
		<description><![CDATA[I&#8217;ve always been a big fan of continuous integration.  There is something empowering about having a tireless little robot patiently waiting for you to check your code in. When it sees your latest commit, it quickly downloads it and then runs all your tests.  When that&#8217;s over, it prints a nice web summary [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always been a big fan of <a href="http://en.wikipedia.org/wiki/Continuous_integration">continuous integration</a>.  There is something empowering about having a tireless little robot patiently waiting for you to check your code in. When it sees your latest commit, it quickly downloads it and then runs all your tests.  When that&#8217;s over, it prints a nice web summary of what it did.  It can even update your main team portal pages with updated content (javadocs, rdocs, test coverage, daily metrics, whatever). It is like having a groupie fanbot who loves your code.</p>
<p>Until you check in something that breaks (fails a test or worse yet, doesn&#8217;t compile). Then your little groupie is more like a stalker. Not only does it display a nasty web page (in shades of red) about the build YOU broke but it probably sent out a raft of emails about it.  Pretty embarrassing.</p>
<p><span id="more-10"></span></p>
<p>This is actually a  love hate thing. Every successful project I&#8217;ve worked (within the last 8 years) on has used continuous integration in one form or another. The pseuso standard in the industry has been Cruise Control.  It is a pretty simple java based process and it can handle very complex setups.  The big downside is it is a real big pain to setup.</p>
<p>Enter <a href="http://cruisecontrolrb.thoughtworks.com/"><strong>cruisecontrol rb</strong></a>.</p>
<h4>What is cruise rb</h4>
<p>This is essentially a cruise control written by the <a href="http://www.thoughtworks.com/">Thought Works</a> guys in Ruby/Rails.  The neato thing is this variant of cruise is a breeze to setup.  Literally took 5 minutes.  On our Redhat server it went something like this:</p>
<ol>
<li>wget http://rubyforge.org/frs/download.php/27495/cruisecontrolrb-1.2.1.tgz</li>
<li>tar zxvf cruisecontrolrb-1.2.1.tgz</li>
<li>cd cruisecontrolrb-1.2.1</li>
<li>./cruise add guide &#8211;url svn://some/repo/we/had/trunk</li>
<li>./cruise start &amp;</li>
<li>Add a redirector in apache to redirect  */cruise/* to  localhost:3333 (which is where cruise starts)</li>
<li>sudo /usr/sbin/httpd -k restart</li>
</ol>
<p>That&#8217;s it.  (almost&#8230; read about some of the slight config tweaks I needed to make below)</p>
<p>Too easy.</p>
<h4>Notes / Next Steps</h4>
<p>Note, this version of cruise is limited to svn only (other SCM&#8217;s are in the works, and there is a patch for at least git out there somewhere). This cruise can support java (or other) projects as well as long as you tell it how to build.</p>
<h4>Some Minor Hacks &#8211; cruise rb is RoR after all&#8230;</h4>
<p>I actually needed to do a simple set of changes to make cruise&#8217;s dashboard (it&#8217;s webapp) happy behind the apache redirector (the redirector is needed because 03 doesn&#8217;t have port 3333 open to the outside world).</p>
<ol>
<li> add ActionController::AbstractRequest.relative_url_root = &#8220;/cruise&#8221; to the config/environment.rb file</li>
<li>modify the public/stylesheets/*.css files so url(/images/&#8230;) were replaced with url(/cruise/images/&#8230;) throughout.</li>
</ol>
<p>Continous integration is like zentest for the entire team but can also do some really useful things like building team / project documentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intraspectivecorp.com/2008/04/15/continuous-integration-too-simple-to-ignore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
