Build:Release Automation: Difference between revisions

move bootstrap info to it's own page
(rearrange)
(move bootstrap info to it's own page)
Line 6: Line 6:
=Bootstrap=
=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.  
[[Build:Release Automation:Bootstrap|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==
 
A Bootstrap "step" must implement 2 required methods:
 
<b>Execute</b> - carry out the actual function of the step, e.g. Build<br>
<b>Verify</b> - run an automated test<br>
 
Additionally, there are 2 optional methods:
 
<b>Push</b> - upload the appropriate changes for testing, e.g. upload build to FTP<br>
<b>Announce</b> - send an email announcing that the step has finished.<br>
 
==Using Bootstrap==
 
If the "release" command is invoked with no parameters, it will attempt to start at the first step and call the methods in this order:
 
# Execute
# Verify
# Push
# Announce
 
As each step completes successfully, the next will be invoked.
 
There are several command-line options, shown by calling "release -h":
 
Usage: release [-l] [-s Step] [-o Step] [-e | -v | -p | -a] [-h]
    -l list all Steps
    -s start at Step
    -o only run one Step
    -e only run Execute
    -v only run Verify
    -p only run Push
    -a only run Announce
    -h this usage message
 
For example, to only run the Push method on the Build step:
 
./release -o Build -p


=Buildbot=
=Buildbot=
canmove, Confirmed users
1,511

edits