Confirmed users
656
edits
(→HOWTO: Building a non-unified build: The --disable-unified-compilation flag is no longer supported.) |
(Update page for modern workflows and best practices; Remove some obsolete and/or irrelevant documentation) |
||
| Line 3: | Line 3: | ||
== Getting access to the Try Server == | == Getting access to the Try Server == | ||
To use the try server, you'll need [http://www.mozilla.org/hacking/commit-access-policy/ Level 1 Commit Access]. | To use the try server, you'll need [http://www.mozilla.org/hacking/commit-access-policy/ Level 1 Commit Access]. You can learn more about Mozilla's commit access policies and start the process of signing up for an account here: [http://www.mozilla.org/hacking/committer/ Becoming a Mozilla Contributor] | ||
After you have level 1 commit access, you'll need to do a bit of setup before you'll be able to push. See [https://developer.mozilla.org/en-US/docs/Mercurial/Using_Mercurial#How_do_I_check_stuff_in.3F this guide] for instructions. Assuming you only have level 1 access, you won't be able to push to mozilla-central, but you can replace 'hg.mozilla.org/mozilla-central' with 'hg.mozilla.org/try'. | |||
== | == Configuration == | ||
Before using try, there is some recommended configuration you should set up. This can be accomplished by running: | |||
$ ./mach mercurial-setup | |||
Be sure to at least enable the [http://mozilla-version-control-tools.readthedocs.org/en/latest/hgmozilla/firefoxtree.html firefoxtree extension] and the push-to-try extension. The push-to-try extension is required if you wish to use the |mach try| command (see below). Firefoxtree will give you a handy 'try' alias you can use for pushing, and prevent you from accidentally pushing multiple heads. If for some reason you prefer not to use firefoxtree, you can set the same alias up manually in your hgrc: | |||
= | [paths] | ||
try = ssh://hg.mozilla.org/try | |||
Note: Never pull from try. You'll end up with hundreds of heads containing everyone's half baked and broken pushes. | |||
For more information, see [http://mozilla-version-control-tools.readthedocs.org/en/latest/hgmozilla/index.html mercurial for mozillians]. | |||
== How to push to try == | |||
There are two ways to schedule jobs on try. You can either push like normal, and select which jobs you want using [https://wiki.mozilla.org/EngineeringProductivity/Projects/Treeherder treeherder], or you can specify a try syntax in your commit message to schedule jobs automatically. | |||
=== | === Scheduling jobs with Treeherder === | ||
Note: This method does not currently support taskcluster jobs. See {{bug|1246167}}. | |||
With this method, just push to try like you would to inbound (don't create any try syntax): | |||
$ hg push -f -r . try | |||
You should see a warning about no jobs being scheduled automatically, followed by a link to your push in treeherder. Open the link, select the drop-down arrow at the top right, and choose "Add new Jobs": | |||
https://s3.amazonaws.com/media-p.slid.es/uploads/185196/images/2042414/TH_dropdown.png | |||
Click the job symbols you wish to schedule. If you select a test job, the required build will automatically be scheduled: | |||
https://s3.amazonaws.com/media-p.slid.es/uploads/185196/images/2042426/TH_with_jobs.png | |||
Finally, click "Trigger New Jobs" near the top right of your push. | |||
=== Scheduling jobs with Try Syntax === | |||
If you know exactly what you want to run, you can use [[Build:TryChooser]] to select which jobs run directly in your commit message. Make sure the commit message containing try syntax is placed in your ''topmost commit''. The [http://trychooser.pub.build.mozilla.org/ TryChooser] web page can help you build a commit message for custom requests. It will generate both a syntax string as well as a mach command you can simply paste into your terminal. | |||
== Using | ==== Using mach ==== | ||
The recommended way to push with a try syntax, is to use |mach try|. It works with both mercurial and git, and you can use the [http://trychooser.pub.build.mozilla.org/ TryChooser] web page to generate the command. For example: | |||
$ mach try -b o -p linux -u mochitest-1 -t none | |||
The |mach try| command also has some advanced features. It can actually change how the job gets run within automation. For example, to run only mochitests under 'dom/indexedDB': | |||
$ mach try -b o -p linux -u mochitests --and dom/indexedDB | |||
For more information see: | |||
$ mach try --help | |||
Note: This method doesn't work well with mq. | |||
==== Using the Trychooser Extension ==== | |||
You can also use the [https://bitbucket.org/sfink/trychooser mercurial trychooser extension] from sfink. It has some neat features, like a curses ui that lets you graphically choose a try syntax. Though {{bug|1197868}} tracks implementing this feature in |mach try|. Eventually trychooser will be deprecated in favor of |mach try|. | |||
==== Using mq ==== | |||
The aforementioned tools may not play all that nicely with [https://www.mercurial-scm.org/wiki/MqExtension mercurial queues]. If you use mq, you can still push to try manually. First build your try syntax with the [http://trychooser.pub.build.mozilla.org/ TryChooser] web page. Then run: | |||
$ hg qref --message "try: <your-computed-syntax-here>" | |||
$ hg push -f try | |||
You | == Viewing the results == | ||
You can see the results of your tryserver build in a number of ways: | |||
* You'll get an email on a successful push with a link to treeherder for your revision as well as optional emails on any non-successful build/test/talos results (this setting can be adjusted using [[Build:TryChooser]] args for email notification) | |||
* You can have the results of your try run posted to bug(s) automatically at the completion of the run using the --post-to-bugzilla flag in your try syntax (see: [[Build:TryChooser]] for examples) | |||
* The link to treeherder will be printed on the command line. | |||
* Look for your changeset on [https://treeherder.mozilla.org/#/jobs?repo=try Treeherder]. You can add '''&author=YOUR.EMAIL''' to only see your pushes. | |||
* Download your completed builds from [http://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/?C=M;O=D firefox/tryserver-builds on ftp.m.o]. | |||
== Using a custom mozconfig == | |||
The mozconfigs for recent mozilla-central clones are located in the browser/config/mozconfigs directory. Edit those as you please. | |||
If you want to apply the same mozconfig changes to multiple platforms, you can edit <tt>build/mozconfig.common.override</tt> instead. This file is included at the end of each of the in-tree mozconfig files. | |||
Android mozconfigs are in mobile/android/config/mozconfigs. | |||
Note: | |||
* TryServer purpose is to tell what will happen on Tinderbox, not to check every possible build option/configuration. | |||
You | ** Any non-standard feature is implicitly unsupported. You may try them, but don't complain if they break. | ||
== Getting debug symbols == | == Getting debug symbols == | ||
By default native debug symbols are not uploaded for Try server builds because of their size. If you want to debug your builds locally you must add <tt>MOZ_CRASHREPORTER_UPLOAD_FULL_SYMBOLS=1</tt> to the in-tree mozconfigs. You can do this for all platforms by importing [http://hg.mozilla.org/users/tmielczarek_mozilla.com/mq/raw-file/b44faf6cd177/enable-full-symbols this patch] into your mq and pushing it along with your changes to Try. This will cause a ...crashreporter-symbols-full.zip package to be uploaded to the builds directory for each platform built. | By default native debug symbols are not uploaded for Try server builds because of their size. If you want to debug your builds locally you must add <tt>MOZ_CRASHREPORTER_UPLOAD_FULL_SYMBOLS=1</tt> to the in-tree mozconfigs. You can do this for all platforms by importing [http://hg.mozilla.org/users/tmielczarek_mozilla.com/mq/raw-file/b44faf6cd177/enable-full-symbols this patch] into your mq and pushing it along with your changes to Try. This will cause a ...crashreporter-symbols-full.zip package to be uploaded to the builds directory for each platform built. | ||
=== | == Adding new jobs == | ||
It's possible to create new jobs (or modify existing ones) directly *in* your try push, provided you use taskcluster. Just edit the relevant configuration in testing/taskcluster. For more information on creating jobs, see the [http://docs.taskcluster.net/ taskcluster docs]. | |||
* | |||
== Server Status == | == Server Status == | ||
* Try server load can be seen at https://secure.pub.build.mozilla.org/builddata/reports/pending/try.html | * Try server load can be seen at https://secure.pub.build.mozilla.org/builddata/reports/pending/try.html | ||
* Pending builds by revision are at https://secure.pub.build.mozilla.org/buildapi/pending | * Pending builds by revision are at https://secure.pub.build.mozilla.org/buildapi/pending | ||
| Line 150: | Line 106: | ||
* Suggestions for the future can be made [[Build:TryServer:Suggestions|here]] or file a blocking bug against {{bug|try_enhancements}} | * Suggestions for the future can be made [[Build:TryServer:Suggestions|here]] or file a blocking bug against {{bug|try_enhancements}} | ||
== Other Mozilla Try Servers == | == Other Mozilla Try Servers == | ||
* [[ReleaseEngineering/ThunderbirdTryServer|Thunderbird Try Server]] for the comm-central repository | * [[ReleaseEngineering/ThunderbirdTryServer|Thunderbird Try Server]] for the comm-central repository | ||
== Problem Diagnosis == | == Problem Diagnosis == | ||
| Line 203: | Line 135: | ||
== Buildduty issues == | == Buildduty issues == | ||
=== How do I trigger additional talos/test runs for a given try build? === | === How do I trigger additional talos/test runs for a given try build? === | ||
If your trychooser syntax included the tests you'd like more of, then select the job you want on Treeherder and use the + button. | If your trychooser syntax included the tests you'd like more of, then select the job you want on Treeherder and use the + button. For test suites you didn't request originally you can use the "Add New Jobs" interface in Treeherder. | ||
For test suites you didn't request originally you can | |||
=== How do I cancel existing jobs? === | === How do I cancel existing jobs? === | ||