Commit graph

391 commits

Author SHA1 Message Date
Jelle Raaijmakers
76192e6ae7 CI: Do not insinuate PRs can be reopened in stalebot's close message
Elevated permissions are required to do so. Contributors can create a
new pull request based on their branch instead.
2025-01-16 23:40:19 +01:00
Jelle Raaijmakers
81eb66c6eb CI: Remove conditional execution based on changed paths
Originally we used the `paths-ignore` feature to skip the Lagom jobs if
no source code was changed. Afterwards, we enabled the 'required checks'
feature to prevent merging pull requests that have failing checks.
Unfortunately, marking a check as required means it always needs to be
successfully executed, even if a conditional caused it to be skipped.

By using the `paths-filter` action we were able to add the conditional
to the job instead, theoretically causing the 'required checks' feature
to start working again for documentation-only changes. As it turns out,
not the job, but the steps should get the new conditionals.

As that requires adding an `if` to every individual step and the
conditional execution has caused enough headaches since its
introduction, let's remove it for now and take the unfortunate execution
of CI jobs for granted.
2025-01-13 15:44:35 +01:00
Timothy Flynn
66732d2203 Meta: Switch to clang-format-19 as the standard formatter 2024-12-28 05:39:32 -08: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
Jelle Raaijmakers
03aafda788 CI: Post comment when PR has a merge conflict
Switch out the action with another one that actually supports posting
comments :^)
2024-12-17 07:07:16 -08:00
Jelle Raaijmakers
25e05e76c4 CI: Remove always() from job conditionals
These jobs have no dependencies on other jobs, nor should they be
uncancelable.
2024-12-17 05:20:58 -08:00
Jelle Raaijmakers
cf9bf59550 CI: Remove branch conditional from nightly Android build
Apart from the fact that this workflow is failing every time, we don't
need to check the branch we're on since it's only invoked for the
default branch of the repository. We can also remove the `always()`
since there are no job dependencies nor do we want this to be
uncancelable.
2024-12-17 05:20:58 -08:00
Jelle Raaijmakers
b00bb05b6b CI: Refactor branch matching in jobs
Matching `master` can be a bit simpler and prevent invoking the job
altogether. Additionally, we don't need an `always()` here: we don't
have job dependencies and we want these jobs to be cancelable.
2024-12-17 05:20:58 -08:00
Jelle Raaijmakers
8ddd9ea5f4 CI: Convert paths-ignore into separate job that checks changed paths
We need to invoke the CI jobs every time, even if nothing relevant has
changed, because we marked them as required status checks for PRs. If
they are not invoked, the associated status checks remain in a 'pending'
state indefinitely not allowing us to (auto-)merge the PR.
2024-12-17 05:20:58 -08:00
Jelle Raaijmakers
1b01464e41 CI: Add permissions to merge conflict labeler
This was not necessary in my own test repository, but maybe we need it
here regardless.
2024-12-17 13:58:34 +01:00
Jelle Raaijmakers
9ccaa3b7eb CI: Automatically label PRs with merge conflicts
This action adds and removes the new "conflicts" label to indicate
whether a pull request is in need of conflict resolution. This both
automatically informs the author of the PR that this is the case, if
they have notifications enabled that is, and makes for an easier
evaluation of the PR queue.
2024-12-17 13:53:23 +01:00
dependabot[bot]
4559af6ef5 CI: Bump JamesIves/github-pages-deploy-action from 4.6.9 to 4.7.2
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.9 to 4.7.2.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.9...v4.7.2)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-10 09:53:23 +01:00
Jelle Raaijmakers
4c6cb13f7f CI: Make stalebot actually close PRs after 30 days
Now stalebot has run to completion on notifying stale PRs, we can
enable its PR closing behavior.
2024-12-07 22:09:45 +01:00
Jelle Raaijmakers
681531d0e5 CI: Increase stalebot operations per run to 500
No need to limit ourselves to 30 API calls per run :^)
2024-12-07 22:07:15 +01:00
Jelle Raaijmakers
ea58dbd507 CI: Set actions permission for stalebot
The stale action has a weird interaction with the cache which requires
the `actions: write` permission. Without this, it is unable to overwrite
any existing cache key.
2024-12-07 21:58:53 +01:00
Jelle Raaijmakers
3da855e0cc CI: Fix Stalebot not progressing on PRs between runs 2024-12-07 21:43:06 +01:00
Jelle Raaijmakers
643eb1c2a6 CI: Configure stale bot for PRs
We want to remind both contributors and maintainers that PRs should be
up-to-date, reviewed and merged. Stale bot does a pretty good job of
notifying the right people :^)
2024-12-07 21:12:17 +01: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
rmg-x
d389fb440f CI: Ignore changes to Documentation related files
This will prevent CI from running if:
- the only changes included are under the Documentation folder, or
- the only changes included are *.md files in the root

