SeaMonkey:Release Automation

Revision as of 22:22, 18 June 2009 by KaiRo (talk | contribs) (Created page with 'The SeaMonkey 2 release automation process builds upon Mozilla's Mercurial-based release automation by reusing the gener...')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The SeaMonkey 2 release automation process builds upon Mozilla's Mercurial-based release automation by reusing the generic buildbot factories from buildbotcustom as much as possible and subclassing it where needed.

Overview

SeaMonkey 2 release automation runs on the same buildbot master and slaves as the other SeaMonkey builds and unit tests. Currently, this affects the new Parallels-based systems that are not fully in production yet.

Final Deliverables

The most important deliverables are the packages, installers, and updates. This includes (for each locale)

  • Linux tarball, Mac dmg, Windows installer (exe)
  • Complete and partial MAR file
  • Update snippets for test and live channels

Other, less important deliverables include:

  • Source tarball
  • Langpacks per platform per locale (minus en-US)
  • Release branch and tags on appropriate repositories

Source packages are used by a small number of individuals and some Linux distributions to do their own builds of SeaMonkey. Release branches and tags are very important to Release Automation and also used by developers when a release must be respun.

Individual steps may have additional deliverables which only serve to feed later steps. These are discussed in the Mozilla release automation doc.

Current Status

As of June 18, 2009, the code is working for tagging, source tarball, builds, L10n repackaging, and creating partial updates as well as snippets. Verification steps haven't been tested. All the work is available in Bugzilla attachments or the bbconf-sm2 testing repository. bug 493451 is tracking the efforts to get everything into the tree(s).

Getting things going

Configuration

TBD

Starting the automation

Generally, the workflow for kicking off Release Automation is as follows:

  1. Update l10n-changesets (normally performed by someone from the l10n team days ahead of time)
  2. Update release_config.py
  3. Reconfigure the buildbot master
  4. Kick-off automation with the following command:
buildbot sendchange --username=bhearsum --master=localhost:9010 --branch=releases/mozilla-1.9.1 -m "Firefox 3.2a1build1" doit

Of course, replacing username, branch, and the message appropriately. Be sure not to leave out --branch.

Steps