Commit graph

597 commits

Author SHA1 Message Date
Jelle Raaijmakers
fe33a2f66e CI: Update actions/cache to @v5 2026-06-19 10:40:43 +02:00
dependabot[bot]
043adecb13 CI: Bump actions/checkout from 6.0.3 to 7.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6.0.3...v7.0.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-19 09:52:09 +02:00
Tim Ledbetter
abe6d2c045 CI: Add a PR CI step to check new and modified tests for flakiness 2026-06-19 09:47:55 +02:00
sideshowbarker
b6bd191531 CI: Use the image-provided wasm-tools on the Linux jobs
Bump the workflow image pin to the 2026.06.14 tag that bakes in
wasm-tools. And keep the wasm-tools download/caching steps for the macOS
and Windows jobs — but skip those steps on Linux. So, the Linux jobs use
the wasm-tools copy the image installs.

Follow-up to https://github.com/LadybirdBrowser/ladybird/pull/9972
2026-06-19 09:02:57 +02:00
Jelle Raaijmakers
eb85264e44 CI: Switch macOS runners to macos-26
All our self-hosted runners have been updated.
2026-06-16 09:44:38 +02:00
Shannon Booth
2dc3e3da55 Meta: Remove obsolete Lagom host-tools build 2026-06-08 01:11:40 +02:00
sideshowbarker
675d6072f7 CI: Bump lint-code.yml to the 2026.06.02 image, like the rest of CI
Otherwise, without this change, the Lint Code job intermittently fails —
for the same cause described in 61d0fca133: rustup tries to auto-install
1.96.0 the first time a proxied cargo runs — and depending on timing,
that can lead to a crate ending up seeing rustc, but not cargo.
2026-06-07 23:59:02 +02:00
sideshowbarker
e97de4fc84 Meta: Retry required-file downloads and cache the WASM spec tests
Problem: CI intermittently fails when a required-file download hiccups;
e.g., the WASM spec test suite fetch failed on both its primary URL and
the Web Archive fallback on the same run — breaking configure under CI.

Cause: download_file_multisource was trying each source only once — so a
single transient HTTP error could break the whole build. The WASM spec
test tarball was also being fetched fresh every run — rather than from
the shared download cache — so each build was exposed to that flakiness.

Fix: Retry each fetch a few times across all sources — for every config-
time download: the WASM spec tests, HSTS preload list, and public-suffix
list. Cache the WASM spec test tarball across CI runs — keyed by commit,
so it’s (re)fetched only once per commit bump.
2026-06-07 11:33:29 +02:00
sideshowbarker
61d0fca133 CI: Fix recurring Rust toolchain flake in the libjs-test262 job
Problem: The libjs-test262 job was failing — often — with “cargo is not
installed for the toolchain 1.96.0”, while building the Rust crates.

Cause: The job ran in an older CI image lacking 1.96.0 — making runtime
rustup try to auto-install 1.96.0 the first time a proxied cargo ran.
And because the build compiles multiple Rust crates in parallel, several
cargo invocations hit the missing toolchain at once — and each started a
rustup install of the same toolchain. And rustup apparently isn’t safe
against concurrent installs: Its in-place component swap shuffles files
out to a temp directory, and a crate that reads the toolchain mid-swap
sees rustc — but not cargo. Whether it corrupts depends on timing — so
the failure is intermittent, and a re-run usually “fixes” it.

Fix: Update the job to the current ladybird-ci:2026.06.02 image — which
already has 1.96.0 (with cargo) baked in — so no runtime install happens
and there’s nothing to race. As an additional guard, also install the
pinned toolchain *explicitly*, before the parallel build: so any install
happens exactly once — and serially — rather than being raced.
2026-06-07 11:32:48 +02:00
Ali Mohammad Pur
540827040c Meta: Package the wasm cranelift compiler and restore it for benchmarks 2026-06-05 19:59:03 +02:00
Jelle Raaijmakers
a9dbf75788 CI: Remove stalebot
PRs will now be fully owned by their respective author, so no need
automatically close them.
2026-06-05 10:20:15 +02:00
dependabot[bot]
50892d7370 CI: Bump actions/checkout from 6.0.2 to 6.0.3
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6.0.2...v6.0.3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-05 09:21:33 +02:00
Timothy Flynn
475d8f3c4b CI: Update the docker image version used in CI 2026-06-03 01:15:32 +01:00
sideshowbarker
d089def7e4 CI: Add “master” branch-name check to “push” triggers 2026-05-29 16:13:41 +02:00
Shannon Booth
f985ed83d4 CI: Use latest Linux build image
The Linux CI workflows were still pinned to ladybird-ci:2026.05.4, even
though the CI image had since been rebuilt as 2026.05.25 after the Rust
toolchain switched to nightly.

This left CI running in an older container where cargo was not installed
for the nightly toolchain selected by the checked-out tree, causing Rust
crate builds to fail during the fuzzer host-tools build.

