aboutsummaryrefslogtreecommitdiffstats
path: root/.github
Commit message (Collapse)AuthorAgeFilesLines
* Update mozjs to get new mach versionMartin Robinson2023-06-041-9/+0
| | | | | | | The mozjs repository now has a version of mach that works more consistently with newer versions of Python. Fixes #29142.
* Auto merge of #29781 - mrobinson:bootstrap-gstreamer, r=mukilanbors-servo2023-05-252-8/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement `bootstrap-gstreamer` for all platforms This change makes it so that the Platform classes can now handle installing GStreamer dependencies and properly setting up the environment including when cross-compiling. For Windows and Linux, prepackaged GStreamer is now installed into `target/dependencies/gstreamer` when not installed system-wide. In addition this change: 1. The Environment path append helper is moved to `util.py` and a new `prepend` version is added. 2. `set_run_env` and `build_dev` functions are combined and include more code from callers so environment setup is more often in the same place. Now code that used to call `set_run_env` calls `build_dev` and then `os.environ.update(...)`. We can further refine this with the `is_build` argument later. 4. Python typing information is added in many places. <!-- 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 fix #25335 - [x] These changes do not require tests because they are to the build scripts. <!-- 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. -->
| * Implement `bootstrap-gstreamer` for all platformsMartin Robinson2023-05-252-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change makes it so that the Platform classes can now handle installing GStreamer dependencies and properly setting up the environment including when cross-compiling. For Windows and Linux is now installed into `target/dependencies/gstreamer` when not installed system-wide. In addition: 1. Creating and moving existing environment path append helpers to `util.py`. 2. Combining the `set_run_env` and `build_dev` functions and moving some outside code into them so that it can be shared. Now code that used to call `set_run_env` calls `build_dev` and then `os.environ.update(...)`. 3. Adding Python typing information in many places. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* | Upload nightly builds for layout2020 variantMukilan Thiyagarajan2023-05-243-3/+32
|/ | | | | | | | We'd like to start offering servo nightly builds with layout 2020 engine so that users can test the new layout without building servo. These new builds will be offered in addition to the current 2013 builds until we switch over to 2020 as the default.
* Use Python 3.9 on linux workflowsMukilan Thiyagarajan2023-05-181-0/+4
| | | | | | It looks like the dist-packages of python 3.8 on the runner has an older version of ssl package which is now causing nightly builds to fail.
* Run the Layout 2020 tests in main workflowMartin Robinson2023-05-171-0/+1
| | | | | | | 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.
* Consume official GStreamer binaries on MacOSMukilan Thiyagarajan2023-05-121-10/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* WPT results aggregating based on layoutsagudev2023-04-271-1/+1
|
* Run wpt only on try-wpt,try-wpt-2020 branchessagudev2023-04-271-2/+2
|
* Add try-wpt-2020 runnersagudev2023-04-252-6/+6
|
* Use defined layout for wpt testsagudev2023-04-251-2/+2
|
* Fix the path to the WPT export script after a renameMartin Robinson2023-04-231-1/+1
|
* Auto merge of #29639 - mrobinson:reorganize-wpt-python, r=mukilanbors-servo2023-04-232-6/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 sync / upstreaming script that was no longer used. This allows this code to pass `test-tidy` now. <!-- 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] 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. -->
| * Reorganize Servo's WPT Python scriptsMartin Robinson2023-04-202-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Build on Mac with the dummy media stackMartin Robinson2023-04-231-1/+1
|/ | | | | | This is a temporary fix for broken GStreamer homebrew packages. Fixes 29653.
* Auto merge of #29632 - sagudev:ci-cache-win, r=jdmbors-servo2023-04-191-0/+4
|\ | | | | | | | | | | | | | | Use ccache on windows workflow Because `sccache` is not working when setting `CCACHE=sccache` I used ccache which is taking cache hits. I would certainly love to share some timings, but I found out that windows builds have very inconsistent timings.
| * ccachesagudev2023-04-141-0/+4
| |
* | Auto merge of #29630 - sagudev:ci-win-gstream, r=jdmbors-servo2023-04-131-1/+8
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use GStreamer in Windows workflow I accidental came across https://github.com/servo/servo/projects/26 and can't helped but to fix one. (Few were already fixed but not closed). Test run: https://github.com/sagudev/servo/actions/runs/4687138840/jobs/8306052042 --- <!-- 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 #28277 <!-- Either: --> - [ ] There are tests for these changes OR - [x] These changes do not require tests because it is only CI <!-- 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. -->
| * Use GStreamer in Windows workflowsagudev2023-04-131-1/+8
| |
* | Auto merge of #29623 - mrobinson:wpt-import-one-week, r=mukilanbors-servo2023-04-131-4/+4
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-4/+4
| | | | | | | | | | | | | | | | | | | | | 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.
* | | Auto merge of #29621 - mukilan:upload-nightly-to-gh-releases, r=mrobinsonbors-servo2023-04-124-3/+88
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Upload nightly builds to Github Releases This change extends the `mach upload-nightly` command to publish the nightly builds for all platforms as GH Release assets. The GH releases are made on a separate repository so that we can persist older nightly builds without having to accumulate git tags for them. Example releases on a fork can be seen here: https://github.com/mukilan/servo-nightly-builds/releases/ Assets of the *latest* nightly releases will available at a stable url e.g for linux `https://github.com/mukilan/servo-nightly-builds/releases/latest/download/servo-latest.tar.gz` Some design tradeoffs in this approach are: 1. To allow the 'latest' link from servo.org to remain stable, the release assets are named 'servo-latest.{ext}' instead of containing the release tag/date. 2. The release is created as draft and published atomically when all platforms have been built successfully. This allows us to link to the 'latest' alias from servo.org while gauranteeing that it contains builds for all platforms. The other option here would be to have code in servo.org UI that uses GH API to find the most recent release with a successful build for a given platform. 3. The tags in the nightly repo are all based on the same commit that has no relation to servo code base. --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [ ] These changes fix #___ (GitHub issue number if applicable) <!-- Either: --> - [ ] There are tests for these changes OR - [x] These changes do not require tests because it extends the nightly CI job
| * | Upload nightly builds to Github ReleasesMukilan Thiyagarajan2023-04-124-3/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change extends the `mach upload-nightly` command to publish the nightly builds for all platforms as GH Release assets. The GH releases are made on a separate repository so that we can persist older nightly builds without having to accumulate git tags for them. Some design tradeoffs in this approach are: 1. To allow the 'latest' link from servo.org to remain stable, the release assets are named 'servo-latest.{ext}' instead of containing the release tag/date. 2. The release is created as draft and published atomically when all platforms have been built successfully. This allows us to link to the 'latest' alias from servo.org while gauranteeing that it contains builds for all platforms. The other option here would be to have code in servo.org UI that uses GH API to find the most recent release with a successful build for a given platform. 3. The tags in the nightly repo are all based on the same commit that has no relation to servo code base. Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
* | | Reorganize the workflow files for pull requests a little.Martin Robinson2023-04-113-3/+30
| |/ |/| | | | | | | | | | | Split out the quick check GitHub action (which is really only meant for forks). This prevents the quick check from running twice for PRs from branches on the upstream repository. Also rename the WPT export action file to make it clearer that it runs for pull requests.
* | Auto merge of #29601 - servo:debug-wpt-update-script, r=delanbors-servo2023-04-111-1/+6
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. --- <!-- 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] There are tests for these changes OR <!-- 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. -->
| * Fix the WPT export scriptMartin Robinson2023-04-111-1/+6
| | | | | | | | | | | | | | | | | | | | | | - 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.
* | Pass S3 secrets for nightly builds and fix windows buildMukilan Thiyagarajan2023-04-112-0/+5
|/ | | | | | | | | | | | | Secrets need to be passed to reusable workflows either by name or by `secrets: inherit` from the caller workflow. The latter allows accessing all secrets in scope. Windows build has a bug where the upload-nightly command is not run from the correct working directory. Closes #29614 Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
* Remove more Taskcluster and Treeherder integrationMartin Robinson2023-04-101-3/+3
| | | | | Servo no longer uses Taskcluster and Treeherder, so this change removes script references to those services and support files.
* Remove if guard in linux workflowsagudev2023-04-061-1/+0
|
* Nightly workflow using platform workflowssagudev2023-04-064-110/+70
|
* Package in platform workflowssagudev2023-04-064-4/+53
|
* WPT agregated results also as github checksagudev2023-04-031-0/+1
|
* Sccache in actions (linux & mac)sagudev2023-04-022-0/+12
|
* WPT sync using abstract workflowssagudev2023-03-305-93/+49
|
* Abstract platform-specific workflows into separate filessagudev2023-03-305-265/+405
|
* Auto merge of #29538 - mrobinson:run-layout-2020-build-in-main-workflow, r=jdmbors-servo2023-03-251-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Run the Layout 2020 build in the main workflow <!-- 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 they are an infrastructure change. <!-- 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. -->
| * Run the Layout 2020 build in the main workflowMartin Robinson2023-03-231-0/+2
| |
* | Add Layout 2020 support to nightly WPT updateMartin Robinson2023-03-241-9/+19
|/
* Merge branch 'master' into test-tidy-before-landingJosh Matthews2023-03-223-7/+13
|\
| * Merge forbidden panic check into test-tidyMartin Robinson2023-03-222-4/+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.
| * Auto merge of #29519 - mrobinson:add-layout-2020-build-to-quick-check, r=jdmbors-servo2023-03-221-0/+2
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the Layout 2020 build to the quick check <!-- 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 is an infrastructure change. <!-- 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. -->
| | * Add the Layout 2020 build to the quick checkMartin Robinson2023-03-211-0/+2
| | |
| * | Auto merge of #29431 - sagudev:mtry, r=jdmbors-servo2023-03-211-3/+11
| |\ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add try command to mach & try build partitioned Adds `./mach try` command that enables anybody to easily test their changes without opening PR and requesting try from bors-servo, by force pushing HEAD to appropriate branch. Command accepts branches names to select only partial runs of CI (same like bors try command). So if you only want to test mac build (that would be `@bors-servo try=mac`) you run `./mach try mac`. If no job is specified, try branch is used. As partitioned CI jobs were not working after migration to GitHub Actions I remade them by using if guards. Also WPT jobs were failing due to empty `INTERMITTENT_TRACKER_DASHBOARD_SECRET` on my fork, so I added additional check to prevent failed run. And that concludes my work on #29379 🎉 --- <!-- 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 #29379 <!-- Either: --> - [ ] There are tests for these changes OR - [x] These changes do not require tests because it's CI <!-- 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. -->
| | * mach try & partitioned try jobssagudev2023-03-211-3/+11
| | |
* | | Run test-tidy when landing changesMartin Robinson2023-03-211-0/+2
|/ / | | | | | | | | | | | | Currently `test-tidy` only runs during the quick check. This can mean that when a change is approved, the quick check can be skipped and a change can land without `test-tidy` ever being run on it. This change adds a `test-tidy` run to the main CI run to avoid this happening.
* | Package and upload linux w/ layout-2020 engine.Mukilan Thiyagarajan2023-03-101-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | The layout-2020 variant will be consumed by the internal WPT trend [dashboard][1] only and won't be made available on servo.org. This change will be removed once the layout engine we will use going forward is finalized. [1]: https://servo.github.io/internal-wpt-dashboard/ Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
* | Do not run quick check on dependabot branchesSamson2023-03-011-1/+1
| |
* | Prevent quick check from running on master branchSamson2023-03-011-1/+1
|/
* Smoketest in Linux CIsagudev2023-02-262-0/+4
|
* Quick check that is run on PR and on forks pushsagudev2023-02-261-2/+5
|