ReleaseEngineering/Upgrading Buildbot: Difference between revisions
(→Staging a New Master: notes about buildbotconfig prereqs) |
No edit summary |
||
Line 18: | Line 18: | ||
Switch to the ''default'' branch and use ''hg merge'' to merge the changes. Resolve any conflicts (bearing in mind that they may be significant, rather than merely textual). | Switch to the ''default'' branch and use ''hg merge'' to merge the changes. Resolve any conflicts (bearing in mind that they may be significant, rather than merely textual). | ||
Commit your updates to ''default''. That's it - now it's time to test! | Commit your updates to ''default''. That's it - now it's time to test! | ||
Line 25: | Line 23: | ||
== Staging a New Master == | == Staging a New Master == | ||
On a staging machine, | On a staging machine, | ||
* clone your hg repo into ''/tmp'' or somewhere convenient | * clone your buildbot hg repo into ''/tmp'' or somewhere convenient | ||
* create a new virtualenv in /tools: | * create a new virtualenv in /tools, using python-2.6.5: | ||
/tools/python-2.6.5/bin/virtualenv /tools/buildbot-0.8.2 | /tools/python-2.6.5/bin/virtualenv /tools/buildbot-0.8.2 | ||
* activate it | * activate it | ||
Line 32: | Line 30: | ||
* install the buildbot (master) package | * install the buildbot (master) package | ||
cd master/ | cd master/ | ||
pip install . | |||
Back in your staging directory, edit the Makefile to point it at the new version: | Back in your staging directory, edit the Makefile to point it at the new version: | ||
BUILDBOT=/tools/buildbot-0.8.2/bin/buildbot | BUILDBOT=/tools/buildbot-0.8.2/bin/buildbot | ||
that's it - ''make restart'' and check the /about URI to make sure it upgraded ( | that's it - ''make restart'' and check the /about URI to make sure it upgraded (you should see an hg revision in the footer). You will probably need to run ''buildbot upgrade-master'' to upgrade the database first, but the buildmaster will tell you that. |
Revision as of 20:43, 23 December 2010
Structure
Mozilla's copy of Buildbot is at http://hg.mozilla.org/build/buildbot. There are two branches in this repository - upstream and default. The former is basically a copy of the Buildbot source from git, while the latter is the locally patched version.
If you have a look at the revision graph, you'll see that upstream gets updated with each new buildbot release, then merged into default.
Upgrading Process
Get a copy of upstream Buildbot from a tag, as a tarball. The easiest way is to go to the 'downloads' page on github and download the appropriate tarball. You can also make a clone and use git archive.
In a checkout of build/buildbot,
- switch to the upstream branch,
- rm -rf everything,
- untar the tarball, and
- use hg addremove to process any added or removed files.
Commit with a message like "Imported Buildbot-0.8.2 source", then tag with e.g., BUILDBOT_0_8_2.
Switch to the default branch and use hg merge to merge the changes. Resolve any conflicts (bearing in mind that they may be significant, rather than merely textual).
Commit your updates to default. That's it - now it's time to test!
Staging a New Master
On a staging machine,
- clone your buildbot hg repo into /tmp or somewhere convenient
- create a new virtualenv in /tools, using python-2.6.5:
/tools/python-2.6.5/bin/virtualenv /tools/buildbot-0.8.2
- activate it
source /tools/buildbot-0.8.2/bin/activate
- install the buildbot (master) package
cd master/ pip install .
Back in your staging directory, edit the Makefile to point it at the new version:
BUILDBOT=/tools/buildbot-0.8.2/bin/buildbot
that's it - make restart and check the /about URI to make sure it upgraded (you should see an hg revision in the footer). You will probably need to run buildbot upgrade-master to upgrade the database first, but the buildmaster will tell you that.