Commit Graph

55 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
acc26d5d14 Bug 1446954: Remove support for running tests on automation without stylo configurations. r=froydnj
You can still run them on a --disable-stylo build, as long as that works
(presumably not for long).

I think I haven't missed anything, but please double-check.

MozReview-Commit-ID: 3BIAEjgTLo5
2018-03-20 11:29:08 +01:00
Andrew Halberstadt
86db9106de Bug 1437912 - [moztest] Map flavors and subsuites to a suite definition, r=gbrown
The end goal here is to be able to use |mach try fuzzy <path>| with tests that
belong to a subsuite. To do this, we need a unique 'task_regex' value for each
subsuite so that we can map a test path back to a set of tasks.

This removes the TEST_FLAVORS dict (which was mostly just a redefinition of the
data in TEST_SUITES), and instead provides two new private mappings:

<flavor> -> suite definition
(<flavor>, <subsuite>) -> suite definition

To retrieve a suite definition given a flavor/subsuite, consumers can now call
get_suite_definition.

MozReview-Commit-ID: 2pe1v1IHUVy
2018-02-13 14:16:46 -05:00
Andrew Halberstadt
1a6edbe8f1 Bug 1413928 - [tryselect] Implement paths for |mach try fuzzy| r=maja_zf
This enables the syntax like:
./mach try fuzzy dom/indexedDB

This will open up the fzf interface like normal, except only tasks
that have tests under dom/indexedDB will be selectable (and there
will only be one chunk per configuration).

This can be combined with -q/--query like normal:
./mach try fuzzy dom/indexedDB -q "!pgo !cov !asan"

When the tasks get scheduled, only the tests under the specified
path(s) will run within the harness.

MozReview-Commit-ID: IHRXXi5mB4G
2017-11-15 16:36:07 -05:00
Andrew Halberstadt
304b34ac7f Bug 1413928 - [tryselect] Create a new argument group for 'task' arguments r=maja_zf
This simply groups arguments related to generating the list of
tasks from taskgraph into their own argument group.

MozReview-Commit-ID: IHRXXi5mB4G
2017-11-02 16:03:38 -04:00
Andrew Halberstadt
f69f31d902 Bug 1413928 - [tryselect] Add a new 'path' template r=maja_zf
This sets the MOZHARNESS_TEST_PATHS environment variables for all tasks.
When specifying paths, this will cause many test tasks to only run the
tests under that directory as opposed to the normal default.

MozReview-Commit-ID: IHRXXi5mB4G
2018-01-15 16:05:37 -05:00
Andrew Halberstadt
c16c6621d5 Bug 1413928 - [tryselect] Change templates to return an entire context dict instead of a single value r=maja_zf
This changes templates so they return an entire context dict instead of
only returning context based on their name. For example, now the 'path'
template can set context for 'env'.

A side effect of this is that there is no longer a 1-to-1 mapping of templates
in tryselect and taskgraph.

MozReview-Commit-ID: IHRXXi5mB4G
2018-01-15 16:05:17 -05:00
Andrew Halberstadt
d8013f62f2 Bug 1413928 - [tryselect] Add python unittest for templates r=davehunt
This makes use of pytest's generation feature. To add a new
template test, just add a new entry containing the input and
expected output to the dict in test_templates.py

MozReview-Commit-ID: 4qMefYHMjAp
2017-11-21 10:11:00 -05:00
Andrew Halberstadt
f3593fb76a Bug 1397433 - [tryselect] Create in-tree documentation for |mach try|, r=jmaher
This adds some basic documentation for |mach try| and its various subcommands.
This was a bit hastily made for the Austin all-hands, but at least provides a
place to link to and can be improved upon in the future.

MozReview-Commit-ID: 8N6LZO5kTlL
2017-11-07 16:26:14 -05:00
Andrew Halberstadt
dd28732fb0 Bug 1423887 - [tryselect] Enable taskgraph.fast when generating tasks from |mach try|, r=catlee
This speeds up taskgraph generation by ~6 seconds on my machine. Future
improvements are also planned for 'fast' mode.

