Commit graph

471 commits

Author SHA1 Message Date
bors-servo
0e8d0b4ca5
Auto merge of #29670 - mrobinson:improve-wpt-output, r=delan
Make WPT results output more useful

Before when a subtest failed, the text of the failed assertion was not printed. This changes makes sure that it is printed in both the console and the aggregated test output.

Also fix a couple typing errors.

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

---
<!-- 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 do not require tests because these are improvements to build tools.

<!-- 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. -->
2023-04-27 14:17:58 +02:00
sagudev
219afcc9a8 WPT results aggregating based on layout 2023-04-27 09:05:02 +02:00
Martin Robinson
379b3d03c8 Make WPT results output more useful
Before when a subtest failed, the text of the failed assertion was not
printed. This changes makes sure that it is printed in both the console
and the aggregated test output.

Also fix a couple typing errors.
2023-04-26 10:13:00 +02:00
Martin Robinson
e2cf3e8d1a Reorganize Servo's WPT Python scripts
This change moves all of Servo's WPT Python support scripts into one
directory as they were previously scattered throughout the directory
structure. This should allow more code reuse and make it easier to
understand how everything fits together.

The changes:

- `tests/wpt/update` → `python/wpt/importer`
- `etc/ci/upstream-wpt-changes/wptupstreamer` → `python/wpt/exporter`
- `etc/ci/upstream-wpt-changes/test.py` → `python/wpt/test.py`
- `etc/ci/upstream-wpt-changes/tests` → `python/wpt/tests`
- `tests/wpt/servowpt.py` →
    - `python/wpt/update.py`
    - `python/wpt/run.py`
- `tests/wpt/manifestupdate.py` → `python/wpt/manifestupdate.py`

This change also removes
 - The ability to run the `update-wpt` and `test-wpt` commands without
   using `mach`. These didn't work very well, because it was difficult
   to get all of the wptrunner and mach dependencies installed outside
   of the Python virtualenv. It's simpler if they are always run through
   `mach`.
- The old WPT change upstreaming script that was no longer used.
2023-04-20 12:24:55 +02:00
bors-servo
7ab48556b0
Auto merge of #29623 - mrobinson:wpt-import-one-week, r=mukilan
Import WPT tests every week instead of every day

We often have multiple imports stacked up which makes it more confusing to land each one. In addition, giving a week to do the import will give us more margin to triage failing tests and hopefully to be able to use intermittent expectations for flaky tests.

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

---
<!-- 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 do not require tests because this just change the frequency of a scheduled action.

<!-- 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. -->
2023-04-13 07:56:05 +02:00
Martin Robinson
728021d69e Import WPT tests every week instead of every day
We often have multiple imports stacked up which makes it more confusing
to land each one. In addition, giving a week to do the import will give
us more margin to triage failing tests and hopefully to be able to use
intermittent expectations for flaky tests.
2023-04-12 15:14:03 +02:00
Martin Robinson
72dbf0e752 Handle non-UTF8 diffs in the WPT upstream script
The output of `git diff` and `git show` can include non-UTF8 text or
binary data, so the WPT upstream script should handle this properly.

Fixes #29620.
2023-04-12 13:37:52 +02:00
Martin Robinson
f4b5b9f85f Fix the WPT export script
- Have the WPT exporter script use the WPT_SYNC_TOKEN for checking out
  wpt.
- Make sure the local WPT repository is unshallow when pushing.
- When searching for existing PRs use the main GitHub search API,
  as the pull request search does not seem to properly process
  the "head" parameter.
- When deleting branches in the downstream WPT repository, use
  the full URL to avoid trying to modify the upstream repository.
2023-04-11 13:37:50 +02:00
Martin Robinson
bc3abf9953 Remove more Taskcluster and Treeherder integration
Servo no longer uses Taskcluster and Treeherder, so this change removes
script references to those services and support files.
2023-04-10 23:04:17 +02:00
sagudev
7d0865c12b WPT agregated results also as github check 2023-04-03 09:13:04 +02:00
Samson
910406fcff
Update wpt-nightly-update.sh with right paths from workflows 2023-04-01 06:39:16 +02:00
Martin Robinson
bf61f5404c Fix permissions of etc/ci/wpt-nightly-update.sh
The permissions were mistakenly modified in a previous change.

