this way of invoking mach is incorrect now that we use uv, and it will
prevent us from running bencher builds on self-hosted runners (#39269),
where the system Python is too old (3.10 vs 3.11).
Testing:
- mach try bencher
<https://github.com/servo/servo/actions/runs/17675086579>
Fixes: part of #39269
Signed-off-by: Delan Azabani <dazabani@igalia.com>
Includes a fix, which deletes the SDK for ohos-native hosts, saving some
disk and cache space, since we only need the version for linux hosts.
Testing: [mach try
ohos](https://github.com/jschwe/servo/actions/runs/17024914816)
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Renames `--branch-start-point`, `--branch-start-point-hash`, and
`--branch-reset`, in favor of `--start-point`, `--start-point-hash`, and
`--start-point-reset`, according to [Bencher's
Docs](https://bencher.dev/docs/reference/changelog/#v0421).
Fixes: #38501
---------
Signed-off-by: Timmy <timmy@Timmys-Mac-mini.local>
Signed-off-by: Timothy Elems <timmy@Timmys-Mac-mini.local>
Signed-off-by: elemstimothy@protonmail.com <timmy@Timmys-Mac-mini.local>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
Co-authored-by: Timmy <timmy@Timmys-Mac-mini.local>
Co-authored-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
When running bencher on pull requests or try, we want to clone any
thresholds we setup for main to detect regressions.
Note: The thresholds we are actually interested in are defined on the
production profile, while in PRs we currently test release. Probably we
should reconsider that, but perhaps that could be a different PR with
seperate discussion.
Testing: ./mach try
([ohos](https://github.com/servo/servo/actions/runs/16779272577))
---------
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
Co-authored-by: sagudev <16504129+sagudev@users.noreply.github.com>
OHOS CI now has the build profile before the test cases to distringuish
dev, release, production and similar.
Testing: Tested on CI with a run here:
https://github.com/Narfinger/servo/actions/runs/16465984131/job/46543984398
Fixes: Same name in speedometer CI will have very different speeds
because of different profiles. This will fix this behaviour.
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Same output, but much easier and faster than sifting through the whole
output of hdc bugreport.
Testing: CI change: `./mach try`
[run](https://github.com/servo/servo/actions/runs/16460283107)
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
The self-hosted runners should be up and running again, so we can
re-enable.
Testing: If CI passes, it shows that the runners are there again.
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
I've seen two multiple runs failing that reported this test as stable
FAIL (and in worst case it's intermittent TIMEOUT, but it does not look
like it). We also disable HOS in CI, because they currently do not work:
[#general > CI runners @
💬](https://servo.zulipchat.com/#narrow/channel/263398-general/topic/CI.20runners/near/528443964)
Testing: Just expectation fix.
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
OHOS CI: Now we can benchmark specific files. These files need to be in
the runs.json and in the supprt/hitrace-bench folder.
A simple testcase of parsing html from string is included (taken from
https://github.com/servo/servo/issues/37223).
We copy all files in
support/hitrace-bench into the hap of the phone.
These files can use the console.log javascript command to get their
measured output.
Additionally, this now supports reporting resident-accordings-to-smaps
which is a slightly different memory than resident.
This needs update to hitrace-bench 0.7 which will be completed once the
PR is marked ready.
Testing: On action runner here:
https://github.com/Narfinger/servo/actions/runs/16118101025/job/45477031813
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
OHOS CI: Install the required hitrace-bench version if it is not already
installed. This allows us to see the hitrace-bench version in the commit
history without it being reinstalled on CI all the time.
This does not change the version of hitrace-bench in this PR.
This needs another update of the docker images to get the correct build
tools installed.
Succesful run:
https://github.com/Narfinger/servo/actions/runs/16115943664/job/45469959328
And here a run where it installs the given version:
https://github.com/Narfinger/servo/actions/runs/16116949656/job/45473231784
Testing: Tested on CI.
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
OHOS CI: If speedometer does not finish we currently abort the whole
job.
This fixes this behaviour by adding an emtpy file and continuing the
job.
Runs with errors will now look like this. Notice annotation.
https://github.com/Narfinger/servo/actions/runs/16026933009
Successful run:
https://github.com/Narfinger/servo/actions/runs/16027530625
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Testing: Tested on CI.
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Since we don't checkout servo in this job, bencher can't infer the
commit hash and we need to pass it manually.
Bencher documentation for --hash:
02034b83de/services/console/src/chunks/docs-explanation/branch-selection/en/hash.mdx
Testing: No testing. This could cause the HOS CI to fail, but wouldn't
block the MQ. This kind of CI change is quite difficult to test without
a lot of setup overhead. The change itself is trivial though, and the
expected damage would also be low (merge queue would still work).
Issue with the missing commit was:
Reported by @webbeef
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Update the CI to use api version 14 and 5.0.2 sdk. Additionally, update
the action. This is required because of
https://github.com/servo/servo/pull/37392.
Testing: CI does not have tests.
---------
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Co-authored-by: Jonathan Schwender <schwenderjonathan@gmail.com>
The CI does multiple build runs so we need to handle it being
overwritten.
Multiple different build of OHOS servoshell would fight for who is first
to upload run.json and the other would error out.
Now we allow both to succeed by overwrite the run.json
Testing: Testrun:
https://github.com/Narfinger/servo/actions/runs/15180797189/job/42689748807
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Allow OHOS bencher to get the model name for testbed.
Currently we rely on simple `hdc bugreport` and awk. `hdc bugreport`
spits out a lot of information so it is kind of slow. But that should be
ok.
Working run (with the usual caveats of removing the checks in the file)
can be found here:
https://github.com/Narfinger/servo/actions/runs/15069652902
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Added a new workflow that benchmarks simple startup and loading of
servo.org on HarmonyOS.
Needs https://github.com/servo/ci-runners/pull/34 to be merged and
applied to the runners.
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Use the introduced logging domain on OHOS to get the log on the
workflow. This improves the reliability of getting the logs if
servoshell crashed.
Testing: This was tested on the CI Runner
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
In #35804 we fixed the bundlename, but I assumed the servoshell in
the grep expression was referring to the libraryname.
As it turns out the tracelines start with the bundlename,
so we need to update this name too.
This is the last line in the hos CI, and the grep
expression works locally so this time CI should really be fixed.
As already mentioned in the previous PR, we can't really test this
well, since this job only runs on self-hosted runners, which check out
the github action yaml version from the main branch.
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
I'm not quite sure why a workflow run would
have a duplicate artifact name for test_output,
but hopefully this patch should fix upload failures
such as in https://github.com/servo/servo/actions/runs/12922254914/job/36037850582
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* ohos: Add event for page loaded
We can use this to check if we succeeded.
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* CI: Test OpenHarmony on self-hosted runner
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* fix typo
Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
---------
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>
The new images published in servo/ci-runners#12 should have `uv`
installed already and the initial build of servo triggered during the
base image construction will force the installation of the Python
version mentioned at the time of the image construction (3.12). When
.python-version changes, we can no longer use the .venv baked into the
image and must recreate the it to avoid activating the environment.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
We have been having intermittent issues with sccache since
around the recent v0.9 release of sccache which only
appear when building mozjs from source.
Due to recent changes with readablestreams, we are not using
the prebuilt mozjs artifacts anymore and always building from
source, causing these problems to regularly block the merge
queue. Bumping SCCACHE_GHA_VERSION helps but has been observed
to only be a temporary solution until the next breakage.
Closes#34571
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
There are build failures again with similar errors seen in #34571.
Incrementing the SCCACHE_GHA_VERSION should purge the cache for now, but
this is just a temporary fix. If this happens again, we'll need to look
into disabling sccache until #34571 is resolved.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
This allows us to use `uv` for:
1. Installing a pinned Python version
2. Installing the dependency packages using `uv`'s pip compatible interface.
4. Bootstrapping `mach` without a Python installion on the host, using `uv
run`
This change also introduces a new 'composite' GitHub action to setup
python in the different CI workflows. There is no support for externally
managed python installations and virtual environments. These could be
added in the future.
Fixes#34095, #34547
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Bump bindgen to 0.71.1
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* Set SCCACHE_GHA_VERSION to allow purging cache
changing the version allows us to purge the cache.
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* android CI: Enable sccache again
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
---------
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
This patch switches servo to use `uv` for both installing a pinned
Python version as well as installing the dependency packages using
`uv`'s pip compatible interface. It also introduces a new 'composite'
GitHub action to setup python in the different CI workflows.
There is no support for externally managed python installations and
virtual environments. These could be added in the future.
Fixes#34095
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
SDK Version 5.0.1 was recently released and bumps the
API-version to 13.
This means hvigor will refuse to package the app, since
we currently specify that our app targets API 12.
Hence, we clarify our version by also specifying the patch level.
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* ohos: Add basic IME and keyboard support
- Add extremely basic support for keyboard events
- Add basic IME support
- Showing and hiding the IME
- inserting text
- deleting characters
- very basic configuration of the IME
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* Apply suggestions from code review
Improve the log message
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
* Update ports/servoshell/egl/ohos.rs
Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
* ohos: Bump the minimum required SDK version to 5.0
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* ohos: Remove pub from callbacks
The callbacks don't need to be public, as we will be registering them.
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* Rename composition event
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* ohos: clippy in log
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* ohos: address some clippy warnings
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* ohos: Raise Error in mach if unsupported SDK version is used.
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* Add keyboard-types dependency for android
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
---------
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
* CI: Bump setup-ohos-sdk to v0.1.4
v0.1.3 had a bug when the SDK was restored from cache.
This was fixed upstream, andcache-hit behavior is now also
tested in upstream CI.
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* CI: Use major tag again for setup-ohos-sdk
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
---------
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
The most recent [v0.1.3] release seems to not set the expected
OHOS_SDK_NATIVE and OHOS_BASE_SDK_HOME environment variables.
This is causing the OHOS builds to fail in CI and blocking the merge
queue. This change pins he action to the last known good version until
the error can be addressed upstream.
Fixes#33712.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* ohos: Fix compilation for x86_64
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* ohos: Use the SDK compiler-wrapper
When compiling for x86_64-unknown-linux-ohos without the compiler
wrapper, for some reason mozjs_sys will be refercing a wrong mangled symbol
resulting in the following error when loading the .so at runtime:
```
_ZNSt3__111this_thread9sleep_forERKNS_6chrono8durationIxNS_5ratioILl1ELl1000000000EEEEE: symbol not found
```
This problem does not occur when compiling for aarch64 or when using the compiler wrapper.
In this case the correct symbol
`_ZNSt4__n111this_thread9sleep_forERKNS_6chrono8durationIxNS_5ratioILl1ELl1000000000EEEEE`
is referenced.
It's unclear why manually passing the flags via CFLAGS / CXXFLAGS does not work.
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
---------
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
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>
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>
* 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>