MozReview-Commit-ID: CLORvLXuV8y
2017-12-07 09:01:35 -05:00
Andrew Halberstadt
d33b8880b0 Bug 1422302 - Create python/mozterm for sharing terminal blessings across modules r=gps
This is a new module that will provide a place to store some common
abstractions around the 'blessings' module. The main entrypoint is:

    from mozterm import Terminal
    term = Terminal()

If blessings is available, this will return a blessings.Terminal()
object. If it isn't available, or something went wrong on import,
this will return a NullTerminal() object, which is a drop-in
replacement that does no formatting.

MozReview-Commit-ID: 6c63svm4tM5
2017-12-04 09:38:24 -05:00
Tom Prince
c2d090076a Bug 1421002: Get tasks for mach try fuzzy from the root of the repository; r=ahal
`mach try` pushes the repository containing the current directory. When this is
a comm-central checkout, the taskcluster configuration should also come from that
repository.

MozReview-Commit-ID: KWbNAe4jrHT
2017-11-21 13:39:21 -07:00
Andrew Halberstadt
ba17d91e74 Bug 1419512 - [tryselect] Consolidate subcommand parser retrieval in mach_commands.py, r=armenzg
This is a minor cleanup around finding and importing subcommand parser in |mach try|.

MozReview-Commit-ID: IHRXXi5mB4G
2017-11-02 16:02:35 -04:00
Andrew Halberstadt
14e7a409c8 Bug 1414919 - [tryselect] Add --rebuild support to |mach try fuzzy|, r=jmaher
This allows rebuilding all selected tasks. This defines an upper limit of
20 rebuilds per push. If more are needed, developers can either change it
in code or push multiple times.

MozReview-Commit-ID: I0XtMP5yEEq
2017-11-07 10:27:44 -05:00
Andrew Halberstadt
fc16543844 Bug 1414399 - [moztest] Refactor |mach test|'s resolving logic into moztest.resolve r=gps
The code in |mach test| for test resolving, should get merged with the TestResolver
class in moztest.resolve. This way it can be shared with other modules and we'll
have a single canonical place for all our test resolving logic.

MozReview-Commit-ID: IHRXXi5mB4G
2017-11-08 09:59:51 -05:00
Andrew Halberstadt
2730a80a6b Bug 1414399 - [mozbuild/moztest] Move mozbuild.testing.TestResolver to moztest.resolve r=gps
The TestMetadata and TestResolver classes aren't technically part of the build
system. The only connection is that they consume some build system output.

The next patch in this series is going to be merging in a bunch of other test
resolving logic from other parts of the tree. Moving this out first allows us
to keep that extra logic out of mozbuild.

MozReview-Commit-ID: 1eq4SjFVCyW
2017-11-06 08:41:42 -05:00
Andrew Halberstadt
b1f211295d Bug 1414894 - [tryselect] Don't install shell extensions when bootstrapping fzf for |mach try fuzzy|, r=armenzg
Currently the prompts don't make it clear enough that running fzf will mess with your
shell settings. This means users could install it without realizing, forget and get
confused later on.

Rather than try to address this, it's simpler to always skip the shell extensions as
|mach try fuzzy| doesn't need them anyway. The extensions are useful, but are better
installed via something like |mach bootstrap| which can be tackled in a separate bug.

MozReview-Commit-ID: 2kx7UGO5LJ0
2017-11-06 20:29:25 -05:00
Andrew Halberstadt
b6104bdc3a Bug 1413374 - [tryselect] Fix |mach try empty| regression and add a test, r=armenzg
MozReview-Commit-ID: Iv2RDqqhL57
2017-11-01 08:12:42 -04:00
Andrew Halberstadt
fd84f5ffec Bug 1412134 - [tryselect] Redirect stderr to a separate pipe, r=chmanchester
We parse the output of several version control commands in |mach try|, yet
redirect stderr to stdout. This is causing issues for people whenever the
vcs outputs some kind of warning.

