CruiseControl.rb migration: doh!
Wednesday, May 23rd, 2007I purchased a new build host (Compaq Proliant ML530) off of eBay. It’s faster and should be more reliable than my previous host (Compaq Proliant 3000 6/550). After carefully setting up my new build environment with Ruby, Rails, RubyGems, and subversion, I migrated my CC.rb system (two Rails projects and an NSIS project) to the new host. I ran some builds from the command line and by clicking the “Build Now” button on the web console. Everything worked well and quickly. I even changed my CCTray (cool gadget on WinXP) to monitor the new build host and stop monitoring the old host.
Sounds reasonable, right? Imagine my growing dread as every Rails revision I checked in failed to build. I would get strange errors in random locations -usually referring to fixture records missing. And it was taking longer than on the old build host. I was even more confused when I was able to successfully build the same revisions every time by clicking on the “Build Now” button and by building directly from the command line (in the work directory, ..\build).
Then it hit me: I had left the old build server running, and it was monitoring the same subversion repository and attempting to build as well. The two build processes were starting at about the same time and walking all over themselves in the test database.
I shut down the old build server and everything started working quickly and nicely. Doh!