496 Commits

Author SHA1 Message Date
Euclid Ye
eea0c586c0 ci: Set LLVM_OBJDUMP env-var when compiling libservo with MSRV in linux (#44352)
[Sometimes](https://github.com/servo/servo/actions/runs/24611835766/job/71967504931#step:10:1076),
CI fails to link pre-built archive, and have to build from source.
Previously this always fail as llvm-objdump is not found.

Testing: Successful [try
run](https://github.com/yezhizhen/servo/actions/runs/24626909297) when
building from source.
Fixes: #44351

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-04-19 13:44:49 +00:00
Euclid Ye
467fdb1dc0 git: Fix CI by removing wrongly commited FETCH_HEAD (#44309)
This is somehow introduced in #43617. This is causing CI failure.
For whatever reason, this thing should only be in `.git` folder. But
somehow it is at the root?

Also changed `.yml` to avoid ambiguity: we are using revision instead of
path.

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-04-17 15:23:39 +00:00
Jonathan Schwender
f77fe5eadd release: Build android in production mode (#44278)
Since https://github.com/servo/servo/pull/44182 production builds for
android are now possible in CI.
Let's unify this, since all other platforms already use production. The
production build is also ~45MB small, which is a huge reduction compared
to the ~159MB our nightly builds have. I didn't investigate further why
the difference is that large, but I installed the production version on
my phone and didn't spot any obvious issues (on servo.org).

[Mach try
android-production](https://github.com/jschwe/servo/actions/runs/24525178123)

Testing: We don't test CI workflows themselves.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-04-16 18:03:34 +00:00
Euclid Ye
2dedd4087e ci: Install cargo nextest conditionally; Give the step consistent name for linux & mac (#44226)
There is no point to install it if we don't run UT. 
This step takes 1 min to install for self-hosted runner:
[try](https://github.com/servo/servo/actions/runs/24436253745/job/71391055444#step:15:11).
Given the rising energy price nowadays, let's save it.

Also take the chance to give the consistent name. Somehow only Windows
had the name "Install cargo nextest"

Testing: Previously, the step is called "Run taiki-e/install-action@v2"
in the linux/mac CI.
Now it has the proper name and skipped if UT will not be run:
[try](https://github.com/servo/servo/actions/runs/24440166415/job/71403276390).

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-04-16 01:47:46 +00:00
Jonathan Schwender
69dbc16014 devcontainer: Build multi-arch image (#44162)
Also build an arm64 version of the devcontainer and combine both into a
multi platform image.
This also fixes the upload step, which was broken on main by
b5d454eca0.
We also allow triggering the publish job on forks via manual workflow
trigger, which allows more convenient testing.
[Manually triggered
workflow](https://github.com/servo/servo/actions/runs/24336772082)

Testing: This is a CI change.

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-04-13 13:00:39 +00:00
Jonathan Schwender
b5d454eca0 devcontainer: Verify build on PRs. (#44111)
This allows us to verify that the devcontainer builds, when a PR changes
any of the affected files.


Testing: This is a CI change

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
Co-authored-by: Sam <16504129+sagudev@users.noreply.github.com>
2026-04-13 05:59:29 +00:00
Jonathan Schwender
d8cc8f3992 ci: Secure release workflow using environment (#44108)
The publish environment enforces additional restrictions, mainly that
the workflow can only be run from protected branches and additional
prevents access of the publish secrets from workflows which do not use
this environment.

Testing: Requires a manual workflow run on a protected branch. Given
that we already tested environments in previous PRs, I think this PR
might be safe to test after merging, instead of protecting the PR
branch.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-04-11 08:09:23 +00:00
Jonathan Schwender
f59491d36f CI: Simplify release workflow (#44085)
Using the new yaml anchor feature, we can inline the upload_release
workflow file without duplicating code.
In combination with the matrix feature this allows us to remove quite a
bit of duplication. I'm not sure why we didn't use matrix to begin with.

This is also a preparation for a follow-up PR, that uses github
environments to improve secret protection, since reusable workflows
don't support environments.

Testing: [manually triggered nightly
release](https://github.com/servo/servo/actions/runs/24236862409)

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-04-11 05:50:28 +00:00
Jonathan Schwender
c3d2df22c0 release: Add job to publish to crates.io (#43972)
When triggering the release action on a non-protected branch in this
repo, the job is rejected (as intended):
<img width="1484" height="304" alt="image"
src="https://github.com/user-attachments/assets/236d3a41-2765-4652-8709-93110e03c77b"
/>

When triggering the action on a protected branch in this repository, the
publish-crates-io job will be pending, until explicitly approved by one
of the required approvers (thanks to the `environment` settings).
This allows us to publish all of our packages in one go.


Testing: Tested by manually
[triggering](https://github.com/servo/servo/actions/runs/24119955943/job/70371705395)
a release for `0.1.0-rc2`, which got successfully published to
crates.io. This was also a resume-after-cancellation test, since the
first ~30 crates of the release had already been published via `cargo
publish --workspace`, before running into the issue that `cargo publish
--workspace` can't resume after intermediate failures. The last commit
"Fix buffering issue in CI" is untested, and was added after observing
the stdout log messages only appearing at the end of the script. That
commit is trivial though, and probably does not justify using crates.io
resources for another test release.

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
2026-04-10 16:54:53 +00:00
Jonathan Schwender
03a7d42cf5 release: Only mark scheduled runs as latest nightly. (#44086)
If we make manual releases, e.g. for release candidate testing, then
they shouldn't appear on the nightly download page on servo.org, which
just displays the release that is marked as "latest".

Since the Github API documentation updated to a new API version, also
opt-in to the new version while we are at it.
There seem to be no changes affecting the usage in release.yml, but
probably the old API will be removed eventually, so why not switch to
the new version now.

See
https://docs.github.com/en/rest/releases/releases?apiVersion=2026-03-10#create-a-release

Testing: [Manual release workflow
run](https://github.com/servo/servo/actions/runs/24241705213). The
release should not be marked as latest after the run finishes.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-04-10 13:15:29 +00:00
Jonathan Schwender
0ea14d1b60 release: Fix result check for cancelled workflows (#44017)
If the entire workflow was cancelled we also need to check for
`cancelled()`. Simply checking needs.*.result is not sufficient - it was
observed that the success branch was still entered when only checking
needs.

Testing: Tested manually, by cancelling [this
workflow](https://github.com/servo/servo/actions/runs/24119740924/job/70371050119)
which resulted in a draft release publish (failure branch)

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
2026-04-08 05:58:58 +00:00
Jonathan Schwender
06f6320609 ci: Secure book-sync secrets with environment (#43920)
We defined a github environment `book-sync` which contains the required
secrets.
After merging this PR we can remove the secrets from the per-repository
secrets, which reduces the scope the secrets are available in, and has
the added restriction of only being available on protected branches.

Testing: Prior to this PR, the functionality was tested on the
`environments` branch and discussed in the maintainers chat. After this
PR is merged, a manual check should be done to ensure the book-export
workflow still continues to work as expected.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-04-04 11:34:27 +00:00
Jonathan Schwender
dfd2aee2f2 Re-enable sccache for the mac-arm64 workflow (#43628)
This partially reverts 017b12a627. The
intermittent issues should be resolved now.

./mach build --release results in ~3GiB of sccache size locally. Since
we build multiple configurations (with crown, tests, profiles) we will
easily hit the 10GiB cache limit even with just one architecture. Hence,
it doesn't make sense to add sccache to more workflows, at least not
before we decide to buy more cache or not.
This should hopefully make the macos-arm64 workflows faster. Locally the
speed-up on clean builds is significant.

Testing: [mach try (no existing
cache)](https://github.com/jschwe/servo/actions/runs/23507308462/job/68418624068),
[mach try
#2](https://github.com/jschwe/servo/actions/runs/23508733572/job/68423715413)
- i.e. 34 minutes vs. 19 minutes total runtime, and 30 m vs 15 m build
time (with ideal conditions for the caching)

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-03-25 06:30:34 +00:00
Shubham Gupta
1c35a33bec ci: Have full runs also trigger macos-arm-unit-tests (#43358)
Just organizes full run.

Testing: No change expected. Successful landing is sufficient.

Signed-off-by: Shubham Gupta <shubham.gupta@chromium.org>
2026-03-18 09:02:11 +00:00
Jonathan Schwender
fc2152e4c6 ci: Fix try-label failure of media-examples (#43347)
Testing: Not tested, it's difficult to test try-label related changes.
The fix is trivial though.
Fixes: #43345

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-03-17 14:17:20 +00:00
Euclid Ye
a10434cef4 ci: Bump ci-runners to f0b81b9 and upgrade remaining deprecated Actions (#43244)
This continues #43173, https://github.com/servo/ci-runners/pull/118

There are several warnings that cannot be solved here, and requires
original Action maintainers to take action:
- nick-fields
- KyleMayes/install-llvm
- bencher

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-03-14 02:08:56 +00:00
Euclid Ye
c242860f0e ci: Upgrade soon deprecated GitHub Actions (#43173)
I got so many warnings about [Node 20
EOL](https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/)
in the [try](https://github.com/servo/servo/actions/runs/22945103342):

> The following actions are running on Node.js 20 and may not work as
expected...

We avoid touching those actions forked from web-platform-tests.

Testing: If this can merge, it is successful.

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-03-11 11:02:42 +00:00
shuppy
f9fd3968e5 Fix -p servo lib target build (and fix CI check accordingly) (#43170)
the `-p servo` (formerly libservo) lib target was busted for anyone
genuinely consuming it as a library, but we didn’t catch it because the
CI job designed to check it built `-p servo` with --all-targets, which
unlike library consumers pulls in [dev-dependencies].

this patch fixes the compile error, and fixes the CI check to build `-p
servo` in a more realistic configuration.

Testing: tested in CI, and locally with `cargo build -p servo --locked`
Fixes: #43168

Signed-off-by: delan azabani <dazabani@igalia.com>
2026-03-11 09:21:59 +00:00
Jonathan Schwender
26e724bd83 ci: Upload ohos nightly with correct path (#43164)
#43114 made the action error if the artifact is not found, which exposed
an issue with uploading the wrong path. We don't really care about
uploading the x86_64 version of the ohos library, since it is not used
in the release (not now at least), but it's better to fix the condition
anyway.
Fixes nightly upload failures like in
https://github.com/servo/servo/actions/runs/22927035640/job/66539862051

Testing: Not tested

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-03-11 06:45:47 +00:00
Jonathan Schwender
e23f052412 Rename libservo to servo (#43141)
As discussed on zulip we would like to rename `libservo` to `servo`
(again) before a future crates.io release.
Servo is a library, so the `lib` prefix is somewhat redundant. We
already renamed the binary of ServoShell to `servoshell`, to reduce
confusion of users of what servo is.

Note: This PR does not touch all occurrences of `libservo`. Specifically
CI job names remain untouched, since the risk of breaking something is
higher here, harder to test for and the name not user facing.

Testing: CI testing of this change should give us good confidence.
Manual testing of `./mach doc` and `./mach build` showed no issues on
macos. [Full try
run](https://github.com/jschwe/servo/actions/runs/22909562747)

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-03-10 20:55:14 +00:00
Jonathan Schwender
6f15489be6 devcontainer: Add workflow to build and publish Ubuntu amd64 devcontainer (#43131)
This adds a simple workflow to build and push the devcontainer to our
github container registry.
This would allow us (in a follow-up PR) to use the prebuild devcontainer
image from ghcr, instead of needing to first build the image from
scratch, which can save quite a bit of time.
This a part of #40656.

Testing: workflow run in my fork:
https://github.com/jschwe/servo/actions/runs/22897536246/job/66435358111
-> created the following image:
https://github.com/jschwe/servo/pkgs/container/servo%2Fdevcontainer-ubuntu

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
Co-authored-by: Sam <16504129+sagudev@users.noreply.github.com>
2026-03-10 12:56:29 +00:00
Euclid Ye
819b3533c3 ci: Fail the action if artifact not found when uploading; Update actions/upload-artifact to v7 (#43114)
- Rename instead of copy the `cargo-timings` folder
- Fail the action if artifact not found in upload-artifact. This should
prevent things like #43102
- Update `actions/upload-artifact` to v7

Testing: If this can merge, it is successful.

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-03-09 17:24:52 +00:00
Jonathan Schwender
6c648cea61 Sync mach bootstrap package list to the book automatically. (#42063)
Follow-up to https://github.com/servo/servo/pull/41775
This allows syncing our package list to the book automatically, keeping
the documented required packages in sync with what bootstrap installs.

We use two personal access token of the `servo-bot` account. One PAT
with the Resource-owner `servo-bot` for the repository `servo-bot/book`,
to push the branch to the bots fork. This PAT should be created with the
following permissions:
Choose "Only select repositories", select the forked book repo and give
the token Contents: Read and write permissions.
The second PAT must have the resource owner `servo`, and access to the
repository `servo/servo` as well as the permissions "Pull-Request: Read
and Write".

This split has the advantag of limiting the PAT permissions for the
upstream repo, avoiding `Content: Write` permissions for the
`servo/book` repository.

Testing: Manually tested by letting the action run on this branch.
[successfull
run](https://github.com/servo/servo/actions/runs/22387422307/job/64800999782?pr=42063),
[created upstream PR](https://github.com/servo/book/pull/207)

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
Co-authored-by: shuppy <dazabani@igalia.com>
2026-03-09 10:53:39 +00:00
Euclid Ye
1d0b3f1418 ci: Update WiX files and Windows workflow to reflect ServoShell name (#43104)
`candle` generates the object file based on the name of WiX source file,
which is used by linker later.
This PR effectively changes:
- `Servo.exe` to `ServoShell.exe` for the windows installer
- `Servo.zip` to `ServoShell.zip`

We already generates `servoshell.exe` from build, it is weird that we
keep the name `Servo.exe` for the MSI.

Testing: The problem is fixed, for both executable and zip, see
[this](https://github.com/servo/servo/actions/runs/22841763218/job/66249263625).
Bencher [works
too](https://github.com/servo/servo/actions/runs/22843667165/job/66256020144).
Fixes: #43102, where the windows artifact keeps missing.

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-03-09 08:17:56 +00:00
Sam
9394cdfa4c CI: Force lld in MSRV Linux build (#43075)
when using rust-toolchain rust this is already default

Testing: None
Fixes: #43070

---------

Signed-off-by: Sam <16504129+sagudev@users.noreply.github.com>
2026-03-07 09:33:09 +00:00
Jonathan Schwender
1632e61ed6 servoshell: Rename executable to servoshell. (#42958)
This should help clarify the difference between servo the library /
engine and servoshell the browser (demo).

Other changes: 

- Removed etc/servo.sb ( [apple sandbox profile
format](https://angelica.gitbook.io/hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox#sandbox-profiles))
since it is not needed anymore. See [this
comment](https://github.com/servo/servo/pull/42958#discussion_r2876253489)
for more details.

Testing: This is a very invasive change, and there are bound to be
scripts / places I have overlooked. Searching for usages of `servo` is
very hard, since it's also the name of the library.
Try run: https://github.com/servo/servo/actions/runs/22637676818

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2026-03-07 08:08:38 +00:00
Euclid Ye
3f0665a679 ohos ci: Do not use action that does not exist (#43054)
Testing: https://github.com/servo/servo/actions/runs/22749912784
Fixes: The consistent CI failure after #42990

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-03-06 05:18:47 +00:00
Narfinger
fe6cc84284 OHOS CI: Update action versions and base (#42990)
This updates the action versions and base for the OHOS CI.

Testing: Manual run for the openharmony part is here:
https://github.com/Narfinger/servo/actions/runs/22617931816

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-03-05 17:54:22 +00:00
Jonathan Schwender
baf2d0fc8a Fix ohos.yml bencher file size on main (#42997)
Renaming the job in #42929 silently broke the evaluation here.

Testing: Can only be tested on main / in priviledge contexts / otherwise
the unsigned binary is anyway built.
Fixes: ohos bencher failing on main (since the wrong binary name is
chosen)

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-03-03 16:24:01 +00:00
Jonathan Schwender
27fb3340c8 Fix nightly release (#42983)
Renaming the openharmony build job in #42929 caused artifact_ids to be
empty, which caused release failures.
Additionally, we add a validation step to the upload workflow, to
quickly pinpoint the issue of a missing input parameter,
since apparently github won't throw an error if a required input
parameter is empty.
This should make it easier to pinpoint the issue if it happens again. 

Testing: Not tested.

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-03-03 14:23:52 +00:00
Euclid Ye
76d8e343b9 ci: Remove dummy audio device related steps for linux-wpt (#42945)
This doesn't seem to have any impact.

[Try](https://github.com/servo/servo/actions/runs/22546956503)

Testing: This is a change to the testing CI configuration.

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-03-03 06:06:03 +00:00
Euclid Ye
29d20d56cf ci: Add jackd2 to dependency of Media Examples (#42947)
Testing: Output log is reduced to 910 lines in
[try](https://github.com/servo/servo/actions/runs/22567021352/job/65365322261#step:8:910).
Previously, it is 1400 lines, and we get error in [when start dummy
audio
device](https://github.com/servo/servo/actions/runs/22502937019/job/65194401381#step:7:13).
Fixes: Part of #42934?

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-03-02 09:15:40 +00:00
Jonathan Schwender
37dfa42731 Unify servo package naming (#42916)
This is a preparation for publishing to crates.io. Changes include:
- Add `servo-` prefixes to avoid name collisions on crates.io
- Use `-` instead of `_` in package names.
- Rename the crates to their original names in Cargo.toml,
  to keep the diff minimal
- Rename `media` to `servo-media-thread` to avoid name collision with
  `servo-media` (originally from the media repository).

This is an outcome of the previous discussion at [#general > Switch
remaining git dependencies to
crates.io](https://servo.zulipchat.com/#narrow/channel/263398-general/topic/Switch.20remaining.20git.20dependencies.20to.20crates.2Eio/with/576336288)

Testing: This should be mostly covered by our CI, but some amount of
breakage is to be expected, since some package names could still be
referenced from scripts which are not tested or run in CI. [mach try
run](https://github.com/jschwe/servo/actions/runs/22502945949)

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-03-01 14:15:27 +00:00
Euclid Ye
95af091dd3 ohos CI: Add timeouts (#42929)
There's some hanged scenarios with mitmproxy:
https://github.com/servo/servo/actions/runs/22539387007/job/65292396178

1. We rename `build` to `build-openharmony`.
2. We add 
- 60 minutes timeout for each Build profile
- 40 minutes for bencher (Normally finish under 10 mins)
- 20 mins for scenario tests. (Normally finish under 4 mins)

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-03-01 11:02:07 +00:00
Jonathan Schwender
5c1065d2a0 Rename vendored artifact name in release workflow (#42920)
As suggested in
https://github.com/servo/book/pull/206#discussion_r2867083136

Testing: Not tested, just used grep.

Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
2026-02-28 13:11:57 +00:00
Tim van der Lippe
ba4274218d Build nightly releases earlier for WPT (#42919)
WPT creates `epochs/daily` either at 2 or 3AM. This means that if a fix
land on day 1, then WPT is tagged earlier than the nightly release, so
it can take 24-48 hours before a change is reflected on wpt.fyi

If instead we create the nightly release in time before epoch, we can
see those results within 24 hours.

Testing: GitHub workflow change

---------

Signed-off-by: Tim van der Lippe <TimvdLippe@users.noreply.github.com>
2026-02-28 09:33:41 +00:00
Sam
9321ca0920 CI: Free more disk space in android workflow (#42877)
Before we freed 6GB now we free 19GB.

Fixes: #42857 (hopefully)

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2026-02-26 11:52:24 +00:00
Jonathan Schwender
ca3ff7046c release: Upload vendored source archive (#42852)
Add a job to the release workflow which uploads a source code archive
including our vendored rust dependencies. This allows offline builds
after downloading the archive and will also be documented in the book
(see https://github.com/servo/book/pull/206).

Testing: Manually tested by triggering a release on the nightly repo:
https://github.com/servo/servo/actions/runs/22405488357/job/64863992613

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-02-26 08:59:23 +00:00
Sam
05dccf627c CI: Always switch apt mirrors before apt (#42819)
Default azure mirror suck and we already used this in linux/linux-wpt
workflows.

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2026-02-24 16:16:29 +00:00
webbeef
a4c5ca1070 net: Use the user locale for the Accept-Language header and navigator language (#41919)
That respects the user locale better than hardcoding en-US. This can
also be manually set with the `LANG` environment variable.

Testing: Manual testing with the devtools to check the header sent and
the value of `navigator.language`

Signed-off-by: webbeef <me@webbeef.org>
2026-02-23 13:05:21 +00:00
Jonathan Schwender
f99d9689b8 Rename nightly.yml to release.yml (#42772)
The workflow is now used both for regular releases and nightly releases.

Testing: Not tested, it's a simple rename and nothing should rely on the
name `nightly.yml` (grep search)

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-02-23 09:04:58 +00:00
Narfinger
9610c3b3bd CI: Ohos add screenshot for bencher failure (#42598)
Currently we have spurious errors in various bencher runs. This updates
hitrace-bench and the workflow to save a screenshot if this happens.


Testing: CI does not have automatic tests but here is a run without the
error, proving at least that this does not break the normal workflow.
https://github.com/Narfinger/servo/actions/runs/21987493140/job/63526108222

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-02-19 02:50:32 +00:00
Narfinger
9993a2168a CI: OHOS Use mitmproxy with forwarding mode in hitrace-bench (#42508)
This updates to a new hitrace-bench version which supports to handle
mitmproxy by automatically starting and destroying it for the
benchmarks.

Currently we are only in forwarding mode and do _not_ replay responses.

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>

Testing:
https://github.com/Narfinger/servo/actions/runs/21867906670/job/63114716882

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
Co-authored-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
2026-02-11 10:25:30 +00:00
Narfinger
67521a9b08 CI: OHOS Use mitmproxy in record and replay mode (#42482)
We now use a replay recorded via mitmproxy to run the benchmarks.
1. Check the GitHub cache for a mitmproxy dump.
2. If it does not exists create it with update_mitmproxy_dump and store
it in the GitHub cache
3. Run mitmproxy in Replay mode instead of Forward mode with the above
given dump.

This should reduce the jitter of tests that depend on network.
This works currently for the scenariotests and speedometer with
hitrace-bencher soon to follow.

Testing: Tested with two separate runs.
https://github.com/Narfinger/servo/actions/runs/21828840808 has the
cache already populated.
The noisy output of mitmdump actually shows that it is answering the
queries from replay for all scenario tests.

https://github.com/Narfinger/servo/actions/runs/21831381306/job/62991977638
shows how before the scenario tests the cache is created and stored.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-02-11 01:17:27 +00:00
Asset Malik
1a406e4b71 ohos CI: Update hitrace-bench to 0.10.0 to add LCP and FCP metrics (#42164)
Update ohos.yml hitrace-bench and runs.json to 0.10.0

Testing: This should be testing using CI

Signed-off-by: jane <5373400+janeoa@users.noreply.github.com>
2026-02-09 14:32:38 +00:00
Manuel Rego
2fc31b7ff8 Fix comment in the nightly workflow (#42475)
Testing: No needed just fixing a comment.

Signed-off-by: Manuel Rego Casasnovas <rego@igalia.com>
2026-02-09 13:58:15 +00:00
Narfinger
7488c127db OHOS: Update openharmony versions to api lvl 21 (#42404)
This updates the Openharmony required version to API lvl 21 (6.0.0.1
OpenHarmony and 6.0.1 HarmonyOS).
We need API level 19+ for https://github.com/servo/servo/pull/41738,
however an API level 19 SDK was never released for OpenHarmony. API-20
seems to be the same as the the 6.0-beta release, so we are playing it
safe and directly going for the API-21 release, which is also the 6.0.1
release that the actual HarmonyOS 6 update was, so it should be the most
polished.
This also has the update for the version used in CI.

The HarmonyOS runners are already updated.

Testing: Successful openharmony run here:
https://github.com/Narfinger/servo/actions/runs/21755920480

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-02-09 02:28:05 +00:00
Narfinger
c6fbaf33e2 ohos ci: Remove HOS smoketest (#42334)
Smoketest is subsumed by scenario test and can be removed.

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>

Testing: *Describe how this pull request is tested or why it doesn't
require tests*

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-02-06 17:42:43 +00:00
Martin Robinson
eeb31a3cec deps: Merge the servo/media repository (#42369)
This change merges http://github.com/servo/media into this repository.
It is only used by Servo and version upgrades are complicated by having
two repositories. In addition, this avoids the need to refer to
individual commit hashes in the Servo `Cargo.toml`. The hope is that
merging these two repositories will lead to better code organization /
simplification like we have seen with the WebXR support. Initiailly, the
idea was that this media support could be shared with the wider Rust
ecosystem, but I think that hasn't worked out as planned due to the fact
that it is difficult to use the various media packaes outside of the
Servo project and the fact that no one seems to be doing this.

Some changes were made when importing the code:
- The second commit in this PR addresses new clippy warnings from the
imported code.
 - GStreamer Packages are no longer renamed in the media code, so that
   they are named the same as they are currently in Servo.
 - Some examples are not ported as they require being run interactively
   and depend on older version of important libraries like winit.
   Having these dependencies in the core part of Servo isn't very
   convenient. Removed examples:
   - `audio_decoder.rs`: This is meant to be run interactively with a
     file so isn't very useful for testing.
   - Depended on winit GUI (`player` subdirectory):
     - `media_element_source_node.rs`
     - `play_media_stream.rs`
     - `simple_player.rs`
     - `muted_player.rs`
   - `siple_webrtc.rs`: Depended on `webrtc` library:

Testing: This is covered by existing tests. In addition, the job which
runs
the media examples is added to the unit test workflow.

---------

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2026-02-06 17:00:03 +00:00
Narfinger
b48612a948 Revert "CI: OHOS: Better test for hdc device connected (#42365)" (#42407)
This reverts commit 071f064e2e.

Seems the devices are more finicky in CI.

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-02-06 14:29:30 +00:00