Commit graph

213 commits

Author SHA1 Message Date
Alan Jeffrey
b5943f5ab3 Disable the gstreamer plugin build for windows 2019-12-20 13:35:55 -06:00
marmeladema
4fc5154dd1 Make mach test-tidy --self-test compatible with Python3 2019-12-14 12:42:47 +00:00
bors-servo
9f1d469490
Auto merge of #25164 - servo:linux-processes, r=jdm
Increase parallelism on Linux WPT testing

The time taken by each chunk is uneven, with WPT-1 the longest before this change at 30 ~ 45 minutes. This reduces it to 15 ~ 20 minutes.

Surprisingly, increasing the number of processes seems to also make `test_element_in_collection` in `/webdriver/tests/execute_script/cyclic.py` **unexpectedly pass**. This happened reliably in three different runs:

https://community-tc.services.mozilla.com/tasks/S9O27WJvSa6j2PSjcRcbBA/runs/2
2019-12-12 14:26:37 -05:00
marmeladema
0032b3cdd1 Run mach test-tidy --no-wpt checks with Python3 in CI 2019-12-11 16:23:10 +00:00
bors-servo
8d4cedb911
Auto merge of #24575 - marmeladema:issue-23607/compat, r=SimonSapin
Enable some mach commands to be run with python3

This change finally enable the following commands to be run with python3:
* `build`
* `test-unit`
* `package`

As previously explained, `test-tidy` will require more work in the wpt repository directly. Maybe `test-tidy --no-wpt` is achievable relatively quickly though.

For possible remaining bits that might need to be worked on, see https://github.com/servo/servo/issues/23607

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors

<!-- Either: -->
- [x] There are tests for these changes

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2019-12-10 16:34:10 -05:00
marmeladema
64e9c0ee23 taskcluster: change some mach commands to use python3 under linux 2019-12-10 16:11:02 +00:00
Simon Sapin
c4cf31f72f Increase parallelism on Linux WPT testing
The time taken by each chunk is uneven, with WPT-1 the longest
before this change at 30~45 minutes. This reduces it to 15~20 minutes.

Surprisingly, increasing the number of processes seems to also make
`test_element_in_collection` in `/webdriver/tests/execute_script/cyclic.py`
**unexpectedly pass**. This happened reliably in three different runs:

https://community-tc.services.mozilla.com/tasks/S9O27WJvSa6j2PSjcRcbBA/runs/2
2019-12-10 14:39:38 +01:00
Simon Sapin
648de3984a Avoid spaces in treeherder tags
The are visually separated by each other by only a space
2019-12-10 12:33:48 +01:00
Simon Sapin
9c93ca6580 Distinguish Layout 2020 build task in Treeherder 2019-12-10 12:33:40 +01:00
bors-servo
58d2fb786d
Auto merge of #25171 - servo:u, r=jdm
Install dependencies for the WPT update task

Fix https://github.com/servo/servo/issues/25169
2019-12-09 20:29:55 -05:00
bors-servo
2d2cd2b7d7
Auto merge of #25048 - asajeffrey:gstplugin-glmemory, r=ferjm
GStreamer plugin should use GLMemory

<!-- Please describe your changes on the following line: -->

Get the gstreamer servosrc plugin to generate frames in GLMemory rather than main memory.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #24831
- [x] These changes do not require tests because it's an embedding perf issue

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2019-12-06 16:12:42 -05:00
Alan Jeffrey
445ee9b59f Disable gstreamer-in-gstreamer on windows CI 2019-12-06 15:06:57 -06:00
Simon Sapin
3811c5935f Install dependencies for the WPT update task
Fix https://github.com/servo/servo/issues/25169
2019-12-06 17:12:33 +01:00
Simon Sapin
fbc10d0137 Increase parallelism in macOS WPT testing
… now that remaining dual-core workers have been upgraded to quad-cores.

