Hands-off Delivery of Builds to Targets
I worked on a project a few years ago where the QA team pulled the builds. At first I thought, ok, nice vote of no confidence to the dev team, but then, I thought ‘cool, let‘s see how this goes.‘ It was bliss. Partially, of course, because the QA team was really good but also, because it is as it should be. Why have developers deliver builds? Especially to test and staging instances? There really is no good reason, and flow-wise, it is a dream to just be able to say ‘we believe the code is feature complete now, or the bug list is completed,‘ then just let QA jump in, perform smokes, and let it tell the business people that something is ready. The most painful part of interfacing with business is definitely seeing their faces when they go to grab what they think is going to be a pot and get wet clay instead.
For such a system to work, 2 big things are needed: some way to migrate the databases. On this project a few years ago, they had a junior db guy who worked for the DBA. Second is some way to automate the smokes.
So in my dba-free world, we spent some time looking around for tools to do database migrations and ended up with dbdeploy. To actually pull the build, we are using Hudson. Of course, this has the advantage of making it as simple as clicking an icon, but it‘s turned hudson into an even bigger mess than it was getting to be. So today, I started thinking, maybe I will use the matrix build feature in hudson and have the two dimensions be the branch we are building and the other be the target environment. There‘s not much documentation about the matrix builds. I am wondering how many people out there are doing hot deploys from hudson and if you have a better idea, please speak up!
By, the way, since I complain a lot, and I have said this before, but Hudson is not a, perhaps, the model these days for open source projects. Just looking around for a few minutes for the matrix build info, I tripped onto a discussion of doing pre-tested commits. I LOVE that idea. Ok, I am not going to do the stupid Windows marketing thing and say it was mine (great message, btw: our customers are a bunch of myopic, deluded narcissistic megalomaniacs), but it is something that has been big on my radar, per my earlier posts about scm.