|
|
| (45 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 [desktop_platforms] --m [mobile_platforms] --u [unittests] --t [talos_suites]
| |
| | |
| This covers:
| |
| | |
| * Build Types both(b) || opt(o) || debug(d)
| |
| * 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}
| |
| | |
| ==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==
| |
| Does the test specified for all the builds on a platform, not specific to opt/debug builder combination (eg. doing crashtest for opt build and not debug build) this could potentially be addressed in a future iteration if that level of granularity is needed to help with wait times.
| |
| | |
| ==Usage Examples==
| |
| ===In an hg commit message===
| |
| <pre>
| |
| # both opt/debug builds, all platforms, no unittests/talos
| |
| hg commit -m "bug 432432 testing something try:b"
| |
| | |
| # linux debug build, with all unittests, no talos
| |
| hg commit -m "bug 432432 testing something try:d p:linux u:all"
| |
| | |
| # mobile-only builds
| |
| hg commit -m "bug 432432 testing something try:o p:none"
| |
| | |
| # all builds, desktop platforms, no mobile, unittests & talos (both options work):
| |
| hg commit -m "bug 432432 testing something try:b m:none ut:all"
| |
| hg commit -m "bug 432432 testing something try:b m:none u:all t: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 m:none u:all t:all
| |
| | |
| ==Scheduler/Builder Parsing==
| |
| | |
| * split on 'try:'
| |
| * then split on ' ' to grab args
| |
| | |
| ====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: desktop_platforms (if not present default is '''all''')
| |
| Now we can create builders and sendchanges for each combo of opt/debug platform builders specified
| |
| | |
| second split: mobile_platforms (if not present default is '''all''')
| |
| Now we can create builders and sendchanges for each mobile platform builder specified
| |
| | |
| fourth 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
| |
| | |
| fifth 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
| |