ReleaseEngineering/PuppetAgain/Modules/buildslave

< ReleaseEngineering‎ | PuppetAgain‎ | Modules
Revision as of 02:57, 16 March 2012 by Djmitche (talk | contribs) (Created page with "This module installs and sets up the buildslave software. Including ''buildslave'' will do both. = buildslave::install = This class installs the buildbot and buildbot-slave pa...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This module installs and sets up the buildslave software. Including buildslave will do both.

buildslave::install

This class installs the buildbot and buildbot-slave packages in a virtualenv keyed from the version number, with a symlink at /tools/buildbot denoting the active version. This class embodies the intelligence of what version(s) of Buildbot to install.

Internally, it uses buildslave::install::version to install the correct versions, e.g.,

 buildslave::install::version {
     "0.8.4":
         active => false;
     "0.8.5":
         active => true;
 }

This nested class takes an ensure parameter (absent or present) and an active parameter, which if true causes the /tools/buildbot symlink to point to the given version.

Upgrading

To add a new version of buildbot:

  • establish the desired version of the buildbot source, on the 'slaves' branch of build/buildbot
  • tag it with SLAVE_X_Y_Z_MOZN as appropriate
  • add slave/buildslave/VERSION containing the lower-case form, e.g., 3.4.1-moz3. similarly for master/buildslave/VERSION
  • run 'setup.py sdist' in the slave/ directory and in the master/ directory
  • copy the resulting {master,slave}/dist/buildbot-*.tar.gz into the python-packages directory (see ReleaseEngineering/PuppetAgain/Python)
  • add a new case to modules/buildslave/manifests/install/version.pp setting any relevant variables for the install.
  • invoke the new case from modules/buildslave/manifests/install.pp