ReleaseEngineering/ThunderbirdTryServer

From MozillaWiki
< ReleaseEngineering
Revision as of 12:09, 22 January 2019 by Kaie (talk | contribs) (Update download information for try builds.)
Jump to navigation Jump to search

Basic Use

The Thunderbird try server works in exactly the same way to the Firefox try server with a few minor differences. The automation is based on the same hardware and tools, so there should be few differences.

The Thunderbird try server is primarily for building Thunderbird. Whilst building other comm-central apps may work, this is not supported - builds and tests may fail etc.

Must Read

Please read the Firefox Try server page to get familiar with the basic workings of try server. Notably, you must have installed the "push-to-try" extension.

Please also use the TryChooser whenever possible to limit jobs and save builder time.

Differences

These are the differences for the Thunderbird try server:

  • The .hg/hgrc that exists within the comm/ folder must contain:
[defaults]
push-to-try = -s ssh://hg.mozilla.org/try-comm-central

In order for ../mach try <TryChooserSyntaxOptions> to work

  • You must run ../mach try from *within* comm/. Running mach try from the mozilla-central (sometimes named source/) folder will not work.
  • The try syntax needs to include --buildbot to trigger buildbot builds. Without that option, TaskCluster builds are triggered.
  • Patches should be pushed to ssh://hg.mozilla.org/try-comm-central
  • Results go to the try-comm-central on treeherder
  • Finished builds can be accessed through treeherder. Click on the green B of the respective platform, then on the bottom click Job Details. In the list of artifact uploads, click the archive for your platform: Linux uses target.tar.bz2, OSX uses target.dmg, Windows uses target.zip

Tips and Tricks

  • Pushing a try build with try-comm-central will always pick the latest m-c changeset.

Pushing mozilla-central patches

For Buildbot builds

There's two steps to this process.

  1. Add --apply-patches to build/client.py-args.
    • Example patch here.
    • If you do this as a separate patch in your Mecurial queue, you can reuse it whenever you want. Otherwise this change can go into the patch created in the step 4.
  2. Copy your mozilla-central patch to somewhere in your comm-central tree (it can be placed into the root directory) and name it something like: mozilla-<anything>.patch (the mozilla- prefix is essential).
  3. hg add your patch.
  4. Then hg commit your changes, or use hg qnew for a new item on your patch queue.
  5. Push your patches to try-comm-central.

The client.py code will automatically apply your mozilla-central patch when the code is checked out. Any apply failures will cause the builds to be aborted. The mozilla-central patches are supposedly applied in the alphabetic order of their file names. You can mix comm-central and mozilla-central patches in the same batch being pushed.

For TaskCluster builds

The process described above of applying M-C patches to C-C try pushes does not work for TaskCluster builds. For those, modify the payload section in the top-level .taskcluster.yml and point GECKO_HEAD_REPOSITORY to https://hg.mozilla.org/try and also modify GECKO_HEAD_REF to point to the changeset you previously pushed to M-C's try with mach try empty.

Pushing ldap/chatzilla/venkman/DOM Inspector patches

The mozilla build system also supports modifying code from other hg.mozilla.org code repositories for testing on the try server. The approach for this is basically the same as in the Pushing mozilla-central patches section, except the patch file name has to be ldap-<anything>.patch, chatzilla-<anything>.patch, venkman-<anything>.patch or inspector-<anything>.patch depending on what patch you want to test.

Known issues

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);