Fixes #29550.
2023-03-28 11:04:47 +02:00
Martin Robinson
95bfad3ac5 Add Layout 2020 support to nightly WPT update 2023-03-24 18:33:07 +01:00
Martin Robinson
e09b05e618 Be more verbose when a command fails in the WPT upstream script 2023-03-23 13:11:16 +01:00
Martin Robinson
ec9cbeefd8 Merge forbidden panic check into test-tidy
This cleans up the GitHub actions yaml a bit and ensures that developers
are running this check locally before submitting changes. In addition,
it allows adding tests for this check. Finally, this change fixes the
tidy tests by upgrading voluptuous for Python 3.10 as well as by
reverting an inadvertent change for NixOS compatibility on one of the
dummy testing files.
2023-03-22 15:37:56 +01:00
Martin Robinson
5e30ce8532 Filter unknown flaky tests when filtering known intermittents
There are two kinds of flaky/intermittent tests in Servo. The
traditional kind is the test that fails on the CI, but has an associated
bug indicating that the test is an intermittent failure. Many of these
tests have completely unstable results, for instance those where an
unpredictable set of subtests fail. It's impossible to generate stable
results for these, so we have traditionally simply discard these
unexpected results.

Another kind of intermittent test is one that will produce an expected
result when rerun (ie will flake). Some of these are also labeled with
bugs, while some are not. In some cases, there is flakiness in some core
Servo functionality that can lead to *any* test flaking, such as a race
condition that can lead to an early screenshot for reftests. When these
kinds of tests do not have associated bugs, they cause the CI to fail.
In this case, it is impossible to label these tests as intermittent
because it can literally be any test.

This change, reruns failed tests in order to detect unlabeled tests in
the second category. Instead of blocking the CI when the second run
leads to expected results, the CI will now pass, but the flake will be
reported to the new flakiness dashboard. This prevents unrelated flakes
from slowing down the merge queue.
2023-02-21 12:10:02 +01:00
Martin Robinson
2784c0e69d Add support for the intermittent dashboard
Use the new intermittent dashboard to report intermittents and get
information about open bugs. This is now used to filter out
known-intermittents from results. In addition, this also allows the
scripts to report bug information to the GitHub. Display that in all
output.
2023-02-15 12:59:33 +01:00
Martin Robinson
5b3f147110 Make two small improvements to try result comment
Sort the test names alphabetically so that they are stable between try
runs and also include the action URL in the comment when possible.
2023-02-10 16:50:53 +01:00
Martin Robinson
d2a66fef0c Output test results as a GitHub comment
After filtering intermittents, output the results as JSON. Update the
GitHub workflow to aggregate this JSON data into an artifact and use the
aggregated data to generate a GitHub comment with details about the try
run. The idea here is that this comment will make it easier to track
intermittent tests and notice when a change affects a test marked as
intermittent -- either causing it to permanently fail or fixing it.
2023-02-04 17:11:02 +01:00
Martin Robinson
cc1ccf8aff ci: Produce a single WPT log artifact
GitHub supports adding files to an artifact in parallel, as long as the
filenames are unique. This makes it easier to download build results
when more than a single builder fails.
2023-02-02 15:54:04 +01:00
Martin Robinson
a18baf6719 Fix upstreaming of WPT changes
The GitHub Action needs access to Servo repository secrets, so switch to
using the 'pull_request_target' event. Since these PRs have more
complete access to the Servo repository, do not execute the version of
the upstream script that comes with the PR. Instead, simply fetch the
changes. To make this work, the script no longer expects the PR commit
to be checked out, merely that they exist in the repository somewhere.
2023-01-25 12:17:59 +01:00
Martin Robinson
772e086677 Enable the Github Action-based WPT upstream script 2023-01-20 20:19:27 +01:00
Martin Robinson
659597281b Add a script to upstream WPT changes via a GitHub Action
This is a modified version of the webhook found at
servo/upstream_wpt_webhook and deployed via SaltStack. It is updated to
use modern Python and to assume that GitHub Actions will fetch the
appropriate source code locally before the script is run.

