Commit Graph

95 Commits

Author SHA1 Message Date
Mike Conley
f54bcc5fef Bug 1355579 - Remove last references to spsProfile in the tree. r=dustin
MozReview-Commit-ID: 9kZeiaFWZCp

--HG--
extra : rebase_source : e3908cc9556142247cf0b1181d0fa7b0d268018e
2017-04-11 15:08:12 -04:00
Dustin J. Mitchell
c9c7364396 Bug 1353456: summarize index routes to avoid scope bloat; r=jonasfj
MozReview-Commit-ID: 6ACnfKy2g0z

--HG--
extra : rebase_source : dcfb5dbe3b2d3396df7281f3300065db63a7d443
2017-04-04 19:26:15 +00:00
Dustin J. Mitchell
449d528cf3 Bug 1333255: rename taskgraph.task to taskgraph.loader; r=jonasfj
MozReview-Commit-ID: 6aPdGbxn0D1

--HG--
rename : taskcluster/taskgraph/task/__init__.py => taskcluster/taskgraph/loader/__init__.py
rename : taskcluster/taskgraph/task/balrog.py => taskcluster/taskgraph/loader/balrog.py
rename : taskcluster/taskgraph/task/beetmover.py => taskcluster/taskgraph/loader/beetmover.py
rename : taskcluster/taskgraph/task/beetmover_checksums.py => taskcluster/taskgraph/loader/beetmover_checksums.py
rename : taskcluster/taskgraph/task/checksums_signing.py => taskcluster/taskgraph/loader/checksums_signing.py
rename : taskcluster/taskgraph/task/post_build.py => taskcluster/taskgraph/loader/post_build.py
rename : taskcluster/taskgraph/task/repacks.py => taskcluster/taskgraph/loader/repacks.py
rename : taskcluster/taskgraph/task/signing.py => taskcluster/taskgraph/loader/signing.py
rename : taskcluster/taskgraph/task/test.py => taskcluster/taskgraph/loader/test.py
rename : taskcluster/taskgraph/task/transform.py => taskcluster/taskgraph/loader/transform.py
rename : taskcluster/taskgraph/task/base.py => taskcluster/taskgraph/task.py
extra : rebase_source : 42a183bae9aedfa04876d99a59119fd08bbf7d73
2017-03-09 19:00:49 -05:00
Dustin J. Mitchell
7e3408a70e Bug 1333255: always transform tasks; r=jonasfj
MozReview-Commit-ID: 3A5wzXKG0Yp

--HG--
extra : rebase_source : 10063aa354d18b08db182b41e9ae61f2f884becd
2017-03-09 16:40:33 -05:00
Dustin J. Mitchell
d46264d259 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

--HG--
extra : rebase_source : 549773e05e18371a399612d9bceccffc29be8cf2
2017-03-09 23:14:30 -05:00
Dustin J. Mitchell
5c257e8656 Bug 1333255: replace uses of index_paths with optimizations; r=jonasfj
MozReview-Commit-ID: 1w8HVv94xoD

--HG--
extra : rebase_source : 9a2c0191595d7b759b45b8d49d2814ae983235b0
2017-03-10 20:20:50 +00:00
Dustin J. Mitchell
bf33dfcabd Bug 1333255: implement optimizations as named functions; r=jonasfj
MozReview-Commit-ID: 9xkHny7IYfA

--HG--
extra : rebase_source : 201cf73414aee4bab407c67cb95e08fd2b794ba5
2017-03-10 18:17:43 +00:00
Dustin J. Mitchell
4950be4e4f Bug 1333255: remove t.get_dependencies(); r=jonasfj
MozReview-Commit-ID: 1UF9yKXeRt7

--HG--
extra : rebase_source : f2fd8d2bafb36f88f490ff31e50550e7b1f423ef
2017-03-08 21:22:31 +00:00
Dustin J. Mitchell
a39d3b7ea3 Bug 1333255: use transforms to make docker image tasks, too; r=jonasfj
MozReview-Commit-ID: Eke3TjLbEfE

--HG--
extra : rebase_source : b91aa6733c26aed2f8f40de73dfef6ae863d1899
2017-03-08 20:52:13 +00:00
Dustin J. Mitchell
b0117f4f53 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

--HG--
extra : rebase_source : 72e0a9dd8385b250a46c9f4adf8a8a0e5b01c156
2017-03-09 23:14:40 -05:00
Dustin J. Mitchell
daecfa79ae Bug 1342510: fix -u mochitest-e10s-foo aliases to point to nonempty sets of tests; r=jmaher
MozReview-Commit-ID: 4P8WQraSe9U

