Commit Graph

99 Commits

Author SHA1 Message Date
Brian Stack
637820a4a1 Bug 1357673 - Fix try syntax tests r=dustin
MozReview-Commit-ID: D8kNDXyhAUq
2017-04-21 09:27:46 -07:00
Dustin J. Mitchell
a9ae152390 Bug 1357465: include the full test platform like it says in the docs; r=jmaher
MozReview-Commit-ID: CkAsBNEznuw
2017-04-14 20:49:44 +00:00
Sebastian Hengst
a5210d8c66 Backed out changeset ccf614bcd296 (bug 1357465) for breaking gecko decision tasks for nightly-code-coverage and nightly-mochitest-valgrind. r=backout a=backout
MozReview-Commit-ID: LpexSmhHEFh
2017-04-22 11:21:21 +02:00
Dustin J. Mitchell
44aed2b792 Bug 1357465: include the full test platform like it says in the docs; r=jmaher
MozReview-Commit-ID: CkAsBNEznuw
2017-04-14 20:49:44 +00:00
Mike Conley
db04b9c3ad Bug 1355579 - Remove last references to spsProfile in the tree. r=dustin
MozReview-Commit-ID: 9kZeiaFWZCp
2017-04-11 15:08:12 -04:00
Dustin J. Mitchell
98f195cf5c Bug 1353456: summarize index routes to avoid scope bloat; r=jonasfj
MozReview-Commit-ID: 6ACnfKy2g0z
2017-04-04 19:26:15 +00:00
Dustin J. Mitchell
7b617b9156 Bug 1333255: rename taskgraph.task to taskgraph.loader; r=jonasfj
MozReview-Commit-ID: 6aPdGbxn0D1
2017-03-09 19:00:49 -05:00
Dustin J. Mitchell
37dca4a3be Bug 1333255: always transform tasks; r=jonasfj
MozReview-Commit-ID: 3A5wzXKG0Yp
2017-03-09 16:40:33 -05:00
Dustin J. Mitchell
857d963040 Bug 1333255: and then there was only one Task class; r=jonasfj
Note that the to_json method prefers the taskgraph's dependencies information
(edges) to that from the task.dependencies entries. At a few points in
task-graph generation, these values differ, although that is expected (for
example, the full task set contains no edges, but that information is still in
task.dependencies). Unifying that representation leads to some difficulty with
task transforms that reach into the dependency tree (beetmover), so the
different representations are left as-is.

MozReview-Commit-ID: GeW8HNwFA9Z
2017-03-09 23:14:30 -05:00
Dustin J. Mitchell
b249b845c2 Bug 1333255: replace uses of index_paths with optimizations; r=jonasfj
MozReview-Commit-ID: 1w8HVv94xoD
2017-03-10 20:20:50 +00:00
Dustin J. Mitchell
154a1cb600 Bug 1333255: implement optimizations as named functions; r=jonasfj
MozReview-Commit-ID: 9xkHny7IYfA
2017-03-10 18:17:43 +00:00
Dustin J. Mitchell
4168dc665a Bug 1333255: remove t.get_dependencies(); r=jonasfj
MozReview-Commit-ID: 1UF9yKXeRt7
2017-03-08 21:22:31 +00:00
Dustin J. Mitchell
28496e8561 Bug 1333255: use transforms to make docker image tasks, too; r=jonasfj
MozReview-Commit-ID: Eke3TjLbEfE
2017-03-08 20:52:13 +00:00
Dustin J. Mitchell
a0095736a7 Bug 1333255: use normal old functions to load tasks; r=jonasfj
Instead of using a class's static method, use a simple function, specified by
the `loader` key.

MozReview-Commit-ID: IeOl9qiSCXf
2017-03-09 23:14:40 -05:00
Dustin J. Mitchell
229ee0b4ce Bug 1342510: fix -u mochitest-e10s-foo aliases to point to nonempty sets of tests; r=jmaher
MozReview-Commit-ID: 4P8WQraSe9U
2017-02-24 22:03:26 +00:00
Kim Moir
68e58246f9 Bug 1339604 - stylo builds + tests should only run on limited branches to reduce budget impact r=dustin 2017-02-17 13:31:39 -05:00
Gregory Szorc
71072181cc Bug 1336607 - Remove dummy geckolib and taskgraph filter; r=froydnj
Now that we use the real geckolib and have all dependencies vendored,
the dummy geckolib is no longer required, so we remove it.

Also, the taskgraph code for testing for Servo's presence always
passes and is no longer needed, so we remove it.

Pushed on a CLOSED TREE because ¯\_(ツ)_/¯

