|
|
Line 1: |
Line 1: |
| =Syntax for Custom Try Requests=
| | #REDIRECT [[Build:TryChooser]] |
| The goal of this syntax is to allow user to select particular build/unittest/talos combinations in their hg commit message, a config.info file in the $topsrcdir or from a web interface.
| |
| | |
| ==Syntax==
| |
| | |
| try: --build [d,o,do,all] --p [(desktop_platforms,...),none] --m [(mobile_platforms,...),none] --u [(test_suites,...),all] --t [(talos_suites,...),none]
| |
| | |
| This covers:
| |
| | |
| * Build Types both(do) || opt(o) || debug(d) || m-c all override (all)
| |
| * Platforms none || --p {linux,linux64,osx,osx64,win32,win64}
| |
| * Mobile none || --m {mobile-maemo5-qt, android, etc}
| |
| * Unittest Suites all || --u {crashtest,reftest,mochitest{1,2,3,4,5},xpcshell,etc}
| |
| * Talos Suites all || --t {tp4,tscroll,tspider,etc}
| |
| | |
| ==Usage Examples==
| |
| ===In an hg commit message (currently active)===
| |
| <pre>
| |
| # to run what mozilla-central's automation does ie: all platforms, all tests/talos
| |
| hg commit -m "bug 432432 testing something try: --build all"
| |
| | |
| # both opt/debug builds, all available {desktop,mobile} platforms, no unittests/talos
| |
| hg commit -m "bug 432432 testing something try: --build do"
| |
| | |
| # linux debug build, all available mobile platforms, all unittests, no talos
| |
| hg commit -m "bug 432432 testing something try: --build d --p linux --u all"
| |
| | |
| # mobile-only builds
| |
| hg commit -m "bug 432432 testing something try: --build o --p none"
| |
| | |
| # all builds, all available desktop platforms, no mobile, all unittests & talos
| |
| hg commit -m "bug 432432 testing something try: --build do --m none --u all --t all"
| |
| | |
| # opt builds on all available {desktop,mobile} platforms, no unittests, talos tp4 & tscroll
| |
| hg commit -m "bug 432432 testing something try: --build o --t tp4,tscroll"
| |
| </pre>
| |
| | |
| ===In a try.info file (not yet active)===
| |
| try.info file pushed to $topsrc_dir would look like:
| |
| <pre>
| |
| try: --build do --m none --u all --t all
| |
| | |
| OR
| |
| | |
| try: --build all
| |
| | |
| OR
| |
| | |
| try: --build d --m none --u reftest
| |
| </pre>
| |
| | |
| ==Scheduler/Builder Parsing==
| |
| | |
| * splits on 'try:'
| |
| * then splits on ' ' to create a list to pass to argparse which runs parse_known_args (thus keeping anything that is not recognized from causing errors)
| |
| * we also have allowed for manual sendchanges to send in comments with "try: ..." in order to make it possible to (re)run a particular test/talos/platform and not all things specified in a commit message
| |
| =Notes on Usage=
| |
| ==Default Set==
| |
| If no try hg commit comment (ie: beginning with 'try:') is present then the default set is a "Does it compile?" run comprised of:
| |
| All try desktop platforms' debug builds, all mobile builds, '''no tests, no talos'''
| |
| | |
| ==Optional arguments==
| |
| If the following exist they will be handled as follows:
| |
| | |
| build (default is '''debug''')
| |
| Options are '''o''' (opt) || '''d''' (debug) || '''do''' (gets you both) || '''all''' (override for m-c style run which will do all desktop/mobile/test/talos too)
| |
| We use this to build the desktop and test builder names
| |
| | |
| desktop_platforms (if not present default is '''all''') should be either comma-separated names with no spaces or 'none':
| |
| --p linux,macosx || --p none
| |
| | |
| mobile_platforms (if not present default is '''all''') should be either comma-separated names with no spaces or 'none':
| |
| --m maemo5-gtk,android-r7 || --m none
| |
| | |
| unittests (if not present default is '''none''') should be either comma-separated names with no spaces or 'all':
| |
| --u crashtest,jsreftest || --u all
| |
| | |
| talos (if not present default is '''none''') should be either comma-separated names with no spaces or 'none':
| |
| --t tp4,tscroll || --t all
| |
| | |
| ==Tutorial==
| |
| | |
| * You've got your patch ready to try
| |
| * Set the commit comment to what you would like to run on try. In this case, let's say you want a linux opt build, no mobile, and only get talos tp4 results
| |
| hg commit -m "Patch to fix a pixel placement try: --build o --p linux --m none --t tp4"
| |
| * Push to try
| |
| * What happens? 'Linux tryserver build' builder is created and runs your opt linux build. If the build completes successfully then the talos tests are triggered and once the test-master gets the notice of the change it will read the hg commit comments and only kick off the one builder for tp4 'Rev3 Fedora 12 tryserver talos tp4'
| |
| | |
| ==Troubleshooting==
| |
| ==What if I don't put try: in my commit comments?==
| |
| If you do not specify anything in your comments you will get the [https://wiki.mozilla.org/User:Lukasblakk/TryServerSyntax#Default_Set default set] of builds for try.
| |
| | |
| ==What if make a syntax error in my commit comments?==
| |
| If you do not specify anything in your comments you will get the [https://wiki.mozilla.org/User:Lukasblakk/TryServerSyntax#Default_Set default set] of builds for try.
| |
| | |
| ==How do I know what test/talos suites to request?==
| |
| | |
| '''Note''': we are using a flat file for our [http://hg.mozilla.org/users/lsblakk_mozilla.com/buildbotcustom2/diff/3a1bd0d26bca/test/valid_builders.py#l1.31 list] right now but {{bug|589847}} has been filed and in the next iteration we will have a way to generate the lists of valid builder info dynamically from config.py which will keep it in sync with try's configs
| |
| | |
| ==What do I do if I need something run?==
| |
| If you missed something in your commit comments you can ping whoever is the [http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox RelEng contact] and give them your trydir info (ie: email-changeset) as well as the buildtype/platform(s)/test(s)/talos suite(s) you would like run on your builds. The buildduty person can then trigger or re-trigger your requested builds.
| |