The nightly build jobs run on Ubuntu 20.04 to ensure the glibc version
is compatible with WPT.fyi runners. But this version of Ubuntu has an
older clang version (12) that is not compatible with mozjs.
This patch makes the nightly job for Linux explicity install Clang 14
using the KyleMayes/install-llvm-action@v2 action. The regular Linux job
still uses system Clang installation as there are failures when using
the github action.
Fixes#34713.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.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>
The path to `.python-version` used by our setup-python action is
relative to the current working directory, which is not the servo
repo when WPT Export job runs.
Fixes#34639.
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 change uses Gradle's official `setup-gradle` action to allow the
caching of the downloaded gradle distribution and java dependencies in
the GitHub Actions cache. However, since the initial download of gradle
distribution is still handled by the `gradlew` wrapper script which
doesn't retry on network failures, this change also adds a simple retry
mechanism using shell scripting.
Fixes#34600
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
This is to see if #34571 is related to caching in anyway. There is no
easy way to delete all Github Action caches using Github UI or cli.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.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>
Job will do some performance benchmarks (Dromeo, Speedometer) and mesure binary size and will report results to bencher.dev
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Co-authored-by: DK Liao <dklassic@gmail.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>
Most of the time layout-2013 is not needed and just
wastes build time. Disable the optional feature by
default and require users to specify the feature
at compile time if they wish to use the legacy layout.
In CI we enable the feature by default for Linux, since
that we need it for wpt tests with the legacy layout
and CI should ensure that the legacy code continues
to compile.
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>
wptrunner breaks macos builds because it doesn't work well with 3.13 due
to two issues:
1. The current version (10.3.0) of the 'pillow' dependency of wptrunner
breaks with >=3.13 and needs to be upgraded.
2. Python 3.13 has removed the 'cgi' module which was deprecated in 3.11
and has no direct replacement. There are two files in wptrunner that
use the cgi module and one of them is the vendored 'html5lib'.
As a quick fix, pin the Python version on MacOS runner until
web-platform-tests/wpt#48585 is addressed.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.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>
This seems to be necessary now, in much the same way it is necessary on
a normal Ubuntu system. I'm not sure what changed that this is now
required.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Github has updated the `ubuntu-latest` label to use 24.04, but that
breaks the lint job. Since the build job (github hosted and self hosted
runners) still explicitly use 22.04, pin the same version for lint job
until we upgrade all the workflows together.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.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>
* android: publish nightly builds for aarch64
Publish the aarch64 apk and aar packages to both Github Releases
and S3 so that it can be linked from servo.org.
The focus is on getting a working version of the APK on the homepage,
so few issues are resolved with temporary solutions:
1) We publish the "release" profile instead of "production" since the
latter will need changes in the gradle configuration (the changes
required was previously blocked on #32720 which is now closed).
2) The scheme for the version code is simple and doesn't consider
other factors such as API level and product variants discussed in the
Android docs (https://developer.android.com/google/play/publishing/multiple-apks#VersionCodes)
This should be fine for now as we don't publish to any store yet.
The change also makes it so that the 'Release nightly' workflow will
endup building all 4 variants for the Android target, but only aarch64
is uploaded. This is because GH Actions doesn't have a good way to skip
a specific job in a matrix and the additionally code complexity needed
to acheive it (either generating a JSON dynamically in a new job and using
`fromJSON` in the matrix definition or skipping each individual step
based on matrix.target and `inputs.upload`) didn't seem worth the cost
saved (this is executed only once a day).
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* android: add attestation for nightly build artifacts
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
---------
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* CI: use self-hosted runners for Linux build jobs
Signed-off-by: Delan Azabani <dazabani@igalia.com>
* Set ccache and incremental env variables when not self-hosted
Signed-off-by: Delan Azabani <dazabani@igalia.com>
* Force GitHub-hosted runner when in upload mode
Signed-off-by: Delan Azabani <dazabani@igalia.com>
* Revert s/python/python3/ now that our image has python
Signed-off-by: Delan Azabani <dazabani@igalia.com>
* Remove stray comment in timeout workflow
Signed-off-by: Delan Azabani <dazabani@igalia.com>
* Update description of runner-select job
Signed-off-by: Delan Azabani <dazabani@igalia.com>
* Apply suggestions from code review
Address couple minor naming / formatting nits
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
---------
Signed-off-by: Delan Azabani <dazabani@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>