MozReview-Commit-ID: F0L56at0MYS
2017-10-30 16:35:45 -04:00
Andrew Halberstadt
7ba6c6301e Bug 1400503 - [tryselect] Add an option to open the presets file in an editor, r=armenzg
MozReview-Commit-ID: 2jwdAaNWHH7
2017-10-27 14:58:34 -04:00
Andrew Halberstadt
e1747c7b80 Bug 1400503 - [tryselect] Separate 'common_arguments' into groups sub-parsers can opt-in to, r=armenzg
This allows subparsers more control over which sets of arguments they need to
implement.  For example, it doesn't make sense for the 'empty' selector to
accept the preset arguments.  Now it can opt-out of those and only implement
the 'push' arguments.

MozReview-Commit-ID: GOfjcFtlfDD
2017-10-27 11:06:24 -04:00
Gregory Szorc
b87de58e47 Bug 1410969 - Consolidate code for resolving path metadata; r=ahal
find_paths_and_tags() can instantiate a BuildReader to read moz.build
metadata. We switch `mach test` to call this to avoid some redundant
code.

To facilitate `mach try`'s use case, we add test flavors to the
result of find_paths_and_metadata() and change the function name to
reflect its more generic purpose.

MozReview-Commit-ID: Lcz05W8g2dt
2017-10-23 10:42:41 -07:00
Gregory Szorc
d576ec80a3 Bug 1410969 - Return dict from find_paths_and_tags(); r=ahal
This will make the return value more easily extensible and will help
consumers know what the data structures represent.

MozReview-Commit-ID: DaeYsqfMW37
2017-10-23 10:36:38 -07:00
James Graham
761e0a3cb5 Bug 1401150 - Support try pushes on a closed tree with mach try, r=ahal
This adds the magic CLOSED TREE string to the commit message for both
try syntax and the fuzzy frontend.

MozReview-Commit-ID: 492UME3VcJN
2017-10-16 18:59:45 +01:00
Andrew Halberstadt
b852dbb990 Bug 1406777 - Support --message and --no-push with |mach try empty|, r=armenzg
This adds all the common arguments to |mach try empty|, including preset
arguments which will just be ignored if specified. The commit message can be
changed with:
./mach try empty -m DONTBUILD

MozReview-Commit-ID: 5RYfLBOIX1g
2017-10-11 15:45:08 -04:00
Andrew Halberstadt
95fd6619b4 Bug 1401199 - [tryselect] Pass in strict=False when generating tasks, r=dustin
MozReview-Commit-ID: 9XWlLeGcPeQ
2017-09-29 11:36:42 -04:00
Andrew Halberstadt
cb3e21d4f2 Bug 1404067 - [tryselect] Improve error message on parameter mismatch, r=dustin
MozReview-Commit-ID: GMiGuNApoUF
2017-09-28 15:25:34 -04:00
Wes Kocher
fb78125389 Bug 1400425 - Add a mach try empty command to push to try with no prompts r=ahal
MozReview-Commit-ID: 6F5vEpTTDS
2017-09-25 16:06:50 -07:00
Wes Kocher
1593e5462e Backed out changeset 7fc37806848f (bug 1400425) for flake8 issues a=backout
MozReview-Commit-ID: 7EI7PgX4YoS
2017-09-25 16:06:09 -07:00
Wes Kocher
2f5b5c5338 Bug 1400425 - Add a mach try empty command to push to try with no prompts r=ahal
MozReview-Commit-ID: 6F5vEpTTDS
2017-09-25 15:17:50 -07:00
Andrew Halberstadt
b011bbbf10 Bug 1400469 - Add ability to specify commit message to |mach try|, r=armenzg
MozReview-Commit-ID: LWkAEDWn8NC
2017-09-18 12:43:03 -04:00
Andrew Halberstadt
773e6d6179 Bug 1400424 - [tryselect] Make sure taskgraph generation is run from topsrcdir, r=dustin
This was preventing us from running ./mach try fuzzy from a subdirectory of the
topsrcdir. This also fixes taskgraph/utils/verify.py to find the docs directory
based off of topsrcdir instead of cwd. This was needed as cwd was being set at
import time.

