Use transform to split `browsertime` applications
Categories
(Firefox Build System :: Task Configuration, task, P3)
Tracking
(firefox71 fixed)
| Tracking | Status | |
|---|---|---|
| firefox71 | --- | fixed |
People
(Reporter: ahal, Assigned: ahal)
References
Details
Attachments
(5 files)
| Assignee | ||
Comment 1•6 years ago
|
||
| Assignee | ||
Comment 2•6 years ago
|
||
Depends on D48978
| Assignee | ||
Comment 3•6 years ago
|
||
Depends on D48979
| Assignee | ||
Comment 4•6 years ago
|
||
Depends on D48980
| Assignee | ||
Comment 5•6 years ago
|
||
I tested these changes one commit at a time by diffing the taskgraph. There are some expected changes/improvements, but nothing that should change the tasks materially. I'm happy to provide taskgraph diffs between any of these commits on request.
| Assignee | ||
Comment 6•6 years ago
|
||
I only focused on browsertime as there are relatively few of these for now. I wanted to focus there so we don't start following the same precedent as raptor. But these transforms can easily be used to simplify the existing raptor configs.
| Assignee | ||
Comment 7•6 years ago
|
||
Comment 8•6 years ago
|
||
| Assignee | ||
Comment 9•6 years ago
|
||
I forgot to update the test names in raptor.ini. So just waiting for another successful try run and then I'll land. I also see some failures in the mobile tasks.. but seeing as those are tier 3 they might be pre-existing. I'll make sure to confirm.
| Assignee | ||
Comment 10•6 years ago
|
||
The bottom push is unchanged from mozilla-central, and the top is with all these changes. So all of the failures are previously existing and aren't caused by this series.
Comment 11•6 years ago
|
||
| Assignee | ||
Comment 12•6 years ago
|
||
I'm not going to work on simplifying the configs anymore, but I hope this can provide a good framework going forward. I'd suggest you folks also create a transform for the -profiling tasks (should be very similar to the cold one). It shouldn't be too difficult to convert the raptor tasks to use these transforms either. Though if they will be removed shortly it's probably not worth it.
Comment 13•6 years ago
|
||
(In reply to Andrew Halberstadt [:ahal] from comment #12)
I'm not going to work on simplifying the configs anymore, but I hope this can provide a good framework going forward. I'd suggest you folks also create a transform for the
-profilingtasks (should be very similar to thecoldone). It shouldn't be too difficult to convert theraptortasks to use these transforms either. Though if they will be removed shortly it's probably not worth it.
Thanks Andrew, much appreciated!
Comment 14•6 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/a6848e0fe8aa
https://hg.mozilla.org/mozilla-central/rev/316ae6bba580
https://hg.mozilla.org/mozilla-central/rev/52b1060ca5f0
https://hg.mozilla.org/mozilla-central/rev/41bf040c31a2
Comment 15•6 years ago
|
||
One issue I've found while trying to setup chrome desktop support on browsertime is that we can't disable warm page load tests and have cold page load tests (from what I can tell). :ahal is there a method that let's us do this or do we need to add a warm field to allow this behaviour?
Another issue (which I can get around) is that the test-sets can't be split by app with the single task definition. I have to create another task specifically for that app to be able to change the test-platforms that the browser runs on. Again, this isn't really problematic since there is a way around it, but I thought I'd mention it here.
Updated•6 years ago
|
| Assignee | ||
Comment 16•6 years ago
|
||
(In reply to Greg Mierzwinski [:sparky] from comment #15)
One issue I've found while trying to setup chrome desktop support on browsertime is that we can't disable warm page load tests and have cold page load tests (from what I can tell). :ahal is there a method that let's us do this or do we need to add a
warmfield to allow this behaviour?
You can use a tri-state variable. So instead of cold: <bool>, you could change it to pageload: {"cold", "warm", "both"} (with a default to warm). The e10s attribute in the tests.py transforms does something similar.
Another issue (which I can get around) is that the test-sets can't be split by app with the single task definition. I have to create another task specifically for that app to be able to change the test-platforms that the browser runs on. Again, this isn't really problematic since there is a way around it, but I thought I'd mention it here.
Yeah, I don't really like how we use test-sets and test-platforms to map tests to platforms. I filed bug 1541420 to get rid of these files. But in the meantime rather than create a new task, I'd again try to stick to transforms here. So I'd recommend:
- Create an optional
limit-platformskey which is a list of platforms (as defined intest-platforms.yml). You can optionally support pattern matching here. - Add it to the
handle_keyed_by_applist and make sure the transform that processes it comes afterwards. - In the transform, if
test["test-platform"]doesn't exist intest["limit-platforms"], then continue without yielding the test. Otherwise yield the test.
This way we can have the limit-platforms key kind of override the definitions in test-platforms.yml and in such a way that we can use by-app with it. This isn't ideal, but I think it's a bit nicer than duplicating tasks by app. And once bug 1587826 is fixed this key wouldn't be needed anymore.
If you do decide to implement this, I think you might as well put it in the tests.py transforms. Non raptor tasks could benefit from it as well.
Description
•