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.
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