ReleaseEngineering/TryServer: Difference between revisions

Jump to navigation Jump to search
Line 22: Line 22:


== How to push to try ==
== 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.  
There are a few ways to schedule jobs on try.
 
=== Scheduling jobs with Mach Try ===
 
The recommended way to [https://firefox-source-docs.mozilla.org/tools/try/index.html interact with try] is via the command line tool |mach try|. Since try can be used for a wide range of use cases, by developers with varying levels of experience, there is no one size fits all solution when it comes to selecting which tasks to run. Therefore |mach try| offers a range of subcommands called "selectors" for a variety of purposes. To see a list of available selectors, run:
 
  $ mach try --help
 
For deeper information on a given selector, run:
 
  $ mach try <selector> --help
 
If you don't specify a selector/subcommand to try, it will default to using the `syntax` selector. You can change which selector gets used by default by creating ~/.mozbuild/machrc and adding:
 
  [try]
  default=<selector>
 
See [https://firefox-source-docs.mozilla.org/tools/try/selectors/index.html this documentation] for more information on all the available selectors.
 


=== Scheduling jobs with Treeherder ===
=== Scheduling jobs with Treeherder ===
Line 46: Line 64:
NOTE: An action task gets scheduled which will schedule all the tasks you chose.
NOTE: An action task gets scheduled which will schedule all the tasks you chose.


=== 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 [https://mozilla-releng.net/trychooser/ 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 mach ====
The recommended way to push with a try syntax, is to use |mach try|. It works with both mercurial and git (via [https://github.com/glandium/git-cinnabar git-cinnabar]), and you can use the [https://mozilla-releng.net/trychooser/ 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.
=== Pushing Directly ===


==== Using the Trychooser Extension ====
It's also possible to push to try directly from hg (for now). This might be required if you're using [https://www.mercurial-scm.org/wiki/MqExtension mercurial queues]. In this case, the only way to select tasks if by manually adding try syntax to your commit message:
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 ====
  $ hg commit -m "try: -b o -p linux64 -u mochitest"
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 [https://mozilla-releng.net/trychooser/ TryChooser] web page. Then run:
  $ hg push -f try


$ hg qref --message "try: <your-computed-syntax-here>"
Using |mach try| is recommended as that will automatically create and cleanup a temporary commit no your behalf, whereas with this method you are responsible for cleaning up any extra commits you make or commit messages you modify.
$ hg push -f try


== Viewing the results ==
== Viewing the results ==
Confirmed users
656

edits

Navigation menu