Fixes #29206.
Fixes #23798.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2023-01-17 11:49:56 +01:00
cybai
49d94cb08b Run WPT sync nightly on GitHub Action 2022-08-16 00:14:55 +09:00
yvt
9e71bd6a70 chore(ci): remove the auto-generation of main.yml 2021-07-18 21:35:24 +09:00
Josh Matthews
57bc79b0d5 Use codesigning in UWP builds. 2021-07-02 18:22:49 -04:00
Josh Matthews
fe25aef578 Add missing CI checks. 2021-05-29 16:05:02 -04:00
Josh Matthews
172274d484 Add UWP builds to github actions. 2021-05-29 16:05:02 -04:00
Josh Matthews
4138d04186 Fail CI if workflow needs regenerating. 2021-05-24 20:19:18 -04:00
Josh Matthews
b391e3aa57 Remove last mac jobs from taskcluster. 2021-05-23 13:39:08 -04:00
Paulo E. Castro
1bfa45f236
Run WPT tests (linux) 2021-04-28 22:31:35 +01:00
Josh Matthews
c66255ba5e Copy to C: on Windows instead of manually cloning. 2021-03-06 12:44:29 -05:00
Josh Matthews
3ce71cda73 Add build github actions workflows for mac/windows/linux. 2021-02-26 04:20:22 -05:00
Josh Matthews
03dcf32df3 Verify the macOS package can load basic pages. 2020-07-21 13:12:03 -04:00
Kagami Sascha Rosylight
d01648d637 Fix remaining flake8 warnings 2020-06-21 03:34:32 +02:00
atouchet
a33c75cbec Rename glutin port to winit 2020-05-27 20:27:15 -07:00
Josh Matthews
2b46d557ab
Reuse layout-2013 WPT results with layout-2020 when syncing. 2020-03-19 10:47:26 -04:00
Jan Andre Ikenmeyer
ad9ee36e7b
Switch Android to OpenSSL 1.1.1d 2020-02-12 13:51:35 +01:00
marmeladema
7b5fabe855 Fix tidiness errors for Python3 compatibility across whole repo 2019-12-11 16:03:20 +00:00
marmeladema
00cf7452ef Generate per python version virtualenv 2019-12-09 19:31:45 +00:00
Simon Sapin
7435f6afa2 Move WPT sync-from-upstream task to Linux 2019-12-05 16:14:33 +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
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
08705345d6 Always construct TC API URLs from $TASKCLUSTER_PROXY_URL or $TASKCLUSTER_ROOT_URL 2019-11-05 14:25:33 +01:00
Patrick Walton
a358bca766 Use surfman for managing GL surfaces
Co-authored-by: Alan Jeffrey <ajeffrey@mozilla.com>
Co-authored-by: Zakor Gyula <gyula.zakor@h-lab.eu>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
2019-11-01 08:47:11 -05:00
marmeladema
2b3f6a2289 Remove python/_virtualenv/ dir in clean_build_artifacts.sh 2019-10-16 08:28:30 +01:00
Josh Matthews
9e575d6357
Assign bot reviewer for automated sync PRs. 2019-09-30 10:09:49 -04:00
Josh Matthews
c21f599b05 Clean up test results as part of WPT sync. 2019-09-25 12:41:02 -04:00
Alan Jeffrey
1c174900e9 Updated performance userscript for new perf API 2019-09-03 17:37:28 -05:00
Josh Matthews
39d13d1fc8 Support running WebGL in its own thread or on the main thread. 2019-07-25 23:05:03 -04:00