User:Lukasblakk/TryServerSyntax: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (fix double-redirect)
 
(56 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]
# unittests/talos are OPTIONAL - if not present default is None
 
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==
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==
===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 p: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: 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

Latest revision as of 19:39, 3 November 2010