|
|
| 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= |