Commit Graph

40 Commits

Author SHA1 Message Date
Andrew Kaster
af5f23cdda CI: Use CMake build preset directly instead of a fuzzer flag 2025-02-21 12:05:18 +01:00
Andrew Kaster
34bf42cffa CI: Use arch variable in ci.yml instead of always using 'Lagom'
This was a relic from the SerenityOS CI, where architecture meant
what architecture to build Serenity for. For just ladybird, we might
want to build ladybird for multiple architectures per OS.
2025-02-21 12:05:18 +01:00
Timothy Flynn
2ec97b4548 Meta: Update to clang-19 in CI and build instructions 2024-12-28 05:39:32 -08:00
Andrew Kaster
673537b26b CMake: Rename our triplets to their canonical names
Becuase we're using dynamic libraries, our configuration is
classified as a "community triplet". To not confuse vcpkg
maintainers when developers create bug reports, name them
properly. This means that the default triplet detection is now
kind of useless, so we have to invent our own for these triplets.
2024-12-22 15:48:30 -07:00
Timothy Flynn
fd263d3755 CI: Do not fail the entire pipeline if there are LSAN logs
Even in a successful LibWeb test run, on Linux, we currently always have
LSAN output. Causing this step to fail is currently making every run of
CI fail.

If LibWeb tests did fail, they should exit with a non-zero status code
on their own, causing the pipeline to fail.
2024-12-04 18:38:40 -05:00
Sam Atkins
1081a7f3e2 CI: Move sanitizer output into a separate CI step
Instead of writing ASAN and UBSAN output into the same stream we use for
test logging, direct them to log files, named asan.log.$PID and
ubsan.log.$PID, and then output them in a separate CI job that runs
afterwards. This should hopefully make it easier to see which tests are
failing.

The downside is that it's now harder to tell which tests the *SAN errors
are related to.
2024-12-04 15:35:15 +00:00
Sam Atkins
432bbb4a56 CI: Keep test artifacts around longer
From this action's documentation, "0 means using default retention."
There's no reason for this to have a different retention duration than
the CI results themselves.
2024-12-02 18:04:43 -05:00
Sam Atkins
4fd42313ae CI: Ensure uploaded test artifacts have a unique name
Without this, if two CI runs on Linux both fail and want to upload
screenshots, we get an error like this on the second:

> Error: Failed to CreateArtifact: Received non-retryable error: Failed
> request: (409) Conflict: an artifact with this name already exists on
> the workflow run

Using all the inputs as part of the name should make this kind of
conflict impossible.
2024-12-02 18:04:43 -05:00
Timothy Flynn
941e25b0dc CI: Slightly increase the test timeout of LibWeb tests to 30 minutes
Our GCC pipeline is regularly timing out. When it doesn't time out, it
finishes just under the default 25 minute limit. Let's bump the timeout
to 30 minutes to give it a bit more wiggle room.
2024-11-30 12:10:12 -05:00
Timothy Flynn
20899d77d8 Revert "CI: Increase the default ctest timeout to 1 hour"
This reverts commit aeaa284be3.

This didn't actually help. It appears we actually just get stuck, so
increasing the timeout to an hour just makes CI take longer.
2024-11-28 16:46:41 -05:00
Timothy Flynn
aeaa284be3 CI: Increase the default ctest timeout to 1 hour
We seem to be brushing up against the 1500s limit (25 minutes) on both
macOS and Linux+GCC workflows. As we keep importing more WPT tests, we
will exasperate the issue.
2024-11-28 12:12:39 -05:00
Timothy Flynn
bc846d933d CI: Use correct path to upload ref test dumps 2024-11-22 09:57:27 +01:00
Timothy Flynn
db47cc41f8 Everywhere: Move the Ladybird folder to UI 2024-11-10 12:50:45 +01:00
Timothy Flynn
acc74f5e72 CI: Upgrade to macOS 15
For some reason, Microsoft have decided to remove Xcode 16 from macOS 14
images. We require Xcode 16 for Swift 6.

See: https://github.com/actions/runner-images/issues/10703

Because macOS 15 images are still in preview, their availability is much
lower than macOS 14 images. To hopefully alleviate the amount of time we
are waiting in the runner queue, for now this only upgrades the workflow
which uses Swift.
2024-11-07 19:30:34 -05:00
Timothy Flynn
5681dbee64 Meta: Move the vcpkg installation/cache directories under Build
In addition to changing the build-type dependent build directories, we
can take this opportunity to move the vcpkg cache directory to the Build
folder itself. This probably isn't 100% needed, but it ensures that no
leftover artifacts are used from non-dynamic vcpkg builds, and it's also
generally nice to have all build artifacts under Build.
2024-11-06 10:38:57 -07:00
Ali Mohammad Pur
cb4b2ca681 Meta: Avoid messing with the system python in CI
This uses the setup-python action in the setup action to install python
3.12, and removes the --break-system-packages hack that the system pip
requires.
2024-10-07 11:45:21 -06:00
Timothy Flynn
ba36312864 CI: Remove outdated references to Serenity vs. toolchain ccache
The toolchain ccache no longer exists. Remove it and the "Serenity"
prefix from remaining ccache variables.
2024-08-27 19:24:39 -04:00
Timothy Flynn
953318e372 CI: Re-enable santizers in the clang plugins build 2024-08-27 19:24:39 -04:00
Timothy Flynn
ac62982ee2 CI: Explicitly set the ccache compiler check
This is needed to allow using clang plugins during PR workflows. They
currently are not included because they resulted in a clean build on
each run. With this, they should be cached.
2024-08-27 19:24:39 -04:00
Timothy Flynn
730ec6aff9 CI: Move the clang-plugins-enabled build to a separate job
The plugins build that runs on master currently uses the same ccache key
as non-plugin builds in PRs. This means all clang PR builds are not able
to use ccache.

