aboutsummaryrefslogtreecommitdiffstats
path: root/etc
Commit message (Collapse)AuthorAgeFilesLines
* Switch to rustls and webpki-roots (#30025)Martin Robinson2023-08-082-99/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change replaces OpenSSL with rustls and also the manually curated CA certs file with webpki-roots (effectively the same thing, but as a crate). Generally speaking the design of the network stack is the same. Changes: - Code around certificate overrides needed to be refactored to work with rustls so the various thread-safe list of certificates is refactored into `CertificateErrorOverrideManager` - hyper-rustls takes care of setting ALPN protocols for HTTP requests, so for WebSockets this is moved to the WebSocket code. - The safe set of cypher suites is chosen, which seem to correspond to the "Modern" configuration from [1]. This can be adjusted later. - Instead of passing a string of PEM CA certificates around, an enum is used that includes parsed Certificates (or the default which reads them from webpki-roots). - Code for starting up an SSL server for testing is cleaned up a little, due to the fact that the certificates need to be overriden explicitly now. This is due to the fact that the `webpki` crate is more stringent with self-signed certificates than SSL (CA certificates cannot used as end-entity certificates). [2] 1. https://wiki.mozilla.org/Security/Server_Side_TLS 2. https://github.com/briansmith/webpki/issues/114 Fixes #7888. Fixes #13749. Fixes #26835. Fixes #29291.
* Remove lzma path workaround for MacOS (#30053)Martin Robinson2023-08-012-5/+0
| | | | | Now that the new version of GStreamer fixes this issue, we can remove the workarounds for this problem as well as all of the homebrew bootstrapping logic.
* Make "@bors-servo try" a GitHub Action (#30014)Martin Robinson2023-07-241-17/+13
| | | | | | | | | | | | | | This is the last piece of the puzzle to turning off bors. This makes functionality provided by bors to understand "@bors-servo try" a GitHub Action. For now the syntax is more or less the same, but we can modify it in the future and even add support for custom configuration options (more specific build combinations or even passing compiler flags). The big difference between this and what bors does is that there is no merge commit. GitHub simply runs tests on the version of the branch that is on a pull request. There is always the risk that tests might start failing when a branch is rebased, but this offers a bit more control because you can easily rebase from the PR and the merge queue will check this as well.
* Fix WPT sync and simplify the update scripts (#29999)Martin Robinson2023-07-173-260/+0
| | | | | | | | | Much of the code used to import WPT tests from upstream has been moved to the WPT repository itself, so this can be reused. In addition, simplify the workflows by merging the entire process into mach and also directly into the GitHub workflow. This should fix WPT imports after combining compilation of layout and legacy layout. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Fix the WPT update (#29996)Martin Robinson2023-07-132-60/+1
| | | | | - No longer issue the bors-servo r+ comment as we use the merge queue now. - Explicitly trigger all layout tests so that results are generated.
* Update scripts to reflect new WPT directory nameMartin Robinson2023-06-262-4/+4
|
* Rename metadata directoriesMartin Robinson2023-06-224-8/+9
| | | | | | | | This renames: - `tests/wpt/metadata` → `tests/wpt/meta-legacy-layout` - `tests/wpt/metadata-layout-2020` → `tests/wpt/meta` - `tests/wpt/mozilla/meta` → `tests/wpt/mozilla/meta-legacy-layout` - `tests/wpt/mozilla/meta-layout-2020` → `tests/wpt/mozilla/meta`
* Implement `./mach bootstrap` for MacOSMartin Robinson2023-06-221-0/+1
|
* Clean up rustdoc runMartin Robinson2023-06-202-24/+0
| | | | | | | | | 1. The options specified in `rustdoc-with-private` are essentially the default now so we can remove this script. 2. `./mach browse-doc` is redundant with `./mach doc --open` which uses the underlying cargo functionality to browse the documentation. Fixes #29888.
* Remove magicleap related references from config filesmichaelgrigoryan252023-05-221-2/+0
|
* Run the Layout 2020 tests in main workflowMartin Robinson2023-05-171-2/+5
| | | | | | | Also fix report_aggregated_expected_results.py which was reporting an error when there were no failing tests. This is more commonly an issue with Layout 2020 because if runs fewer tests and was causing builds to show up as failing even when they were not.
* Workaround bug in gstreamer binariesMukilan Thiyagarajan2023-05-121-0/+3
| | | | | | | | | | | | | | | | The official gstreamer .pkg distribution should contain 'relocatable' dylibs, but as discovered in #29732, some dylibs have absolute links to liblzma.5.dylibs Since /opt/homebrew is the default install location on Apple Silicion, this will cause the packaging & build steps to fail, even if 'xz' package is installed via homebrew. This is a temporary fix until upstream fixes the bug and makes the package truly 'relocatable'. Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
* Consume official GStreamer binaries on MacOSMukilan Thiyagarajan2023-05-123-22/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR re-enables support for the gstreamer mediastack in macOS by consuming the official binary '.pkg' files from gstreamer.freedesktop.org To maintain symmetry with other platforms, the '.pkg' files are uploaded to servo-build-deps and fetched from there using the new script 'etc/install_macos_gstreamer.sh'. Unlike the Homebrew version, the official GStreamer is distributed as a 'relocatable' framework i.e the dylibs all have @rpath-relative install names and also link to other dylibs using @rpath relative path. To address this difference the 'servo' binary needs to be patched with 'install_name_tool' to add an LC_RPATH command that sets the relative paths that the dynamic linker should search when trying to satify dependencies. In Servo's case, this will be a path relative to the 'servo' binary itself i.e '@executable_path/lib/' The additional 'lib' is due to a flaw in the gstreamer packaging where the install names of some of the dylibs have the prefix '@rpath/lib' and some of them just have '@rpath'. This PR also fixes a couple of issues present in the `mach build` process on MacOS: 1. `mach build` process was not copying transitive dependencies of servo binary but only the first level dylibs 2. `mach build` process didn't patch the links to dylibs in servo binary (and dependencies). This meant though (some) dylibs were copied to local path, the binary still loaded the dylibs from system GStreamer installation i.e homebrew instead of the copieds dylibs The build and runtime dependencies in etc/homebrew/Brewfile and etc/homebrew/Brewfile-build have also been removed in This PR. Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
* Don't report test results for closed PRsMartin Robinson2023-05-051-10/+22
| | | | | | | | | | | | | When doing a try run, bors will often push the last closed merge onto the branch before pushing the change to try. This means that test results get reported on closed PRs. There are two issues with this: 1. Doing too much work on the bots. 2. Extra results on closed PRs. This changes fixes the second issue. Fixes #29583.
* Auto merge of #29670 - mrobinson:improve-wpt-output, r=delanbors-servo2023-04-271-8/+11
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. -->
| * Make WPT results output more usefulMartin Robinson2023-04-261-8/+11
| | | | | | | | | | | | | | | | 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.
* | WPT results aggregating based on layoutsagudev2023-04-271-11/+18
|/
* Reorganize Servo's WPT Python scriptsMartin Robinson2023-04-2034-5046/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Auto merge of #29623 - mrobinson:wpt-import-one-week, r=mukilanbors-servo2023-04-131-0/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. -->
| * Import WPT tests every week instead of every dayMartin Robinson2023-04-121-0/+0
| | | | | | | | | | | | | | 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.
* | Handle non-UTF8 diffs in the WPT upstream scriptMartin Robinson2023-04-124-6/+42
|/ | | | | | | 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.
* Fix the WPT export scriptMartin Robinson2023-04-113-13/+52
| | | | | | | | | | | - 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.
* Remove more Taskcluster and Treeherder integrationMartin Robinson2023-04-1015-1596/+0
| | | | | Servo no longer uses Taskcluster and Treeherder, so this change removes script references to those services and support files.
* Update shell.nixMifom2023-04-091-1/+2
| | | | Replace deprecated xlibsWrapper with just xorg.libX11
* WPT agregated results also as github checksagudev2023-04-031-5/+60
|
* Update wpt-nightly-update.sh with right paths from workflowsSamson2023-04-011-2/+2
|
* Fix permissions of etc/ci/wpt-nightly-update.shMartin Robinson2023-03-281-0/+0
| | | | | | The permissions were mistakenly modified in a previous change. Fixes #29550.
* Add Layout 2020 support to nightly WPT updateMartin Robinson2023-03-241-12/+14
|
* Be more verbose when a command fails in the WPT upstream scriptMartin Robinson2023-03-231-3/+8
|
* Merge forbidden panic check into test-tidyMartin Robinson2023-03-221-34/+0
| | | | | | | | | 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.
* Filter unknown flaky tests when filtering known intermittentsMartin Robinson2023-02-211-17/+21
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Add support for the intermittent dashboardMartin Robinson2023-02-151-0/+7
| | | | | | | | 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.
* Make two small improvements to try result commentMartin Robinson2023-02-101-2/+22
| | | | | Sort the test names alphabetically so that they are stable between try runs and also include the action URL in the comment when possible.
* Output test results as a GitHub commentMartin Robinson2023-02-041-0/+144
| | | | | | | | | 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.
* ci: Produce a single WPT log artifactMartin Robinson2023-02-021-1/+1
| | | | | | 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.
* Fix upstreaming of WPT changesMartin Robinson2023-01-253-8/+27
| | | | | | | | | 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.
* Enable the Github Action-based WPT upstream scriptMartin Robinson2023-01-201-2/+2
|
* Add a script to upstream WPT changes via a GitHub ActionMartin Robinson2023-01-1732-0/+4946
| | | | | | | | | | | | 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>
* chore(nix): replace `pkgconfig` with `pkg-config`yvt2022-10-071-1/+1
| | | | `pkgconfig` has been renamed to `pkg-config` in nixpkgs.
* chore(nix): add `AppKit` to `buildInputs` on Darwinyvt2022-09-161-1/+3
| | | | Signed-off-by: yvt <i@yvt.jp>
* Run WPT sync nightly on GitHub Actioncybai2022-08-162-1/+49
|
* Update nix-shell package namesNathan Lefler2022-07-311-1/+1
| | | | | | | "xlibs" has been renamed to "xorg" "x11" has been renamed to "xlibsWrapper" Signed-off-by: Nathan Lefler <nathan@lefler.me>
* Fix typos in markdown filesGreg Myers2022-01-141-3/+3
| | | | | Fixes a number of typographical errors across markdown documentation files.
* chore(nix): define `LD_LIBRARY_PATH` outside `shellHook`yvt2021-10-161-2/+3
| | | | | For consistency with other environment variables defined in the same file.
* chore(nix): add `libxkbcommon` to `LD_LIBRARY_PATH`yvt2021-10-161-1/+1
|
* chore(ci): remove the auto-generation of `main.yml`yvt2021-07-182-267/+0
|
* Auto merge of #28473 - jdm:codesign-build, r=jdmbors-servo2021-07-021-7/+7
|\ | | | | | | Enable codesigning for non-nightly UWP builds
| * Use codesigning in UWP builds.Josh Matthews2021-07-021-7/+7
| |
* | Use `#!/usr/bin/env bash` in shell scripts for NixOS compatibilityyvt2021-06-144-4/+4
|/ | | | Signed-off-by: yvt <i@yvt.jp>
* add etc/shell.nix for nix/nixOSMaciej Krüger2021-05-311-0/+40
|