Update the workflow image references to the current published CI image.
2026-05-28 09:27:41 +02:00
Andreas Kling
0d9f7b3ed8 CI: Switch GNU build from sanitizer to release
Keep GCC compiler warning coverage on pull requests without running the
GCC sanitizer configuration that has been timing out in CI. Leave the
Clang sanitizer jobs in place for sanitizer coverage.
2026-05-24 10:13:23 +02:00
Luke Wilde
4a34a60d93 CI: Pass CMake options in the Fuzzers build
We were forgetting to pass CMake options in the Fuzzers build.
These CMake options contain -DENABLE_CI_BASELINE_CPU=ON, which sets
a baseline architecture to properly allow ccache sharing between
different runners. Without it, it defaults to the native architecture,
which is then cached and can be used on a runner that doesn't have the
same instruction set.

This is targetted at fixing the "Illegal instruction" crash we've been
seeing with the bindings generator.
2026-05-22 19:15:58 +01:00
dependabot[bot]
8b7629d20e CI: Bump actions/stale from 10.2.0 to 10.3.0
Bumps [actions/stale](https://github.com/actions/stale) from 10.2.0 to 10.3.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](b5d41d4e1d...eb5cf3af3a)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 10.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-22 10:39:56 -04:00
Andreas Kling
6961b48af2 CI: Preserve sanitizer logs from test subdirectories
CTest may run tests from build subdirectories. That means sanitizer logs
can be written below Build instead of the workspace root.

Search Build recursively when printing sanitizer output, and include
matching logs in the LibWeb test artifact.

Keep sanitizer log_path values relative so they work on Windows.
Absolute paths with drive letters contain colons there. That conflicts
with the ASAN_OPTIONS separator.
2026-05-13 13:32:49 +02:00
dependabot[bot]
c406e61e20 CI: Bump docker/setup-buildx-action from 3 to 4
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3 to 4.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-08 18:01:28 -04:00
dependabot[bot]
73277e23f8 CI: Bump docker/build-push-action from 6 to 7
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6 to 7.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-08 18:01:19 -04:00
Undefine
60edabad0b CI: Use the Host_Tools preset when building tools for the fuzzers build 2026-05-05 22:08:24 +02:00
Jelle Raaijmakers
246a6a1194 CI: Switch to build image 2026.05.4 2026-05-05 11:29:07 +02:00
Jelle Raaijmakers
2134ff7812 CI: Use CI build image for Linux jobs
This means running the build inside a Docker container based on a (more)
stable build image.

  * The setup action is now largely simplified for Linux.

  * We hardcode llvm@21 for macOS since it allows us to get rid of
    specifying llvm_version as an input variable. Since we no longer
    support switching the LLVM version on Linux via that variable, this
    seems like the best course of action.

We use a trick to optionally introduce a container image: `fromJSON()`
allows `null` as a return value, which causes the job to execute on the
runner directly. We need this for macOS and Windows jobs.
2026-05-04 14:16:41 +02:00
Jelle Raaijmakers
9c6e814058 CI: Introduce build of new CI Docker image
The goal is to have a stable, reproducible build environment for Linux
amd64 and arm64 that we can simply pull in for CI build jobs. We've seen
that apt repositories can be temporarily unreachable or build dependency
versions are silently updated causing builds to fail. A nice benefit of
this is that we can skip most of the environment setup, which takes a
couple of minutes each run.
2026-05-02 15:52:44 +02:00
dependabot[bot]
e7fe3fc5a3 CI: Bump dawidd6/action-download-artifact from 20 to 21
Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 20 to 21.
- [Release notes](https://github.com/dawidd6/action-download-artifact/releases)
- [Commits](https://github.com/dawidd6/action-download-artifact/compare/v20...v21)

---
updated-dependencies:
- dependency-name: dawidd6/action-download-artifact
  dependency-version: '21'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-01 17:42:24 +02:00
Andrew Kaster
946f39df88 CI: Build Gtk UI in Linux Sanitizer presets
Ensure that we run tests with the Qt UI still
2026-04-23 20:07:40 -06:00
Timothy Flynn
b483445072 Meta: Replace IPCMagicLinter with a python linter
Note that the IPC lint step can be removed from the CI workflow because
we no longer need a build in order to perform the lint, and IPC linting
is now covered by lint-ci.sh.
2026-04-23 07:31:19 -04:00
dependabot[bot]
fadea53343 CI: Bump actions/github-script from 8 to 9
Bumps [actions/github-script](https://github.com/actions/github-script) from 8 to 9.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v8...v9)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '9'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 08:18:23 -04:00
Jelle Raaijmakers
6904389746 CI: Remove stray comma from webhook payload in web-benchmarks.yml 2026-04-14 16:55:45 +02:00
Tim Ledbetter
f498cfcfd0 CI: Trigger web-benchmarks workflow on push to master
Previously, the web benchmarks job would only trigger after a
successful CI run.
2026-04-14 15:34:29 +02:00
Tim Ledbetter
236c0b41a5 CI: Use the correct MacOS path in web-benchmarks job 2026-04-14 13:00:48 +02:00
dependabot[bot]
94eed3d708 CI: Bump dawidd6/action-download-artifact from 19 to 20
Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 19 to 20.
- [Release notes](https://github.com/dawidd6/action-download-artifact/releases)
- [Commits](https://github.com/dawidd6/action-download-artifact/compare/v19...v20)

---
updated-dependencies:
- dependency-name: dawidd6/action-download-artifact
  dependency-version: '20'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 11:22:44 -04:00
Jelle Raaijmakers
b2e169efc6 CI: Remove non-existent download_cache_path from web benchmarks job 2026-04-08 09:24:39 -04:00
Jelle Raaijmakers
27c4a2e439 CI: Always pass in toolchain to cache actions
It doesn't make a whole lot of sense leaving out this variable. We use
the toolchain to construct the main cache key for our ccache and vcpkg
caches, and the JS+WASM artifacts build defaulted to 'GNU' for their
toolchain which got really confusing.
2026-04-08 09:24:39 -04:00
Jelle Raaijmakers
3003930c8d CI: Remove runner_labels from custom cache actions
These were originally introduced to make it possible to discern between
GitHub's and Blacksmith's caches. This is no longer necessary since
Blacksmith resolved some issues _and_ switched to transparently
proxying GitHub cache actions to their own caches.
2026-04-08 09:24:39 -04:00
dependabot[bot]
7b0121e206 CI: Bump actions/upload-artifact from 6 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-31 22:21:19 +02:00
Zaggy1024
5063507fbb CI: Start PulseAudio for Linux tests 2026-03-30 20:57:04 -05:00
Sam Atkins
1438efa3e2 CI: Update "Upload LibWeb Test Artifact" test-dumps path
Regressed in 829d112327
2026-03-30 21:04:34 +02:00
Undefine
829d112327 Meta: Move Lagom CMakeLists stuff to the top level CMakeLists
This allows us to get rid of the annoying Build/.../Lagom directory
and helps to deduplicate a bunch of logic while also drastically
simplifying everything.
2026-03-29 13:59:11 -06:00
Undefine
fbbcc73fea Meta: Refactor the way the GUI framework is picked
This is largely based of off the work done by Andrew Kaster in #5918.
Having this toggle makes much more sense, especially if there will be
more UIs in the future.

Co-authored-by: Andrew Kaster <andrew@ladybird.org>
2026-03-29 13:59:11 -06:00
Tim Ledbetter
9824194ddf CI: Add web-benchmarks job 2026-03-24 14:25:55 +01:00
dependabot[bot]
f8a7f3cdae CI: Bump dawidd6/action-download-artifact from 18 to 19
Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 18 to 19.
- [Release notes](https://github.com/dawidd6/action-download-artifact/releases)
- [Commits](https://github.com/dawidd6/action-download-artifact/compare/v18...v19)

---
updated-dependencies:
- dependency-name: dawidd6/action-download-artifact
  dependency-version: '19'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-24 11:07:13 +01:00
dependabot[bot]
5938b754ac CI: Bump gradle/actions from 5 to 6
Bumps [gradle/actions](https://github.com/gradle/actions) from 5 to 6.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/v5...v6)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-24 11:06:54 +01:00
dependabot[bot]
0c55f4e217 CI: Bump dawidd6/action-download-artifact from 16 to 18
Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 16 to 18.
- [Release notes](https://github.com/dawidd6/action-download-artifact/releases)
- [Commits](https://github.com/dawidd6/action-download-artifact/compare/v16...v18)

---
updated-dependencies:
- dependency-name: dawidd6/action-download-artifact
  dependency-version: '18'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-17 08:50:37 +01:00
dependabot[bot]
e362362cb2 CI: Bump docker/login-action from 3 to 4
Bumps [docker/login-action](https://github.com/docker/login-action) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-10 07:57:10 -04:00
dependabot[bot]
cc2daa2821 CI: Bump actions/upload-artifact from 6 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-03 10:33:17 +01:00
dependabot[bot]
081f7619ad CI: Bump dawidd6/action-download-artifact from 15 to 16
Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 15 to 16.
- [Release notes](https://github.com/dawidd6/action-download-artifact/releases)
- [Commits](https://github.com/dawidd6/action-download-artifact/compare/v15...v16)

---
updated-dependencies:
- dependency-name: dawidd6/action-download-artifact
  dependency-version: '16'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-03 09:46:07 +01:00
Timothy Flynn
a238894e53 CI: Move the flatpak build steps to their own job
This is entirely a GitHub limitation. But I have found myself wanting to
rerun flaky CI tests, but have to wait some time for the flatpak builder
to complete. Moving this to its own job means we don't need to wait to
restart other CI jobs.
2026-02-26 10:33:10 -05:00
InvalidUsernameException
8c57fa780f CI: Remove redundant set -e calls
Shell scripts running in GitHub Actions workflows have `set -e` enabled
by default:
https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepsshell

To avoid confusion, remove the redundant calls present in some of the
workflow script steps.
2026-02-25 10:08:23 +01:00