MozReview-Commit-ID: ITAqArK4Bks
2017-02-03 16:23:14 -08:00
Gregory Szorc
345f97d74a Bug 1322769 - Move dummy geckolib to toolkit/library, change taskgraph detection; r=froydnj
I want to get Servo vendored into servo/. The previous plan was to
replace the dummy geckolib with the real deal when the vendoring is
done. Unfortunately, this will require a significant `cargo vendor`
change, which we want to punt on for a bit.

So, this commit moves our dummy geckolib outside of servo/ so we
don't need to `cargo update` or `cargo vendor` when the real servo/
is installed.

The change to toolkit/library/rust/shared/Cargo.toml can be reverted
in the stylo repo to allow it to use the real geckolib.

We also update the taskgraph code for detecting Servo. Previously,
it looked for a file in the possibly-vendored servo/ directory. Once
the vendoring happens, this check will always pass. But without the
real geckolib, the Servo builds will fail. So, we change the check
to look for the real geckolib. This is implemented a bit hackily.
But it will be short-lived until we run `cargo vendor`.

MozReview-Commit-ID: CxGTwy6bK9j
2017-02-03 11:20:14 -08:00
Dustin J. Mitchell
7182ad3228 Bug 1334167: allow by-project for cron jobs' when property; r=Callek
This requires moving the schema utilities to their own util module.

MozReview-Commit-ID: KR5xSJ9ak5Y
2017-02-01 00:30:52 +00:00
Dustin J. Mitchell
8a1376158a Bug 1334167: use run-on-projects to parallel task graph generation; r=Callek
MozReview-Commit-ID: EQMuh4hN9Ya
2017-01-31 19:49:18 +00:00
Dustin J. Mitchell
a987a67026 Bug 1334167: match times correctly; r=Callek
MozReview-Commit-ID: CZCoqmAEx9Q
2017-01-31 18:39:33 +00:00
Wander Lairson Costa
97113977c9 Bug 1333167: Add extra try options to taskcluster. r=dustin a=jmaher
We add the following command line options to Taskcluster try syntax:

--spsProfile - enable profile mode.
--rebuild-talos <N> - retrigger talos tests N times.
--setenv <VAR>=<val> - add extra environments variables.
--tag <TAG> - run tests only the tag TAG.
--no-retry - doesn't retry failed jobs.

We have a chicken-egg problem, as we first generate the full task graph
and then parse the try message. But the graph generation step needs to
know the try message to process the aforementioned options. The
solution is to parse the message before graph generation and then
pass the command line options to the transforms. Then, each transform
can look at the option that interests it and process it accordingly.

The message parse function is configured in kind.yml, which gives some
flexibility for future implementations of alternative syntaxes.

MozReview-Commit-ID: GPFdi0FD6Vn
2017-02-02 09:34:43 -02:00
Sebastian Hengst
6ceaf1e6a8 Backed out changeset d6648b8f36ed (bug 1333167) for breaking gecko decision task. r=backout on a CLOSED TREE 2017-01-31 21:47:45 +01:00
Wander Lairson Costa
97963da965 Bug 1333167: Add extra try options to taskcluster. r=dustin a=jmaher
We add the following command line options to Taskcluster try syntax:

--spsProfile - enable profile mode.
--rebuild-talos <N> - retrigger talos tests N times.
--setenv <VAR>=<val> - add extra environments variables.
--tag <TAG> - run tests only the tag TAG.
--no-retry - doesn't retry failed jobs.

We have a chicken-egg problem, as we first generate the full task graph
and then parse the try message. But the graph generation step needs to
know the try message to process the aforementioned options. The
solution is to parse the message before graph generation and then
pass the command line options to the transforms. Then, each transform
can look at the option that interests it and process it accordingly.

The message parse function is configured in kind.yml, which gives some
flexibility for future implementations of alternative syntaxes.

MozReview-Commit-ID: DMwRjuV2vpf
2017-01-31 18:16:07 -02:00
Sebastian Hengst
7cb5f66fd9 Backed out changeset 50cf83b69046 (bug 1333167) for breaking gecko decision task. r=backout 2017-01-31 18:25:50 +01:00
Wander Lairson Costa
064a62b081 Bug 1333167: Add extra try options to taskcluster. r=dustin a=jmaher
We add the following command line options to Taskcluster try syntax:

--spsProfile: enable profile mode.
--rebuild-talos <N>: retrigger talos tests N times.
--setenv <VAR>=<val>: add extra environments variables.
--tag <TAG>: run tests only the tag TAG.
--no-retry: doesn't retry failed jobs.

We have a chicken-egg problem, as we first generate the full task graph
and then parse the try message. But the graph generation step needs to
know the try message to process the aforementioned options. The
solution is to parse the message before graph generation and then
pass the command line options to the transforms. Then, each transform
can look at the option that interests it and process it accordingly.

The message parse function is configured in kind.yml, which gives some
flexibility for future implementations of alternative syntaxes.