Also reduces the number of WPT chunks since per-task overhead becomes more siginificant when tasks are becoming shorter.
2019-12-06 01:33:39 +01:00
Simon Sapin
7435f6afa2 Move WPT sync-from-upstream task to Linux 2019-12-05 16:14:33 +01:00
Simon Sapin
0ac021c1a5 Include test output in filtered WPT logs 2019-12-03 16:49:23 +01:00
Josh Matthews
1936fb6637
Extend WPT update job timeout. 2019-11-29 09:44:44 -05:00
Josh Matthews
5ebccf22f5
Force GitForWindows to be closer to the front of PATH on CI than moztools. 2019-11-27 11:59:33 -05:00
Simon Sapin
9a4bc23ff0 Add decision task support for try=wpt-2020
This also needs support in Homu’s configuration file
2019-11-27 11:25:10 +01:00
Simon Sapin
98e6f21d02 Run WPT for Layout 2020 on CI 2019-11-26 16:22:58 +01:00
Simon Sapin
cbc3f8a421 Linux release build CI: time virtualenv creation and cargo fetch 2019-11-26 16:22:58 +01:00
Alan Jeffrey
0ee6695e4e Run bootstrap-gstreamer in CI 2019-11-25 10:13:15 -06:00
Alan Jeffrey
69acec137d Add a gstreamer servosrc plugin 2019-11-25 10:12:05 -06:00
bors-servo
834a0409b9
Auto merge of #24811 - servo:fail-fast, r=jdm
Fix updating the GitHub Status as soon as any TC task fails

… rather than only when the entire task group is resolved. This allows Homu to more quickly be notified of a failure, and move on to the next PR in the queue sooner.

(Plus drive-by Brewfile fix.)
2019-11-22 19:38:49 -05:00
Simon Sapin
77089ef44e Fix updating the GitHub Status as soon as any TC task fails
… rather than only when the entire task group is resolved.
This allows Homu to more quickly be notified of a failure,
and move on to the next PR in the queue sooner.
2019-11-22 18:14:27 +01:00
Simon Sapin
4dbdd255a1 Remove support for shallow clones. The bundle is already shallow. 2019-11-22 18:14:26 +01:00
Simon Sapin
3a8bb531a0 Fetch repository from artifacts rather than GitHub 2019-11-22 18:14:26 +01:00
Simon Sapin
55a8158d17 Decision taks: add artifacts of the repository’s contents 2019-11-22 16:09:03 +01:00
Simon Sapin
b96a36c131 Move mkdir call out of with_curl_script 2019-11-22 16:09:02 +01:00
Simon Sapin
203a06ff24 Fix Brewfile’s for running Servo without bulding it 2019-11-22 16:09:02 +01:00
bors-servo
91b612f8df
Auto merge of #24692 - paulrouget:checkcpp-tc, r=jdm
Run test-tidy with CPP files check on Windows
2019-11-21 12:11:37 -05:00
Paul Rouget
b71774d8fe Run test-tidy on Windows 2019-11-21 09:56:39 +01:00
Simon Sapin
34287e5342 Move WPT Linux from Buildbot to Taskcluster
Update expectations as differences don’t look intermittent:
https://github.com/servo/servo/pull/24785#issuecomment-555602259

Fixes https://github.com/servo/servo/issues/23569
2019-11-19 18:37:29 +01:00
Simon Sapin
81a03c1a18 Tweak WPT task names and config 2019-11-19 17:46:10 +01:00
Simon Sapin
67b0b97d4f Zero-pad the chunk number in WPT task names 2019-11-18 11:21:38 +01:00
Simon Sapin
e5f6333832 Only use high prority for macOS when testing a PR for merging. 2019-11-18 11:05:49 +01:00
Simon Sapin
1762cba533 Don’t pretend that update_wpt() doesn’t use debug assertions
It already was, since the key given to `find_or_create()`
did not include `args`.
2019-11-18 11:05:49 +01:00
Simon Sapin
fe23add637 Raise the priority of the release build task for WPT on macOS
… since other time-sensitive tasks depend on them.

Note: we need to be careful with task priorities,
especially in worker pools with limited capacity,
since they are absolute and can cause starvation:

https://docs.taskcluster.net/docs/manual/tasks/priority
2019-11-18 11:05:49 +01:00
Simon Sapin
b19b821985 Split WPT macOS testing into many more chunks
## Before this

Before this PR, we had roughly as many chunks as available workers.
Because the the number of test files is a poor estimate for the time
needed to run them, we have significant variation in the completion time
between chunks when testing one given PR.

https://github.com/servo/taskcluster-config/pull/9 adds a tool to collect
this data. Here are two full runs of `test_wpt` before this PR:

https://community-tc.services.mozilla.com/tasks/groups/DBt9ki9gTdWmwAk-VDorzw

```
count 1, total 0:00:32, max: 0:00:32	docker	0:00:32
count 1, total 0:59:14, max: 0:59:14	macos-disabled-mac1	0:59:14
count 6, total 4:12:16, max: 1:01:14	macos-disabled-mac1 WPT	0:40:29 0:18:55 0:46:50 0:44:38 1:01:14 0:40:10
count 1, total 0:55:19, max: 0:55:19	macos-disabled-mac9	0:55:19
count 6, total 4:25:09, max: 1:01:40	macos-disabled-mac9 WPT	0:37:58 0:37:24 0:27:18 1:01:40 0:46:17 0:54:31
```

