30th April 2011
Part of my role at Headscape has included looking at our development processes/practices. There's a blog in this (and it's coming soon), but as a brief teaser to that:
I'm using Cruise Control.Net to automate MSBUILD builds from our source control provider. Originally this was happening on a regular interval... but that's just annoying (if you get annoyed by such things) and led to waiting to see if it had built, or worse just force building anyway. Luckily Github and CodebaseHQ both have post commit/push hook mechanisms that we can take advantage of.
As you'd expect these processes post some data to a url of your choice when a push is received for a particular repository.
So, taking codebasehq as an example the post data they provide is json (as listed in their own repo). This is fantastic but the notification centre itself only allows creation of notifications to the project level, not repository level. So the repository name has to come from the post data itself (if I wish to build the CCNet project with the same name) i.e. I cannot use the url alone to identify the repository.
To join these two tools together I ended up making a small Application that could accept the post from Codebase and essentially forward it on to the appropriate CCNet build request. And so CIBridge came into existance, leading to the following workflow:
Commit Locally -> Push to Codebase -> Codebase Notification notifies CIBridge -> CIBridge forces a CCNet Build -> CCNet publishes the site
Ok, so what I thought might be cool.. is customisable posts from these hosted source control providers. Something along the lines of a screen that allows you to build up a list of post variable 'templates' with keywords used to be replaced by the hook info during generation of the post.
So I could, for example, say 'I want one form variable called 'Repository' with the contents { name: %REPO_NAME% }' (where repo name is replaced by the repo that caused the notification).
In this way I could use the hosted source code provider directly, without the need for the bridge, nor for specific support from my current or future build server.
CIBrdige was a quick fix to get it running. Is there a better way?
Having not made the trip down to Bournemouth for re:develop 1 or 2 it was great to be in attendance for it's third incarnation.
Making games over a weekend... competitively... and we chose a dead technology... why the hell not!
Hack Days are awesome. How could they not be? you get to make stuff with like minded people with no bosses, no client deadlines, no point but the love of it.
It's been a while since I posted. I'd like to say that's because a lot's been going on. In reality I got lazy and now I just happen to have something to write about that can make it sound like a lot has been going on.