MozReview-Commit-ID: EQlE6q5E8z7
2017-01-31 15:03:10 -02:00
Mike Hommey
1b59835afd Bug 1334401 - Prefer docker images from higher levels. r=jonasfj
Considering docker images contents depend very much on the moment they
were built, it is possible that two images with the same hash in the
taskcluster index (at different levels) have different contents. When
this happens, the build or test results could be significantly
different between e.g. try and mozilla-central, possibly leading to
misleading results at landing time.

So if for some reason multiple levels have images for the same hash, the
one used at the highest level should be prefered, such that try uses the
same as mozilla-central once mozilla-central generates the image for
that hash, even if there is an image previously generated for try.
2017-01-27 16:18:02 +09:00
Dustin J. Mitchell
17e0a9c017 Bug 1332844: alias "Ubuntu" to test platform linux32, rather than linux; r=gbrown
MozReview-Commit-ID: GjY9tF5TxjL
2017-01-21 18:53:19 +00:00
Dustin J. Mitchell
1ed6e22a85 Bug 1332570: better test for ridealongs; r=Callek
MozReview-Commit-ID: 1eUytk4cMcf
2017-01-09 15:02:14 -05:00
Sebastian Hengst
dc7228cf26 Backed out changeset d9da8599a99f (bug 1332570) for flake8 failure (unused itertools). r=backout 2017-01-23 18:14:23 +01:00
Dustin J. Mitchell
a14b4093cf Bug 1332570: better test for ridealongs; r=Callek
MozReview-Commit-ID: 1eUytk4cMcf
2017-01-09 15:02:14 -05:00
Nathan Froyd
5d000d2838 Bug 1302028 - part 3 - modify path for filtering out servo tasks; r=gps
We're adding a dummy servo/ports/geckoservo/ directory, which would make
the filtering logic for Taskcluster tasks think that we want to run
Servo tasks all the time.  But we don't have a complete installation of
Servo, so things will inevitably fall over if we did that.  To avoid
this situation, change the path that the filter checks for to something
a little more specific and less likely to cause conflicts.
2017-01-20 11:33:04 -05:00
Dustin J. Mitchell
0064836f97 Bug 1252948: support for periodic taskgraphs; r=Callek,jonasfj,kmoir
This adds `.cron.yml` and a new mach command to interpret it.  While
functionality is limited to nightlies right now, there is room to expand to
more diverse periodic tasks.  Let your imagination run wild!

MozReview-Commit-ID: KxQkaUbsjQs
2017-01-18 19:45:53 +00:00
Dustin J. Mitchell
a9378c6eb6 Bug 1326547: require that regexps in by-* match entire string; r=Callek
MozReview-Commit-ID: GxVAGHtCrzf
2017-01-03 18:43:48 -05:00
Dustin J. Mitchell
cf95e9c69c Bug 1326547: replace get_keyed_by with resolve_keyed_by; r=Callek
MozReview-Commit-ID: FS1nbVyykXV
2017-01-05 13:42:14 -05:00
Jonas Finnemann Jensen
e09600726d Bug 1324414 - Reference prebuilt docker images by HASH. r=dustin
This adds a HASH file next to the VERSION file in the image
context folders for prebuilt docker images. And uses the
HASH for referencing the image in the tasks created by
the decision task.

This way docker will validate the image hash when pulling it
in production. Thus, attackers won't be able to inject code
by compromising the remote docker registries we use to store
prebuilt images. Further more, this makes validation of the
Chain-Of-Trust artifacts easier as this eliminates the need
for whitelists and hash validation.

MozReview-Commit-ID: FD3B9MyeU9Q
2016-12-19 11:31:56 +01:00
Hammad Akhtar
419f90c11b Bug 1322193 - Verify taskgraph implementations against documentation, with proper regex. Updated doc verification for fake values of kinds, parameters etc., regex optimized r=Callek
MozReview-Commit-ID: 56ZEJECbtK5
2016-12-06 12:03:36 +05:30
Andrew Halberstadt
96cea74a5f Bug 1318438 - [taskcluster] "job" tasks should have ability to run on multiple platforms, r=dustin
This adds an optional "platforms" key to the job description. It can be used in conjunction with
"by-platform" like so:

platforms:
    - linux
    - windows
worker-type:
    by-platform:
        linux: ...
        windows: ...
worker:
    by-platform:
        linux: ...
        windows: ...

MozReview-Commit-ID: JwL1NAR4bnY
2016-11-18 15:07:56 -05:00
Gregory Szorc
3423391b5b Bug 1318200 - Filter Stylo platforms when Servo isn't available; r=dustin
Stylo automation doesn't work unless Servo is present in the source
directory. This commit introduces a "check_servo" filter that prunes
tasks requiring Servo. Currently, this is implemented as a test against
platforms that are unique to Servo.

