So here's my stab at making a pretty significant upgrade to our infrastructure. 
With all these awesome new feature branches, we need an easier way to get 
people testing and submitting bug reports against them before they're merged 
in. These changes allow us to generate nightlies for any number of in repo 
branches of either the adium or adium-1.4 repository (yes, that means we'll 
have a 1.4 nightly, finally!).

Please take a look at the attached diff or clone the gist (where I've been 
versioning all the necessary files -- easier this way instead of having forks 
of three different repositories) and send feedback. In the next couple of days 
I'm going to try rolling out the modified php scripts (appcast-nightly.php and 
nightly.adium.im/index.php) and once those are working right, move on to the 
Makefile and upload script and Sparkle changes. 

Big big thanks to Thijs (xnyhps) for his help so far.

Attachment: 2nd-pass.diff
Description: Binary data


http://gist.github.com/901174

How it works:

buildbot has an array of repos and branches (repos are paths on "hg.adium.im" 
so "adium" an "adium-1.4", branches are in repository branches). When it builds 
each one, it injects NIGHTLY_REPO and NIGHTLY_BRANCH into the environment. 
(This is new as of last night -- right now that list simply contains ("adium", 
"default"). All nightlies, branch or not, will be using the same 
infrastructure.) To add a new one, you'll need to modify master.cfg. (This 
could probably be automated if it happens enough.)

That information gets used by the release makefile to set some Info.plist keys. 
The parameters "repo" & "branch" are then passed along when we hit the Sparkle 
update URL.

When the nightly is uploaded, it's now stored in a directory on the server like 
"repo-branch". The two scripts that look for nightlies have been modified to 
look in the right places. When a branch is merged in to trunk, deleting its 
directory on the nightly server is enough to get it to fall back to the default 
branch of the repo, or to the default branch of adium as a last resort.

Pretty much the only outstanding issue is presenting a list of alternative 
nightlies for display on nightly.adium.im.

-Colin

Reply via email to