|
|
(62 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| =Syntax for Custom Try Requests=
| | #REDIRECT [[ReleaseEngineering/TryChooser]] |
| The goal of this syntax is to allow user to select particular build/unittest/talos combinations in their hg commit message or in pushed config.info file.
| |
| | |
| ==Syntax==
| |
| | |
| --try [-dbo] [-p platforms] [-u unittests] [-t talos_suites]
| |
| # unittests/talos are OPTIONAL - if not present default is None
| |
| | |
| This covers:
| |
| | |
| * Build Types -b both || -o opt only || -d debug only
| |
| * Platforms all || -p {linuxlinux64,osx,osx64,win32,win64,mobile-{qt,android, etc}}
| |
| * Unittest Suites all || none || -u {crashtest,reftest,mochitest{1,2,3,4,5},xpcshell,etc}
| |
| * Talos Suites all || none || -t {tp4,tscroll,tspider,etc}
| |
| | |
| ==Order==
| |
| | |
| Specify build types (opt/debug/both) first
| |
| then either all platforms or specify what you want
| |
| then all unittest suites, no unittest suites, or specify a suite (then run for each platform built)
| |
| then all talos suites, no talos suites, or specify suite (then run for each platform built)
| |
| | |
| This allows us to cut off at any point and just to a default 'None' for any info not submitted. If the user submits just a build type, they get a "Does is compile?" try run.
| |
| | |
| ==Problem with this syntax==
| |
| Only does test/talos for each platform build, not per opt/debug builder combination (eg. doing crashtest for opt and not debug) this could potentially be addressed in a future iteration if that level of granularity is needed to help with wait times.
| |
| | |
| ==Usage Examples==
| |
| Sample hg commit/config file:
| |
| | |
| ===In an hg commit message===
| |
| <pre>
| |
| # both opt/debug builds, all platforms, no unittests/talos
| |
| hg commit -m "bug 432432 testing something --try -b -p all"
| |
| | |
| # linux debug build, with all unittests, no talos
| |
| hg commit -m "bug 432432 testing something --try -d -p linux -u all"
| |
| | |
| # all builds, platforms, unittests & talos (both options work):
| |
| hg commit -m "bug 432432 testing something --try -b -ut all"
| |
| hg commit -m "bug 432432 testing something --try -b -p all -ut all"
| |
| | |
| # opt builds on all platforms with talos tp4 & tscroll (no unittests)
| |
| hg commit -m "bug 432432 testing something --try -o -t tp4,tscroll"
| |
| </pre>
| |
| ===In a try.info file===
| |
| try.info file pushed to $topsrc_dir would look like:
| |
| --try -b -p all
| |
| | |
| ==Scheduler/Builder Parsing==
| |
| | |
| * split on '--try'
| |
| * then split on '-'
| |
| | |
| ====Required arguments====
| |
| first split: type of build
| |
| Now we know opt || debug || both
| |
| | |
| ====Optional arguments====
| |
| If the following exist they will be handled as follows:
| |
| | |
| second split: platforms (if not present default is '''all''')
| |
| Now we can create builders and sendchanges for each combo of opt/debug platform builders
| |
| | |
| third split: unittests || (unittest && talos) (if not present default is '''none''')
| |
| if third split exists and is only -u grab array after for test names to build schedulers
| |
| if third split exists and is -ut then they want all of both
| |
| | |
| fourth split: talos (if not present default is none, without overriding -ut from third split)
| |
| if fourth split exists and is -t grab array after for test names to build schedulers
| |