The use of relative path checking to find the topsrcdir is a bit
unfortunate. But we use this pattern elsewhere in this code.

MozReview-Commit-ID: IRtd53tudJW
2016-11-17 17:10:01 -08:00
Gregory Szorc
49ecc723ac Bug 1318200 - Obtain target tasks method from parameters; r=dustin
Previously, all callers outside of tests that passed
"target_tasks_method" to TaskGraphGenerator all used the same pattern
of looking for a key in the parameters and calling a function in
the target_tasks module.

Future commits will refactor how target tasks graph work. To
make the transition easier, we move the logic for obtaining the
target tasks method into TaskGraphGenerator.

MozReview-Commit-ID: 3QU09iGhoXh
2016-11-17 16:29:51 -08:00
Jonas Finnemann Jensen
2bae2cad08 Bug 1316183 - Compress docker images with zstd. r=dustin
* Compress docker images with zstd
 * Removed need for context.tar from decision task
 * Index images by level rather than project

MozReview-Commit-ID: 4RL4QXNWmpd
2016-11-07 11:26:27 -08:00
Wander Lairson Costa
3b8168fa5d Bug 1274980 part 1: Add support for test platform regex match. r=dustin
Often we need to setup a test configuration for different platforms, but
not for different platform builds (opt/debug). This leads to cumbersome
configuration duplicates. This patch adds support for platform regular
expression matching. For example, if you want to configure the chunk
size for linux64 platform both for opt and debug, originally you would
do this:

chunks:
    by-test-platform:
        linux64/opt: 4
        linux64/debug: 4
        default: 8

With regular expression matching, you only need:

chunks:
    by-test-platform:
        linux64/.*: 4
        default: 8

This patch was originally written by Geoffrey Brown for Windows support.

MozReview-Commit-ID: KbMHV7UkTLe
2016-11-08 12:11:15 -02:00
Dustin J. Mitchell
8d20917cdf Bug 1296842: check parameters; r=jmaher
MozReview-Commit-ID: 1JCpufowNHD
2016-11-07 19:13:40 +00:00
Dustin J. Mitchell
45eb10a983 Bug 1296842: make target-task related parameters a fixed set; r=jmaher
The `from_parameters` method was never used, and let do confusion over the role
of these parameters.  Now there are only two, and they are always required.

MozReview-Commit-ID: AbPqijXucu5
2016-11-07 19:13:34 +00:00
Sebastian Hengst
a7ab43e29d Backed out changeset b8760b0b11ac (bug 1274980) on suspicion of breaking marionette tests in taskcluster. r=backout on a CLOSED TREE 2016-11-07 18:57:58 +01:00
Wander Lairson Costa
d239765478 Bug 1274980 part 1: Add support for test platform regex match. r=dustin
Often we need to setup a test configuration for different platforms, but
not for different platform builds (opt/debug). This leads to cumbersome
configuration duplicates. This patch adds support for platform regular
expression matching. For example, if you want to configure the chunk
size for linux64 platform both for opt and debug, originally you would
do this:

chunks:
    by-test-platform:
        linux64/opt: 4
        linux64/debug: 4
        default: 8

With regular expression matching, you only need:

chunks:
    by-test-platform:
        linux64/.*: 4
        default: 8

This patch was originally written by Geoffrey Brown for Windows support.

MozReview-Commit-ID: HFP52N9Ef0k
2016-11-07 09:20:50 -02:00
Joel Maher
8022b5ebdb Bug 1300074 - adjust taskcluster task names to match buildbot. r=dustin.
MozReview-Commit-ID: BV9stGRhhZG
2016-10-05 08:57:50 -04:00
Phil Ringnalda
ea86186c88 Bug 1307043 - Make [Ubuntu] in try syntax include ASan tests, r=dustin
If you want to run tests on Linux32 and Linux64, you use trychooser syntax like
"-u all[Ubuntu]" which taskcluster supports, but if you also built ASan, and
want tests on ASan, there's no supported documented way to get them. That sounds
like an edge-case, except that to get tests to run on WinXP or Win8 you have to
explicitly list them, so to get tests on every platform you build you have to
list all of them, and if ASan is one of them you have to somehow know to dig
around in the .yml and to know that linux64-asan is the thing to dig out.

MozReview-Commit-ID: 2REf0cUWmK8
2016-10-02 23:20:02 -07:00
Brian Stack
c22cbf02cb Bug 1275774 - Add tests for new taskcluster try flag parsing r=dustin
MozReview-Commit-ID: 1QKnLZE0hzU
2016-09-28 09:34:42 -07:00
Brian Stack
d248ef84bf Bug 1275774 - Add notify routes to taskcluster tasks for certain try flags r=dustin
MozReview-Commit-ID: 4ugUjv0NCZK
2016-09-26 10:57:14 -07:00