Build:Release Automation: Difference between revisions

reorg, explain stuff before going into detail
(outstanding issues)
(reorg, explain stuff before going into detail)
Line 2: Line 2:
Firefox and Thunderbird releases are currently done using the [http://mxr.mozilla.org/seamonkey/source/tools/release/ Bootstrap] automation scripts, which call into [http://mxr.mozilla.org/seamonkey/source/tools/tinderbox/ Tinderbox client] to do the actual build.
Firefox and Thunderbird releases are currently done using the [http://mxr.mozilla.org/seamonkey/source/tools/release/ Bootstrap] automation scripts, which call into [http://mxr.mozilla.org/seamonkey/source/tools/tinderbox/ Tinderbox client] to do the actual build.


Currently, a human operator must:
=Bootstrap=


# log into the appropriate machine
[http://mxr.mozilla.org/seamonkey/source/tools/release/ Bootstrap] is a simple Perl framework intended to take the formerly manual release process and automate it, with as little change to the process as possible.
# check out bootstrap
# run the appropriate bootstrap command


This must be done ~7 times (once per machine), in the right order, to produce a successful release.
Bootstrap is invoked using the "release" command, and supports a set of high-level "steps":
 
<b>Tag</b> - tag, branch, apply version bumps to all relevant files.<br>
<b>TinderConfig</b> - generate tinderbox config files (mozconfig/tinder-config.pl)<br>
<b>Build</b> - invoke Tinderbox client to create and en-US build and publish to FTP<br>
<b>Source</b> - create a source tarball and push it to FTP<br>
<b>Repack</b> - invoke Tinderbox client to create localized versions of en-US build and publish to FTP<br>
<b>PatcherConfig</b> - create a [http://mxr.mozilla.org/seamonkey/source/tools/patcher/ Patcher] config file for generating updates<br>
<b>Updates</b> - invoke Patcher to create partial updates and [http://wiki.mozilla.org/AUS AUS] configuration<br>
<b>Stage</b> - create a staging area and rename files for release<br>
<b>Sign</b> - not implemented<br>
 
=Buildbot=
 
We have a vendor branch in [http://mxr.mozilla.org/mozilla/source/tools/buildbot/ mozilla/tools/buildbot], based on Buildbot's 0.7.5 release.
 
[http://buildbot.net Buildbot home page]
 
[http://wiki.mozilla.org/ReferencePlatforms/BuildBot Mozilla-specific Buildbot install instructions]
 
[http://buildbot.net/trac/wiki/UserManual Buildbot user manual]


=Buildbot-driven release=
=Buildbot-driven release=
Line 43: Line 61:
** created "latest" and "latest-2.0" symlinks manually after final release
** created "latest" and "latest-2.0" symlinks manually after final release
** created bouncer links manually {{Bug|372746}}
** created bouncer links manually {{Bug|372746}}
=Bootstrap=
[http://mxr.mozilla.org/seamonkey/source/tools/release/ Bootstrap] is a simple Perl framework intended to take the formerly manual release process and automate it, with as little change to the process as possible.
Bootstrap is invoked using the "release" command, and supports a set of high-level "steps":
<b>Tag</b> - tag, branch, apply version bumps to all relevant files.<br>
<b>TinderConfig</b> - generate tinderbox config files (mozconfig/tinder-config.pl)<br>
<b>Build</b> - invoke Tinderbox client to create and en-US build and publish to FTP<br>
<b>Source</b> - create a source tarball and push it to FTP<br>
<b>Repack</b> - invoke Tinderbox client to create localized versions of en-US build and publish to FTP<br>
<b>PatcherConfig</b> - create a [http://mxr.mozilla.org/seamonkey/source/tools/patcher/ Patcher] config file for generating updates<br>
<b>Updates</b> - invoke Patcher to create partial updates and [http://wiki.mozilla.org/AUS AUS] configuration<br>
<b>Stage</b> - create a staging area and rename files for release<br>
<b>Sign</b> - not implemented<br>


==Bootstrap Steps==
==Bootstrap Steps==
Line 130: Line 132:
** 10GB for config files, backups and staging area
** 10GB for config files, backups and staging area
** e.g. /opt/aus2/incoming/3/Firefox/2.0.0.4/, /opt/aus2/snippets/staging/20070523-Fx-2.0.0.4/, /opt/aus2/snippets/backup/20070611-1-pre-20070611-Fx-2.0.0.4.tar.bz2
** e.g. /opt/aus2/incoming/3/Firefox/2.0.0.4/, /opt/aus2/snippets/staging/20070523-Fx-2.0.0.4/, /opt/aus2/snippets/backup/20070611-1-pre-20070611-Fx-2.0.0.4.tar.bz2
=Buildbot=
We have a vendor branch in [http://mxr.mozilla.org/mozilla/source/tools/buildbot/ mozilla/tools/buildbot], based on Buildbot's 0.7.5 release.
[http://buildbot.net Buildbot home page]
[http://wiki.mozilla.org/ReferencePlatforms/BuildBot Mozilla-specific Buildbot install instructions]
[http://buildbot.net/trac/wiki/UserManual Buildbot user manual]


=Notes on staging setup=
=Notes on staging setup=
canmove, Confirmed users
1,511

edits