Times for a given chunk vary between 19 minutes and 61 minutes.
Assuming no `try` testing, with Homu’s serial scheduling of `r+` testing
this means that that worker sits idle for 42 minutes
and our limited CPU resources are under-utilized.

When there *are* `try` PRs being tested however, they compete with
each other and any `r+` PR for the same workers. If we get unlucky,
a 61 minute task could only *start* after some other tasks have finished,
Increasing the overall time-to-merge a lot.

## This

This PR changes the number of chunks to be significantly more
than the number of available workers. When one of them finishes,
that worker can pick up another one instead of sitting idle.

Now the ratio of number of tasks to number of workers doesn’t matter:
the differences in run time between tasks becomes somewhat of an advantage
and the distribution to workers evens out on average.

The number 30 is a bit arbitrary. A higher number reduces resource
under-utilization, but increases the effect of per-task overhead.
The git cache added in https://github.com/servo/servo/pull/24753
reduced that overhead, though.

Another worry I had was whether this would make worse the similar problem
of unequal scheduling between processes within a task,
where some CPU cores sit idle while the rest processes finish their
assigned work.

This turned out not to be enough of a problem to negatively affect
the total machine time:

https://community-tc.services.mozilla.com/tasks/groups/VnDac92HQU6QmrpzWPCR2w
```
count 1, total 0:00:48, max: 0:00:48	docker	0:00:48
count 1, total 0:39:04, max: 0:39:04	macos-disabled-mac9	0:39:04
count 31, total 4:03:29, max: 0:15:29	macos-disabled-mac9 WPT
	0:07:26 0:08:39 0:04:21 0:07:13 0:12:47 0:10:11 0:04:01 0:03:36
	0:10:43 0:12:57 0:04:47 0:04:06 0:10:09 0:12:00 0:12:42 0:04:40
	0:04:24 0:12:20 0:12:15 0:03:03 0:07:35 0:11:35 0:07:01 0:04:16
	0:09:40 0:05:08 0:05:01 0:06:29 0:15:29 0:02:28 0:06:27
```

(4h03min is even lower than above, but seems within variation.)

## After this

https://github.com/servo/servo/issues/23655 proposes automatically
restarting failed WPT tasks, in case the failure is intermittent.
With the test suite split into more chunks we have fewer tests per chunk,
and therefore lower probability that a given one fails.
Restarting one of them also causes less repeated work.
2019-11-18 11:04:58 +01:00
Simon Sapin
1ca9c5b96b Move "extra" WPT testing to its own task (chunk "zero") 2019-11-18 09:47:05 +01:00
Simon Sapin
0dad48f54f macOS CI: use a cache of github.com/servo/servo
Relies on https://github.com/servo/taskcluster-config/pull/6
2019-11-17 09:08:21 +01:00
Simon Sapin
50d5bac736 Reduce macOS build task timeout 2019-11-16 10:11:36 +01:00
Simon Sapin
8b39fd3c7b Verbose Homebrew 2019-11-16 10:10:13 +01:00
Simon Sapin
d04a2745c6 Make the macOS worker type configurable 2019-11-15 22:21:06 +01:00
Simon Sapin
9b17deb11e Install zlib on macOS
https://community-tc.services.mozilla.com/tasks/fcbLrz33RHeshgRZGvSAjg/runs/0/logs/https%3A%2F%2Fcommunity-tc.services.mozilla.com%2Fapi%2Fqueue%2Fv1%2Ftask%2FfcbLrz33RHeshgRZGvSAjg%2Fruns%2F0%2Fartifacts%2Fpublic%2Flogs%2Flive.log#L1359

Note that the above is on macOS 10.15. Maybe previous versions provided zlib system-wide?
2019-11-15 22:20:47 +01:00
Simon Sapin
c292b1aaf0 Expect Homebrew to already be installed and in $PATH 2019-11-15 22:20:40 +01:00
Simon Sapin
00151b6a6f Fix sccache failure when rustc generates hundreds of thousands of warnings
Fixes https://github.com/servo/servo/issues/24714
2019-11-12 17:46:21 +01:00
Simon Sapin
b3faeb5483 Remove support for taskcluster.net in the decision task 2019-11-08 16:20:50 +01:00
bors-servo
8cb6145311
Auto merge of #24689 - servo:FLIP-THE-SWITCH, r=jdm
Move all tasks to Community-TC
2019-11-08 05:02:33 -05:00
Simon Sapin
9d85cbb65c Move all tasks to Community-TC 2019-11-08 07:24:33 +01:00