See:
https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#example-excluding-paths
2024-11-23 10:44:54 +01:00
Timothy Flynn
bc846d933d CI: Use correct path to upload ref test dumps 2024-11-22 09:57:27 +01:00
dependabot[bot]
d796f609db CI: Bump JamesIves/github-pages-deploy-action from 4.6.8 to 4.6.9
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.8 to 4.6.9.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.8...v4.6.9)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-12 10:47:51 +01:00
Timothy Flynn
db47cc41f8 Everywhere: Move the Ladybird folder to UI 2024-11-10 12:50:45 +01:00
Timothy Flynn
93712b24bf Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Timothy Flynn
f9df95af50 CI: Use clang for js artifacts on Linux
We have optimizations that only work with clang (namely, our use of
FLATTEN in the bytecode interpreter).
2024-11-08 11:29:18 -07:00
Timothy Flynn
74fe899d79 CI: Use the distribution release configuration for js artifacts 2024-11-08 11:29:18 -07: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
80c6268431 Meta+LibJS: Upgrade to prettier version 3.3.3
Prettier v3 was released over a year ago, and most users will have it by
default by now.
2024-11-06 15:10:27 -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
Andrew Kaster
c4f7361a5b Meta: Add a vcpkg cache to the devcontainer
This also means that the prebuilt devcontainer will have a populated
vcpkg binary cache, speeding up the first build by a lot.
2024-10-14 15:55:23 -06: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
c412181683 CI: Switch Linux runners to Ubuntu 24.04 2024-10-02 06:41:20 -04:00
Jelle Raaijmakers
5661da78a4 CI: Use explicit label for test262 workflow
Merely specifying `self-hosted` is not enough - to get closer to
reproducible timings, we want these jobs to run on dedicated hardware.
The `test262-runner` label was introduced for runners that offer this.
2024-10-02 06:40:27 -04:00
Andrew Kaster
2575cfb14c CI: Convert lint job to macOS and install swift-format
swift-format is only packaged for homebrew, Arch, and nixpkgs at the
moment. Rather than installing swiftly and a swift toolchain, let's
change the job to run on macOS.
2024-10-01 13:33:05 -06:00
dependabot[bot]
3385eb43f4 CI: Bump JamesIves/github-pages-deploy-action from 4.6.4 to 4.6.8
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.4 to 4.6.8.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.4...v4.6.8)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-01 10:14:34 -06:00
Timothy Flynn
39accee863 CI: Install rsync on the test262 runner
It is now failing with the following error:

     Unable to locate executable file: rsync.
2024-09-19 14:54:20 -04:00
dependabot[bot]
25e5ccd376 CI: Bump JamesIves/github-pages-deploy-action from 4.6.3 to 4.6.4
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.3 to 4.6.4.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.3...v4.6.4)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-03 10:14:43 -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
0dd8fe1f0f CI: Run the clang plugins during PR workflows 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