--HG--
extra : rebase_source : 4562cc3f7ddd47dbeaa8e88e9904ed3a8d223e1b
2017-02-24 22:03:26 +00:00
Kim Moir
417c1a5625 Bug 1339604 - stylo builds + tests should only run on limited branches to reduce budget impact r=dustin
--HG--
extra : source : 5fbcbdd6849379c48ce869d4ed0e8083af9b8d23
2017-02-17 13:31:39 -05:00
Gregory Szorc
de39e4a302 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

--HG--
extra : rebase_source : 5eedb3994b679109246b89b0456dd2a59ef3212b
extra : amend_source : b0c97486ae2b72fd21c7968849735e4189e2e86f
2017-02-03 16:23:14 -08:00
Gregory Szorc
6e539c174e 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

--HG--
rename : servo/ports/geckolib/Cargo.toml => toolkit/library/geckolib/Cargo.toml
rename : servo/ports/geckolib/lib.rs => toolkit/library/geckolib/lib.rs
extra : rebase_source : c0e9c867ae74c4eb124e72dc481fd8dc814e65e7
2017-02-03 11:20:14 -08:00
Dustin J. Mitchell
53b7bc583c 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

--HG--
extra : rebase_source : 1c1f6bfb6a08deb8c0be4b2b58db02d85aafeb89
2017-02-01 00:30:52 +00:00
Dustin J. Mitchell
e8eacef251 Bug 1334167: use run-on-projects to parallel task graph generation; r=Callek
MozReview-Commit-ID: EQMuh4hN9Ya

--HG--
extra : rebase_source : 49eeeb005d5e74ee415add12a897b1767ee0bbd8
2017-01-31 19:49:18 +00:00
Dustin J. Mitchell
c40b565818 Bug 1334167: match times correctly; r=Callek
MozReview-Commit-ID: CZCoqmAEx9Q

--HG--
extra : rebase_source : 3ef22101d7f594426859b9eb3cbf287c2e1cb2ad
2017-01-31 18:39:33 +00:00
Wander Lairson Costa
56c96fa18d 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

--HG--
extra : rebase_source : b992786158851f1099aedfce8669a163228edc51
2017-02-02 09:34:43 -02:00
Sebastian Hengst
c69d28f8f8 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
aa5f7afcb9 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

--HG--
extra : rebase_source : 211ecf52694078986caf290c5b0cca35c775da61
2017-01-31 18:16:07 -02:00
Sebastian Hengst
aed3479d18 Backed out changeset 50cf83b69046 (bug 1333167) for breaking gecko decision task. r=backout 2017-01-31 18:25:50 +01:00
Wander Lairson Costa
cd15766fd6 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

--HG--
extra : rebase_source : 4b7323cd915e8ef9820816015b4b45524811eaf1
2017-01-31 15:03:10 -02:00
Mike Hommey
f6f42d4f18 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.

--HG--
extra : rebase_source : 57f593a530da02f9f576872404915c26af544688
2017-01-27 16:18:02 +09:00
Dustin J. Mitchell
174aa73537 Bug 1332844: alias "Ubuntu" to test platform linux32, rather than linux; r=gbrown
MozReview-Commit-ID: GjY9tF5TxjL

--HG--
extra : rebase_source : abab2fd0e01127e95dabf085ce459cc3e7e525a4
2017-01-21 18:53:19 +00:00
Dustin J. Mitchell
ea8b4ebe23 Bug 1332570: better test for ridealongs; r=Callek
MozReview-Commit-ID: 1eUytk4cMcf

--HG--
extra : rebase_source : 7ab7e12d5bc581b7daa4d39da14e1b6cbf4f0fbd
2017-01-09 15:02:14 -05:00
Sebastian Hengst
7030cacc26 Backed out changeset d9da8599a99f (bug 1332570) for flake8 failure (unused itertools). r=backout 2017-01-23 18:14:23 +01:00
Dustin J. Mitchell
fb6f21fb9e Bug 1332570: better test for ridealongs; r=Callek
MozReview-Commit-ID: 1eUytk4cMcf

--HG--
extra : rebase_source : 4427ca0d73f9a1899338a6886edce8db1fdae37f
2017-01-09 15:02:14 -05:00
Nathan Froyd
a3e09b1dbf 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
b8d8f8a712 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

--HG--
extra : rebase_source : ddf0a1eadae5a1169c0ead7bcb7b9ce61b255fbf
2017-01-18 19:45:53 +00:00
Dustin J. Mitchell
47dccff324 Bug 1326547: require that regexps in by-* match entire string; r=Callek
MozReview-Commit-ID: GxVAGHtCrzf

--HG--
extra : rebase_source : 8f3e573be44478011931d2579a3df09a11eb6e97
2017-01-03 18:43:48 -05:00
Dustin J. Mitchell
bfbc5f350d Bug 1326547: replace get_keyed_by with resolve_keyed_by; r=Callek
MozReview-Commit-ID: FS1nbVyykXV

