Slightly off-topic, but I've been building my CI server by hand with Rake and various shell/Ruby scripts. It's working OK but I wonder if I would gain anything by moving to Hudson. I've heard a lot about it lately.
That is to say, as a buildbot user/contributor I look at things like this and say, ``Oh, yeah, we added latent slaves with an EC2 sample implementation somewhere around the end of 2008/beginning of 2009.''
buildbot lacks a really awesome web interface, but I don't use that part very much. It runs everywhere and does everything, so we end up having to focus mostly on our actual software.
But how do you ensure that your EC2 slaves have exactly the same tools/libraries/environment as your blessed build machine? I'm guessing you just have to carefully curate and update AMIs every single time you make a change to the master. Chasing that stuff down is massively time-consuming.
I haven't made very many AMIs, but when I did, I got it down to a little shell script that basically goes from a blank machine to me installing a few things I needed, building some stuff I needed, uninstalling some other stuff and uploading the images with roughly no effort on my part. The most painful part was using the web console to launch instances and then wait for them.
If you're running on EC2, you should _really_ be using a tool like Chef or Puppet (or at least your OS's package manager with custom packages) to make your configuration repeatable. This will allow you to spin up new machines in a known configuration in minutes, and your entire environment will be completely documented.
8 comments
[ 2.7 ms ] story [ 34.9 ms ] threadThat is to say, as a buildbot user/contributor I look at things like this and say, ``Oh, yeah, we added latent slaves with an EC2 sample implementation somewhere around the end of 2008/beginning of 2009.''
buildbot lacks a really awesome web interface, but I don't use that part very much. It runs everywhere and does everything, so we end up having to focus mostly on our actual software.
I haven't made very many AMIs, but when I did, I got it down to a little shell script that basically goes from a blank machine to me installing a few things I needed, building some stuff I needed, uninstalling some other stuff and uploading the images with roughly no effort on my part. The most painful part was using the web console to launch instances and then wait for them.