QA/Simple Try Builds

< QA

Simple How-To make Try builds

Prerequisites

You will need to complete the Mercurial Committer agreement, deliver it to Erica, and file a bug asking for commit access from IT. In that bug attach your public key and have someone (preferably a developer or manager) vouch that you need those comitter rights. [1] Here is an example.

Steps

Presumably you've already CLONED the HG repository in question by now. If not, do so (this example assumes Mozilla Central):

$ hg clone http://hg.mozilla.org/mozilla-central/ src

At Mozilla, Diff files pertaining to specific code changes are available as bug attachments. Download the specific diffs you wish to try.

If you've taken more than a few hours since the first clone, or want to be sure you are up to date, pull the latest and update your repo:

$ cd src
$ hg pull
$ hg update

Now it's time to start adding the diffs:

$ hg qimport ~/Documents/diffs/diff1  #(my patch)

Repeat this step for all the diffs you want to add.

$ hg qseries

This should show the diffs you've added.

$ hg qgoto diff1

Now you can begin the actual build process. Try Chooser Syntax is a tool that allows you to generate the try syntax you want. Try it out!  ;-)

For example, if I wanted to build only android native and android-xul, I would, after getting my try syntax, issue the following command:

 $ hg qnew -m "try: -b do -p android,android-xul -u all -t none" diff1

Actual syntax for the command is:

 $ hg qnew -m "try: <insert options here>" diff1

And then I push the lot to the server:

$ hg push -f -rtip ssh://hg.mozilla.org/try

Building, and if you opt to do so - running the tests- takes a fair bit of time but eventually your try build(s) are spit out here:

https://tbpl.mozilla.org/ (click B for relevant build and to go build directory at bottom)

and here: https://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/

If the B is of any other color, then the build has failed, or is still in progress.

After pushing, I can remove the empty patch from my local repo:

 $ hg qpop
 $ hg qremove diff1

Hopefully this is enough to get you started, but more specifics on the topic can be found here