--HG--
extra : rebase_source : 6cddb3ecb188f2c9c6dafee98c3b0ed5bfdf1955
2017-01-05 13:42:14 -05:00
Jonas Finnemann Jensen
1af303239b 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

--HG--
extra : rebase_source : e01cdbd0db06b36ba95dec3da936ee307a23aae7
2016-12-19 11:31:56 +01:00
Hammad Akhtar
079365ac41 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

--HG--
extra : rebase_source : ad1efed52363e95040a9907c6387b4cd57bdaa49
2016-12-06 12:03:36 +05:30
Andrew Halberstadt
541a302cee 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

--HG--
extra : rebase_source : 637dd777912e256d82092ba3e0edd6937cbb03c6
2016-11-18 15:07:56 -05:00
Gregory Szorc
743fc9a44c 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

--HG--
extra : rebase_source : 8c4742c13878d762fe7970eedfa5937fdaebe8c4
2016-11-17 17:10:01 -08:00
Gregory Szorc
bd86442e13 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

--HG--
extra : rebase_source : fbcc31d705c4b0e148aa3709ddcb18ad99953231
2016-11-17 16:29:51 -08:00
Jonas Finnemann Jensen
2cd49e189e 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

--HG--
extra : rebase_source : 677d8030a15af3288866a70fc648a10b22c396a3
2016-11-07 11:26:27 -08:00
Wander Lairson Costa
9caaae3ed3 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

--HG--
extra : rebase_source : 79a4344c7e3e978bb6b93713c6e6e4114ba5d5b8
2016-11-08 12:11:15 -02:00
Dustin J. Mitchell
aaabbac964 Bug 1296842: check parameters; r=jmaher
MozReview-Commit-ID: 1JCpufowNHD

--HG--
extra : rebase_source : 3409f417070751615d799cbda3f99d8e9029dda3
2016-11-07 19:13:40 +00:00
Dustin J. Mitchell
51aa1fc9fb 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

--HG--
extra : rebase_source : 85affd063a543c549afaaa36ce7ee31ed1f943d5
2016-11-07 19:13:34 +00:00
Sebastian Hengst
c663cd7c34 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
4e8662ab83 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

--HG--
extra : rebase_source : d2a5129b7459fc7f71f59da76d45526cef028e44
2016-11-07 09:20:50 -02:00
Joel Maher
974f731a59 Bug 1300074 - adjust taskcluster task names to match buildbot. r=dustin.
MozReview-Commit-ID: BV9stGRhhZG

--HG--
extra : rebase_source : 39b630a75acd571555a983c3d6f9dcbf1170d96d
2016-10-05 08:57:50 -04:00
Phil Ringnalda
18e0fd86a6 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

--HG--
extra : rebase_source : cb77ff3e016939c94ac05964a6db809fe10aaa1a
2016-10-02 23:20:02 -07:00
Brian Stack
92ede5330c Bug 1275774 - Add tests for new taskcluster try flag parsing r=dustin
MozReview-Commit-ID: 1QKnLZE0hzU

--HG--
extra : rebase_source : 7301c162bb21e41dcc858ff0d94b456e695166fc
2016-09-28 09:34:42 -07:00
Brian Stack
e6e4f7b548 Bug 1275774 - Add notify routes to taskcluster tasks for certain try flags r=dustin
MozReview-Commit-ID: 4ugUjv0NCZK

--HG--
extra : rebase_source : d552a45a25cdcfbde9eb012b4c77a6f4b8770444
2016-09-26 10:57:14 -07:00
Iris Hsiao
767e1e9b11 merge mozilla-inbound to mozilla-central a=merge 2016-09-26 18:34:20 +08:00
Dustin J. Mitchell
1045a329b8 Bug 1302227: set the taskGroupId to match the decision task; r=garndt
In this case, the tasks must have the same schedulerId as the existing task,
so this is calculated using parameters['level'].

MozReview-Commit-ID: G8EE2kvFstT

--HG--
extra : rebase_source : 214885da9b58520727d5f80b9a31bb8a206f9279
2016-09-22 21:30:56 +00:00
Dustin J. Mitchell
1261f3fd1c Bug 1277579: fix taskgraph tests after code change; r=philor
MozReview-Commit-ID: 7wJWFhcnA5s
2016-09-17 00:54:39 +00:00
Dustin J. Mitchell
bfea831cd8 Bug 1286075: delete the legacy kind; r=mshal
MozReview-Commit-ID: F99tUGUWj6d

--HG--
rename : taskcluster/ci/legacy/routes.json => testing/mozharness/configs/routes.json
extra : rebase_source : a437dd30dac1add3f439a98a8d910d2bdbcc843f
2016-09-08 00:31:35 +00:00