Commit graph

266 commits

Author SHA1 Message Date
Samson
e761b7d711
Auto merge all WPT and dependabot PRs (#32775)
* Auto merge all WPT and dependabot PRs

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Adjust name of action

Signed-off-by: Martin Robinson <mrobinson@igalia.com>

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-07-15 12:44:47 +00:00
Mukilan Thiyagarajan
b243457ccc
ci: fix security issue in try job workflow (#32724)
This [issue][1] was reported by GitHub user @RedYetiDev via the Security
Advisory reporting mechanism on GitHub. The fix is also based on their
proposed solution.

The issue is that `refs/pull/{pr_number}/head` points to the latest
commit of a PR and so it could be different than the commit that was
reviewed when the try label was applied. The fix is to use the exact commit
sha at the point when the try job is triggered, which is available in
the `github` context as  `github.event.pull_request.head.sha`.

[1]: https://github.com/servo/servo/security/advisories/GHSA-fxqr-xgh8-3577

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Aviv Keller <38299977+RedYetiDev@users.noreply.github.com>
2024-07-08 10:08:23 +00:00
Mukilan Thiyagarajan
24639bb540
android: sign release APK with a custom key. (#32721)
This PR adds support for signing all APKs we produce on the CI
with a custom signing key. Currently the logic falls back to
the debug key (which is generated by AGP and not persistent) if
the environment variable for the keystore is not set. This allows
local developer builds to work without requiring a key store.
Once #32720 is resolved, we could sign just the production builds
and remove the conditional logic.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-07-08 08:36:00 +00:00
Alex Touchet
1e5c844eb5
Add more crates to egui Dependabot group (#32711) 2024-07-06 05:51:31 +00:00
Martin Robinson
e14e079fff
servoshell: Update all egui dependencies and group them for dependabot (#32683)
This updates egui, making the necessary changes to maintain behavior. In
addition, it groups dependencies so that they are updated in a single PR
by dependabot, avoiding manual work.
2024-07-04 06:36:19 +00:00
Martin Robinson
e331cc67c3
mach: Expose a --skip-static-analysis to mach boostrap (#32587)
This should speed up runners which just need to run the WPT tests.

Fixes #32582.
2024-06-24 17:13:09 +00:00
Jonathan Schwender
26bbfe9b55
Make crown optional (#32494)
* Make `crown` optional

Add the optional `--use-crown` flag to mach

* --use-crown for all platforms in CI

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* Add documentation for `--use-crown`

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* Update python/servo/command_base.py

Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* Raise Error if CARGO_BUILD_RUSTC conflicts with --use-crown

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* add dummy RUSTFLAG to trigger re-checking

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

---------

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
2024-06-24 11:46:43 +00:00
Gregory Terzian
64b872ec0d
add codeowners file, set gterzian as owner for components/script (#32568) 2024-06-20 08:37:58 +00:00
Martin Robinson
6a48c72a62
dependabot: Combine more GStreamer / GLib-related crates (#32563)
GLib, GIO, and GObject all release together, so these should be grouped
to prevent having so many dependabot PRs.
2024-06-19 19:34:51 +00:00
Martin Robinson
946e41e59d
ci: Use a servo.org email address for the servo-wpt-sync GitHub bot (#32515)
This is the new address of the WPT sync bot.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2024-06-18 16:38:26 +00:00
Jonathan Schwender
1d2949f2b3
CI: Cache cargo-deny (#32543)
Use the `cargo-install` action to cache the cargo-deny output.
`cargo-deny` is currently unconditionally installed during bootstrap,
and takes around 2 minutes to install, so caching should give a
significant speedup

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
2024-06-18 09:55:13 +00:00
Jonathan Schwender
3381f2a704
Add OpenHarmony support to mach and CI (#32507)
* Add ohos to mach

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* Add OpenHarmony build to CI

* Rename ohos sdk action

I decided to rename the upstream ohos sdk action to
setup-ohos-sdk, making it clearer that is a github
action repository.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* Remove commented line

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

---------

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2024-06-17 11:27:23 +00:00
Martin Robinson
3370146490
Sign off commits by WPT importer (#32502)
This will be important to enforce signing off commits in the project.
2024-06-14 20:51:23 +00:00
Martin Robinson
d297ae0af5
ci: Rename "try_labels.yml" to "try-label.yml" (#32503)
This makes the name consistent with the other files in the directory
which all use dashes and the singular "label" is a little bit more
natural.
2024-06-14 20:48:49 +00:00
Martin Robinson
764021751d
Add a workaround for actions/runner-images#10001 (#32456)
Until GitHub updates their runner images, this workaround should allow
the bots to work.
2024-06-07 14:36:04 +00:00
Martin Robinson
d92c291552
ci: Disable legacy layout tests when landing PRs (#32405)
This disables Layout 2013 checks when landing PRs. This means that
results might get out of sync for 2013, but they should be updated
weekly during WPT imports.
2024-05-31 04:01:46 +00:00
Martin Robinson
f97753df6d
dependabot: Group all GStreamer dependencies together for upgrades (#32378)
The GStreamer we use is a bracing 24 crates, which tends to flood our CI
infrastructure. Group them together in order to make things more
manageable.
2024-05-24 21:48:58 +00:00
Mukilan Thiyagarajan
1bcb4787d2
ci: enable sccache for Rust compilation. (#32330)
This was previously disabled in #30508 due to sccache not
working well with crown. The sccache issue (mozilla/sccache#861)
linked in that PR is now closed and [testing][1] on my fork also
seems to indicated we should be able to turn on sccache again.

[1]: 9154196647

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-05-21 06:10:54 +00:00
Samson
7039cccbd9
Set RUSTUP_WINDOWS_PATH_ADD_BIN in CI (#32301) 2024-05-16 16:40:44 +00:00
Mukilan Thiyagarajan
3b1bbc1aaf
android: add CI build for aarch64 (#32137)
I haven't tested the APK since I don't have a device with 64-bit ARM.

---

- [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 the PR only modifies CI
workflow.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-04-23 14:15:03 +00:00
Gae24
509b858f15
mach: Remove unused --angle command line argument (#32050)
* removed unused angle command line argument

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>

* Removed argument from smoketest in Windows workflows

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2024-04-12 08:06:09 +00:00
Oriol Brufau
ea62a5e24f
Use --locked when building in CI (#31720)
Thus the build will immediately fail if a PR modifies Cargo.toml but
forgets to include the changes in Cargo.lock

This was previously checked by lockfile_changed.sh after building
normally, wasting resources.
2024-03-21 11:54:02 +00:00
Samson
63d7af54d1
Ignore stylo crates in dependabot.yml (#31790)
* Ignore stylo crates in dependabot.yml

* Update .github/dependabot.yml

Co-authored-by: Martin Robinson <mrobinson@igalia.com>

---------

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-03-20 20:34:34 +00:00
Mukilan Thiyagarajan
4bca55e27a
android: add support for x86_64 images (#31725)
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-03-18 09:44:10 +00:00
Samson
f98975bbbe
Update raw lags path for WPT import (#31714)
I forgot to do this in #31616
2024-03-17 09:48:12 +00:00
Manuel Rego Casasnovas
ac24cd6139
Update new issue URL in SECURITY.md (#31698)
* Update new issue URL in SECURITY.md

Update URL for new issue so it uses the security template: https://github.com/servo/servo/issues/new?template=security-report.md

* Link to https://github.com/servo/servo/security/advisories/new instead
2024-03-15 15:03:49 +00:00
Manuel Rego Casasnovas
74b5f798cd
Add issue templates (#31693)
* Add issue templates

This will allow to label new issues when filled depending on their type.

* Update .github/ISSUE_TEMPLATE/bug_report.md

Co-authored-by: Martin Robinson <mrobinson@igalia.com>

* Update .github/ISSUE_TEMPLATE/bug_report.md

Co-authored-by: Martin Robinson <mrobinson@igalia.com>

* Update .github/ISSUE_TEMPLATE/bug_report.md

Co-authored-by: Martin Robinson <mrobinson@igalia.com>

* Update .github/ISSUE_TEMPLATE/feature_request.md

Co-authored-by: Martin Robinson <mrobinson@igalia.com>

* Update .github/ISSUE_TEMPLATE/feature_request.md

Co-authored-by: Martin Robinson <mrobinson@igalia.com>

* Update .github/ISSUE_TEMPLATE/feature_request.md

Co-authored-by: Martin Robinson <mrobinson@igalia.com>

* Update .github/ISSUE_TEMPLATE/security-report.md

Co-authored-by: Martin Robinson <mrobinson@igalia.com>

* Update .github/ISSUE_TEMPLATE/security-report.md

Co-authored-by: Martin Robinson <mrobinson@igalia.com>

* Update .github/ISSUE_TEMPLATE/security-report.md

Co-authored-by: Martin Robinson <mrobinson@igalia.com>

* Fix typo

---------

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-03-15 12:18:47 +00:00
Manuel Rego Casasnovas
0b4b544910
Update FUNDING.yml (#31633)
Add GitHub sponsors
2024-03-13 02:40:54 +00:00
Samson
da609076c3
Add wpt-report output & continue if filtering failed (#31616)
* Add wpt-report artifact

* Merge logs (filtered) are last so we still get other logs merged

* fixup

* it's wptreport.json

* wptreport in full artifact

* Apply suggestions from code review

Co-authored-by: Martin Robinson <mrobinson@igalia.com>

---------

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-03-12 13:45:36 +00:00
Martin Robinson
d076b118c4 ci: Fix packaging step on Windows
WiX doesn't seem to be on the path any longer, so it must be added
manually as a temoprary workaround.
2024-03-07 11:07:54 +01:00
Samson
cd92a17c5e
ci: Update remaining GitHub actions to versions using Node.js 20 (#31450)
* Update sccache action

* Update baptiste0928/cargo-install

* Update github-script

* Update actions/setup-java

* Update nick-fields/retry
2024-02-29 08:24:38 +00:00
Mukilan Thiyagarajan
0a8b69879a
ci: Fix nightly release action (#31420)
* ci: check result of dependent jobs explicitly

Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>

* ci: use ubuntu latest image in more jobs

Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>

---------

Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
2024-02-23 14:55:00 +00:00
Martin Robinson
2946fa83ec
ci: Switch to actions/checkout@v4 (#31379)
This change also removes the use of `fetch-depth: 2` where it isn't
necessary. These were likely copy-and-pasted from other workflows.
2024-02-19 16:23:53 +00:00
Manuel Rego Casasnovas
a726bb0fe1
Update FUNDING.yml (#31377) 2024-02-19 09:15:31 +00:00
Martin Robinson
1cc546c4fc
ci: Switch to version 4 of GitHub artifact actions (#31357)
* ci: Switch to version 4 of GitHub artifact actions

This switches to version 4 of the GitHub artifact actions, which
requires producing a single artifact per job and adding merge steps. In
addition, the names of artifacts are standardized:

- Build: <profile>-binary-<platform>
- Full WPT results (only on failure): wpt-full-logs-<platform>-<layout>
- Filtered WPT results (only on failure): wpt-filtered-logs-<platform>-<layout>

* Delete merged build timings and combine with Result job

* Always archives logs even after test failures

* Correct the name of the log files for WPT import
2024-02-17 16:59:43 +00:00
Delan Azabani
d00312eb08
Bury failed nightly releases as prereleases (#31348) 2024-02-14 08:05:09 +00:00
Martin Robinson
a3ce1f2636
ci: Make dispatch-workflow.yml GitHub job names a bit friendlier (#31340)
This makes the names match the ones used in the workflows themselves.
2024-02-13 16:27:11 +00:00
Samson
b10875956a
Delete result job in leaf workflows (#31191) 2024-01-27 00:07:04 +00:00
Samson
a5c512808a
Matrix in CI and mach try with presets (#31141)
* Matrix in CI and mach try with presets

* small fixups

* names in trigger try run comment

* let

* f

* rename step

* fix running try on win

* fix try branch full

* py3.10

* typo

* Make unit-tests default to false, except in basic os runs

Fixes https://github.com/servo/servo/issues/31174

* make full use linux-wpt & linux-wpt also include unit-tests

so full is equal to main workflow

* Stylish fixes

* cmp json as dict
2024-01-26 12:29:37 +00:00
Martin Robinson
dc2df7b027
build: Add support for Visual Studio 2022 and VC143 DLLs (#31148)
* build: Add support for Visual Studio 2022 and VC143 DLLs

This change adds supports fot Visual Studio 2022 and the VC143 (current)
version of the Visual Studio CRT. In addition, it reworks the way that
Visual Studio is found, returning all installations in a generator,
separately finding it via vswhere.exe, searching paths, and via
environment variables.

All of these installations are searched for the DLLs with highest
priority given to the highest version of MS Visual Studio installed. The
hope is that this makes the process more robust and properly handles
having multiple versions installed, but only one with the correct
runtime DLLs.

* Update based on review comments

Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>

---------

Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-01-23 11:04:01 +00:00
Mukilan Thiyagarajan
cf5d9c7a28
ci: fix reference to android job filename in main.yml (#31150)
* ci: fix reference to android job filename in main.yml

* mach: fix build command to handle android

The refactoring done in PR #31092 introduced the call to
get_binary_path in the unconditional path, but did not
pass the android flag to the call.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

---------

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-01-23 05:37:33 +00:00
Mukilan Thiyagarajan
d7de206dbd
Preliminary Android build support (#31086)
* Android build

* Fixes
* More fixes
  - Still failing in the linking step
* More work on getting linking working

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: use mozjs with ndk r25c. loads servo.org

more android build fixes.

* fix ./mach run for android and make it follow logs

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* add experimental logic for compositor pause/resume

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* pass DPI from android to simpleservo

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* ci: add android workflow

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* switch to ANDROID_SDK_ROOT and ANDROID_NDK_ROOT vars

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* upgrade gradle to 4.10.1

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* upgrade to gradle 5.1.1

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* upgrade to gradle 8 and agp 8

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* make compositing work again with external present

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: improve mach support for non-NixOS and CI

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* fix sampler compilation bug introduced in #30490

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* ci: add android build to main workflow

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* gradle: set MinSdk = targetSdk = 30

NDK requires we compile against the minSdk API level
which is 30 in our case.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* add instructions for android in README.md

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: move servosurface to servoview

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: uncomment the mediasession callbacks on MainActivity

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: fix crash on MainAtivity.onDestroy

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: drop VR, arm 5 and unused code

This commit drops:
* support for google, oculusvr
* support for arm5 architecture

and also removes
* fakeld scripts
* unused java code

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* cleanup shell.nix

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: add FIXMEs for gstreamer code

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: remove commented code and debug logs

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* cleanup ServoView.java

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* mach: comment call to download gstreamer deps for android

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* disable bluetooth for jniapi as blurdroid is broken

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* fixup! README.md

* fixup! remove change in Cargo.toml

* fixup! move shell variables together

* fixup! cleanup jniapi/Cargo.toml comments

* delete commented gstreamer related android code

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* remove unused config variable in servbuild

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: more cleanup

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* force no_static_freetype only for android

* use actions to manage sdk, ndk and java

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* rename embedder event names to be more clear.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* link to startup crash issue

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* fix lint issues

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* upgrade env_logger to 0.10 with duplicate exception

libservo and android_logger can use env_logger 0.10
but quickcheck is still stuck on 0.8 and has not seen
any activity in the last 2 years. This commit adds
a duplicate exception until the quickcheck dependency
can be upgraded (or replaced)

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: fix comments

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* disable jemalloc on android

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* fixup! replace linux with android in cfg

---------

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-01-22 13:00:15 +00:00
Martin Robinson
c3fd27c225
ci: Fix WPT try layout configuration (#31118)
The member `layout` was renamed to `wpt_layout`, but not in all places.
This fixes that issue.
2024-01-18 12:11:56 +00:00
Samson
c06ae7faf2
ci: Set LLVM_PATH when building docs (#31095)
* Add llvm to path

This is needed on 22.04 runners (that we started using in https://github.com/servo/servo/pull/31088).

* Update docs.yml

---------

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-01-16 12:19:32 +00:00
Martin Robinson
efa38c67fe
ci: Remove the nightly-rust workflow (#31091)
This workflows tested Servo with the most recent nightly version of
Servo. Now that Serv compiles against a stable version of Rust, this
isn't so interesting. We are hoping to eliminate all use of unstable
features in the future.
2024-01-15 13:38:20 +00:00
Martin Robinson
0d240b8713
deps: Raise the Python requirement to 3.10 (#31088)
This will allow us to use the pip's new dependency resolver.
2024-01-15 11:56:15 +00:00
Martin Robinson
3c1ab65458
crown: Add a cargo config.toml file (#31090)
This makes it more foolproof to install crown from inside the Servo
directory, because the root Servo config.toml overrides the rustc to use
crown (an obvious circular dependency).
2024-01-15 11:18:48 +00:00
Diwakar Gupta
81d4236c8c
fixed commented time in nightly-rust.yml (#31057) 2024-01-10 14:51:18 +00:00
Martin Robinson
7fa4ea9740
Upgrade media / GStreamer / GLib (#30750)
- Upgrade the version of GStreamer for Windows

This upgrades the Windows build to use the most recent version of
GStreamer. This is necessary to upgrade our GStreamer dependency.

- Stop shipping GStreamer binaries on Linux

The binary bundle of GStreamer that we package is not used to compile --
only to run layout tests. It's too old for the APIs that we are using
(as evidenced by needed 1.18 for WebRTC) and nowadays Linux
distributions carry a new version so it's unecessary for our build
machines. No longer using this binary bundle will allow us to upgrade
our GStreamer dependency -- which now has stricter checks that we
are using at least version 1.18.

- Upgrade media to use newer versions of GStreamer / GLib dependencies
2024-01-05 08:01:58 +00:00
Martin Robinson
3353db71d2
Fail gracefully when DMG smoketest fails (#30975)
It seems that timing issues (related to MacOS or the GitHub MacOS)
runners can sometimes cause `hdiutil detach` to fail. Instead of having
this cause the entire build to fail, fail gracefully. This is
essentially a non-issue as the CI environment is always cleaned up when
using GitHub Actions.

Fixes #30757.
2024-01-02 16:11:16 +00:00