Move the plugins build to a separate job. This job also has sanitizers
disabled to make the plugins build quicker.
2024-08-26 21:48:59 -04:00
Andrew Kaster
315a666e53 Tests: Add test to verify CxxSequence protocol conformance of containers
Building the test in debug mode currently crashes the swift frontend,
so we'll need to build this in release mode until that's fixed.
2024-08-17 17:44:37 -06:00
Tim Ledbetter
00eca78d28 Tests+CI: Remove WPT CI job
This currently fails on CI, but gives no indication that it has failed.
2024-08-11 07:52:55 +02:00
Andrew Kaster
89a4fa4d24 CI: Only run clang plugins workflow on pushes to master
Enabling the plugins makes the job take ~1h even for small changes.
2024-07-26 13:40:50 -06:00
Andrew Kaster
05e1b54e97 CI: Enable Clang plugins for Linux Clang job 2024-07-25 18:35:57 -06:00
Andrew Kaster
68ce5f8290 Ladybird/AppKit: Port TaskManager window to Swift
This is just a direct port of the Objective-C++ code to Swift 6.
A future patch should probably update it to actually use SwiftUI.
2024-07-21 15:55:47 -06:00
Timothy Flynn
7c813d3992 Meta+CI: Hook up the Lagom tools build with vcpkg
AK will depend on some vcpkg dependencies, so the Lagom tools build will
need to know how to use vcpkg. We can do this by sym-linking vcpkg.json
to Meta/Lagom (as vcpkg.json has to be in the CMake source directory).
We also need a CMakePresets.json in the source directory, which can just
include the root file. The root CMakePresets then needs to define paths
relative to ${fileDir} rather than ${sourceDir}.
2024-07-18 14:46:25 +02:00
Dennis Camera
033057683c Everywhere: Don't install code generators and test binaries 2024-07-10 10:13:21 -06:00
Daniel Bertalan
9df41954c0 CI: Use Xcode's Clang in the macOS workflows
Most users will be building with Xcode Clang on macOS anyway, as our
build scripts default to the system compiler if it's new enough. We
already have an upstream Clang-based workflow on Linux, so we won't lose
any compiler coverage by switching to Apple Clang on macOS.

This should help us avoid build breakages like #186.
2024-06-23 10:39:53 -06:00
Andrew Kaster
bf3c11229f CMake: Create a set of vcpkg overlay triplets for sanitizers
This changes the Sanitizer configs to build all the vcpkg dependencies
with our specified CFLAGS and CXXFLAGS for ASAN and UBSAN.

Unfortunately, we can't yet enable actually compiling them with
sanitizers enabled, because this causes test failures that need to be
investigated.
2024-06-18 04:47:57 -06:00
Andrew Kaster
9f25dc6b09 CMake+CI: Remove BUILD_LAGOM=OFF option in favor of LAGOM_TOOLS_ONLY=ON
The far more common configuration for Ladybird is to always build the
Lagom libraries.
2024-06-08 07:58:11 +02:00
Andrew Kaster
bffdd280bf CI: Create and use a GitHub Actions cache for vcpkg 2024-06-07 11:15:48 -04:00
Andrew Kaster
f55f64755d CMake: Remove ENABLE_LAGOM_LIBWEB and ENABLE_LAGOM_LADYBIRD options 2024-06-06 12:51:14 -06:00
Timothy Flynn
b36ab480bf Meta+Toolchain+CI: Add a script to bootstrap vcpkg
And hook it into ladybird.sh for convenience. The script will set up
PATH and other environment variables automatically.

On CI, vcpkg is theoretically already installed on Linux machines, but
not with the right environment variables, and not on macOS. So this also
makes CI use this script to bootstrap vcpkg.
2024-06-06 11:27:03 -04:00
Andrew Kaster
e8b6de51fe CI: Adapt to new top-level CMakeLists 2024-06-04 13:44:22 -06:00
Timothy Flynn
bdbe2fdcc5 Everywhere: Replace SERENITY_SOURCE_DIR with LADYBIRD_SOURCE_DIR
In order to have checkouts of both SerenityOS and Ladybird, we need to
use a different environment variable for Ladybird.
2024-06-03 15:57:59 +02:00
Andrew Kaster
d334b2b57f CI: Work around unexpected GCC WPT failures 2024-06-03 10:55:04 +02:00
Tim Ledbetter
5863ef852d Meta: Remove references to unused utilities 2024-06-03 10:53:53 +02:00
Timothy Flynn
5e34a41f06 CI: Be a bit less paranoid about old compiler versions existing
We explicitly tell CMake what compiler to use. No need to remove older
versions, which was just one extra thing we needed to maintain.
2024-05-15 15:20:29 -06:00
Timothy Flynn
0887dbfd80 CI: Move the nightly Lagom GCC CI to GitHub actions 2024-05-10 16:07:23 -04:00
Timothy Flynn
18b857fb64 CI: Convert the Lagom workflow into a reusable workflow
This will allow using the lagom-template.yaml file as a template for
the nightly GCC pipeline.
2024-05-10 16:07:23 -04:00