MozReview-Commit-ID: CgQqD6bQ5q4
2017-09-16 00:31:45 -04:00
Chris Manchester
61d77ffd02 Bug 1401017 - Make mach try work with -j in the presence of modified local files. r=ahal
Running |./mach try -j <job>| may fail if there are changes in the local
working copy because the command will attempt to provide test paths based
on those changes and subsequently require platforms to be specified on the
basis of those paths. This commit makes this auto-detection only run when
a particular option is passed so this doesn't interfere with the common
case of simply running a selected job on try.

MozReview-Commit-ID: F3RBgDAYi27
2017-09-18 14:21:18 -07:00
Gregory Szorc
87de8af26f Bug 1400429 - Advertise use of mach try in commit message; r=ahal
This will allow us to inspect Try pushes to see how many are using
`mach try`.

The commit message for `mach try fuzzy` already advertised its usage.
We tweak the syntax a little so it isn't redundant.

MozReview-Commit-ID: 6kmYRKp0ffF
2017-09-15 16:17:37 -07:00
Wes Kocher
29697a5752 Bug 1391123 - Add a newline to the end of try_task_config.json r=gps
MozReview-Commit-ID: BtQntIHOo2G
2017-09-15 19:02:13 -07:00
ruby
40f792bfb3 Bug 1397427 - Enable py2 linter on tools/tryselect, r=ahal
MozReview-Commit-ID: K12XisbVQGq
2017-09-13 11:57:47 +05:30
Andrew Halberstadt
3b8c2d1e54 Bug 1391075 - Add template to modify task env from |mach try fuzzy|, r=dustin
This adds a new morph template for modifying a task's env and the corresponding glue
to specify it from |mach try fuzzy|. It can be used like:

./mach try fuzzy --env FOO=1 --env BAR=baz

This will simply set those environment variables in *all* tasks. We could add the
ability to only specify it for a subset of tasks in the future, but that seems like
a hard problem that probably isn't worth it.

MozReview-Commit-ID: C4sokv886PU
2017-08-25 15:24:22 -04:00
Andrew Halberstadt
b5c00e262e Bug 1395267 - [tryselect] Make default try selector used when running |mach try| without subcommands configurable, r=armenzg
To use this, create a ~/.mozbuild/machrc file and add:
[try]
default = fuzzy

Now, running |mach try| without a subcommand will default to the fuzzy selector. The syntax selector can still be
run with |mach try syntax|.

MozReview-Commit-ID: Ai6f8cW3Swq
2017-08-30 14:45:46 -04:00
Andrew Halberstadt
78b6b6d5b3 Bug 1394391 - [tryselect] Split hg implementation of files_changed to a list, r=jhford
This fixes a regression from bug 1384593. I was going to add a test for this, but it would be
a better use of time to fix bug 1185599 and add a test there. We already have vcs tests in other
parts of the tree so consolidating them into a single module is likely easier than standing up
another one-off vcs tester.

MozReview-Commit-ID: E51Tb1qC9Wb
2017-08-28 09:13:46 -04:00
Andrew Halberstadt
d0bb77d59e Bug 1393509 - Fix artifact builds on windows with |mach try fuzzy|, r=dustin
MozReview-Commit-ID: Fo3WzFEdLUF
2017-08-24 12:30:40 -04:00
Andrew Halberstadt
861b7351fe Bug 1390969 - [tryselect] Add ability to save and load presets to |mach try fuzzy| r=jgraham
This also prints the last known query used in the commit message. This won't be accurate as
users can delete + enter multiple queries in a single session, but will give users a slightly
better idea of what was scheduled by glancing at the commit message.

