Nick Sieger: Tag continuousintegrationtag:blog.nicksieger.com,2005:TypoTypo2010-11-22T18:23:56+00:00Nick Siegerurn:uuid:50294722-50b0-41d1-8034-6c47be2169602007-05-17T17:35:00+00:002010-11-22T18:23:56+00:00RailsConf Releases<p>Just a quick update. Firstly, I just released ci_reporter 1.3; it should be available in the gem index shortly. Thanks to Bret Pettichord, Jeremy Beheler, and Charlie Kunz for reporting issues and prodding me to fix a couple of bugs. The two new items in this release are:</p>
<ul>
<li>RSpec 0.9/trunk-compatible. You can now <a href="http://rspec.rubyforge.org/"><code>describe/it</code></a> all you want with ci_reporter.</li>
<li>Errors and failure stack traces now include the full error message and exception type.</li>
</ul>
<p>Secondly, JRuby 1.0RC2 has been released. Although there is no official release announcement at the moment, it is <a href="http://dist.codehaus.org/jruby/">available for download</a> and has been propagated to the central Maven repository also. Please do check it out and let us know on the <a href="http://xircles.codehaus.org/projects/jruby/lists">mailing lists</a> or in <a href="http://jira.codehaus.org/browse/JRUBY">JIRA</a> if you come across any blocker issues or regressions. Just a couple more weeks of stabilization; expect a rockin’ 1.0 release in June!</p>
<p>Lastly, expect an <a href="http://jruby-extras.rubyforge.org/ActiveRecord-JDBC/">ActiveRecord-JDBC 0.3.2</a> release Real Soon Now.</p>Nick Siegerurn:uuid:a359cdf8-24cc-4291-9425-952eba8d4f262007-03-16T03:47:17+00:002010-11-22T18:55:44+00:00JRuby Update: Continuous Improvement<p>JRuby development pace has been fast and furious for the past few months, and, at times dangerous. While the overall gains have been significant, occasional regressions to various parts of the interpreter and applications such as rubygems have been frustrating for people trying to track the bleeding edge.</p>
<p>Well, <a href="http://jruby.thresher.com/">no longer</a>. I’ve now got <a href="http://www.atlassian.com/software/bamboo/">Bamboo</a> up and running, continuously building JRuby itself, as well as test suites of third-party software. Right now, there is a gem install smoke test (for ensuring basic gem install continues to work) as well as the ActiveSupport tests (which are run with <a href="http://caldersphere.rubyforge.org/ci_reporter/">CI::Reporter</a> of course so we can <a href="http://jruby.thresher.com/build/viewBuildResultsFailedTests.action?buildKey=ACTIVESUPPORT-DEF&buildNumber=4">track test failures</a> -- now you see the method to <a href="/articles/2007/01/06/continuous-integration-goodness-tm-for-your-ruby-project">my earlier madness</a>).</p>
<p>On the short list for new builds to be added to the CI server are:</p>
<ul>
<li>Testing the rest of the Rails components</li>
<li><a href="http://jruby-extras.rubyforge.org/ActiveRecord-JDBC/">ActiveRecord-JDBC</a></li>
<li>Nightly snapshots for those who want to track development but don’t want to build from source</li>
</ul>
<p>If you have a favorite pure-Ruby package or code that exercises JRuby in a public source repository, let me know and we’ll consider adding it to Bamboo so you (and we) know if and when it breaks, or how badly it’s broken.</p>
<p>On a side note, I’ve quietly released CI::Reporter 1.1; you should be able to get it from gems soon. Quietly, because there was only a small, non-essential change -- an <code>assertions</code> attribute was added to the <code>testsuite</code> element in each XML file. Custom applications wishing to count the number of assertions per test suite can parse it out of the XML. Maybe there’ll be a non-XML output format in the future, but I don’t need it now, so it’s not going to be built.</p>Nick Siegerurn:uuid:6a784c57-aafc-4e32-8025-cad6e194f2fc2007-02-15T05:04:40+00:002010-11-22T19:38:31+00:00Happy V-Day: CI::Reporter 1.0 Gem Released<p>As requested, CI::Reporter has been released as a gem version of my <a href="/articles/2007/01/06/continuous-integration-goodness-tm-for-your-ruby-project">Rails plugin version</a>. Follow <a href="http://caldersphere.rubyforge.org/ci_reporter">these instructions</a> for installing the new gem version.</p>
<p>For the uninitiated, CI::Reporter is an add-on to Test::Unit and RSpec that allows you to generate XML reports of your test and/or spec runs. The resulting files can be read by a continuous integration system that understands Ant’s JUnit report XML format, thus allowing your CI system to track test/spec successes and failures.</p>
<p>The old Rails plugin code is still in the previous location, but I don’t plan to do anything else with it so I encourage you to install the gem and use the new <a href="http://svn.caldersphere.net/svn/main/plugins/ci_reporter">lean-and-mean plugin</a> that depends on it.</p>
<p>At the time of the post, the gem is hot off the presses, so it may take a little bit for it to hit the gem index and mirrors. Let me know if it works for you!</p>Nick Siegerurn:uuid:e3f1c8a2-8050-44b8-a1f5-02cecb0ff92c2007-01-06T15:42:00+00:002010-11-22T19:38:57+00:00Continuous Integration Goodness(TM) for Your Ruby Project<p>As much as we’d like to think we live in a Ruby-glasses-colored world, the fact is there are plenty of neat toys out there that don’t know a bit about us. One that I’m currently enamoured with is <a href="http://confluence.atlassian.com/display/BAMBOO">Bamboo, Atlassian’s new continuous integration server</a>. But, most commercial CI products are aiming for a wider market, and that means Java and Ant. Ant and JUnit predate Rake and Test::Unit by a few years, so I’m afraid they beat us to the punch, so that now the <a href="http://ant.apache.org/manual/OptionalTasks/junit.html">JUnit Ant task’s</a> XML format is pretty much the first consideration for a continuous integration server to understand in order to display a test report for a build.</p>
<p>Where does that leave us Rubyists who want to play along with the bigs? <a href="http://svn.caldersphere.net/svn/main/ci_reporter">Right here!</a>. With support for not just <a href="http://blog.nicksieger.com/articles/tag/rspec">RSpec</a>, but Test::Unit too.</p>
<p>Right now, it’s packaged as a Rails plugin, because I’m lazy and I don’t need anything else right now. If you’re interested in a gem, please leave a comment. To install into your Rails app, the usual:</p>
<div class="typocode"><pre><code class="typocode_default ">./script/plugin install http://svn.caldersphere.net/svn/main/ci_reporter</code></pre></div>
<p>That’s it! Now all you have to do is have your CI server invoke an extra target before the main target that runs your tests.</p>
<p>For RSpec,</p>
<div class="typocode"><pre><code class="typocode_default ">rake ci:setup_rspec spec</code></pre></div>
<p>will leave one XML file per context in the <code>spec/reports</code> directory (creating it if it doesn’t exist).</p>
<p>For Test::Unit,</p>
<div class="typocode"><pre><code class="typocode_default ">rake ci:setup_testunit test</code></pre></div>
<p>will leave one XML file per test case class in the <code>test/reports</code> directory.</p>
<p>Most CI servers have configuration telling them where to look for test reports. Simply plug in one of these directories, and you’re set. Now sit back and watch your test or spec failures get tracked in your automated builds.</p>
<p><img src="/files/test-results.png" alt="test results" title="test results"/></p>