MozReview-Commit-ID: 93FbEmMvd9t
2017-08-24 11:04:56 -04:00
Andrew Halberstadt
d8e654a064 Bug 1390969 - [tryselect] Pull presets handling out of the 'syntax' selector r=jgraham
MozReview-Commit-ID: KmXRj8TBvYK
2017-08-17 11:14:07 -04:00
Andrew Halberstadt
5974a0f9bd Bug 1391675 - [tryselect] Add a test for 'mach try fuzzy' and associated task, r=gps
Basic test to get the ground work laid out.

MozReview-Commit-ID: LmjA3Kq7xKN
2017-08-21 11:52:28 -04:00
Andrew Halberstadt
beaf165060 Bug 1391675 - [tryselect] Move --no-push into common arguments, r=armenzg
The main motivation behind this change is to make testing easier, so e.g:
./mach try fuzzy --no-push
and
./mach try syntax --no-push

both work the same way.

MozReview-Commit-ID: LmjA3Kq7xKN
2017-08-21 13:14:31 -04:00
Andrew Halberstadt
1de2309672 Bug 1391675 - [tryselect] Make main command and all subcommands use the same argument parser, r=armenzg
This will give us a good way to share arguments between subcommands.

MozReview-Commit-ID: KmXRj8TBvYK
2017-08-17 11:13:50 -04:00
Andrew Halberstadt
1f102f23aa Bug 1387135 - Add ability to use 'artifact' template to |mach try fuzzy|, r=maja_zf
This uses the new templating mechanism in taskgraph to schedule artifact builds when using
|mach try fuzzy|. Like |mach try syntax|, this will automatically be enabled if
--enable-artifact-builds is set in the mozconfig. The --artifact/--no-artifact arguments
can be used to override the default.

MozReview-Commit-ID: J8HVZzOt4mX
2017-08-15 11:39:46 -04:00
Andrew Halberstadt
dd07ebc844 Bug 1390141 - Pipe stderr to devnull when checking for hg in |mach try|, r=gps
MozReview-Commit-ID: IRL3GFP8CpI
2017-08-16 08:22:38 -04:00
Andrew Halberstadt
f2b5c6cc71 Bug 1390605 - Add ability to use full_task_set and tasks from other projects to mach try fuzzy, r=Callek
This adds --full to switch to using the full_task_set instead of the target_task_set. The full set has
around ~7000 tasks while the target set for mozilla-central has ~2300, so I think leaving the target as
default makes sense (as it is the 95% use case).

This also adds the ability to specify a custom parameters.yml file via -p/--parameters. This just gets
forwarded to the taskgraph for generation.

MozReview-Commit-ID: Esjvkh1p0Yw
2017-08-15 15:22:56 -04:00
Jeff Gilbert
e9b3e7e34c Bug 1389366 - Fix |mach try| when hg is not installed. - r=ahal
Also find_executable doesn't seem to work on my windows machine, so I've replaced it.

MozReview-Commit-ID: 3mE4UeQ2ecy
2017-08-11 13:26:58 -07:00
Andrew Halberstadt
c066dd978e Bug 1388811 - [try fuzzy] Add ability to run non-interactive fuzzy queries, r=armenzg
MozReview-Commit-ID: JojBS8pZHSk
2017-08-09 13:11:47 -04:00
Andrew Halberstadt
6361b3f209 Bug 1384593 - Add an fzf based fuzzy try selector, r=armenzg
This try selector works as follows:

1. Generate target tasks (similar to ./mach taskgraph target)
2. Pipe all tasks to fzf (a fuzzy finding binary, this will be bootstrapped if necessary)
3. Allow user to make selection
4. Save selected tasks to 'try_task_config.json'. This is a new try scheduling
   mechanism built into taskcluster (see bug 1380306).
5. Use `hg push-to-try` (or git-cinnabar) to push the added file to try. This
   will use a temporary commit, so no trace of 'try_task_config.json' should be
   left over after use.


If you get messages like STOP! No try syntax found, you need to update version-control-tools:
./mach mercurial-setup --update



MozReview-Commit-ID: 4xHwZ9fATLv
2017-07-27 11:48:53 -04:00