Commit graph

716 commits

Author SHA1 Message Date
Andrew Kaster
cd333fe3e9 CI: Use Blacksmith cache action only on Blacksmith runners
Their cache action only works on their runners. For jobs that run on
other runners, we have use the default cache action. At least until they
update their cache product to work or fallback on other runners.
2025-05-27 17:42:25 -06:00
Jelle Raaijmakers
922bf2033f CI: Use Blacksmith's drop-in replacement for actions/cache
Their caches have better locality with their own runners and offer
higher potential throughput speeds (up to 400 MB/s).
2025-05-27 12:10:55 +02:00
Jelle Raaijmakers
090a7a90c3 CI: Switch over remaining runners to Blacksmith.sh
Everything that's not self-hosted or macOS is now pointing to
Blacksmith.sh. Nightly jobs and JS artifact builds use 8VCPU machines,
while regular integration builds & tests use 16VCPU machines.
2025-05-27 12:10:55 +02:00
Jelle Raaijmakers
8e9bf01917 CI: Rename os input to runner
This more clearly describes what the value is being used for, and avoids
some confusion between `os` and `os_name` in `lagom-template.yml`.
2025-05-27 12:10:55 +02:00
Jelle Raaijmakers
08b81b37b1 CI: Reindent inputs in lagom-template.yml 2025-05-27 12:10:55 +02:00
Jelle Raaijmakers
be766ecb30 CI: Switch over some workflows to Blacksmith.sh runners
The people over at Blacksmith.sh have generously offered usage of their
runners for our organization, so let's try to switch over some simple
workflows. The runners should be drop-in replacements.
2025-05-27 09:50:24 +02:00
Jelle Raaijmakers
47e1aa054b CI: Use explicit run IDs to download JS binary and call webhook
When we try to retrieve benchmark results in the webhook call, we cannot
use the `head_sha` parameter since the workflow run might have a
different `head_sha` associated with it than the upstream workflow run.
This can happen when the JS repl binary workflow runs, a new commit is
pushed to master, followed by a JS benchmarks workflow run causing this
latter run to be associated with a different commit ID.

This extends the webhook payload to include the current run ID, which
can eventually be used by the webhook script to specifically download
the benchmark results associated with the current run.

Additionally, this changes the JS artifact download to use the upstream
run ID which seems nicer to do anyway.
2025-05-26 17:18:40 +02:00
Timothy Flynn
9e8336c04f Meta: Lint python files with black
It's the industry standard nowadays. This also lets us add a flag to the
lint-python.sh script to overwrite our python files in place.
2025-05-22 16:21:42 +02:00
Andrew Kaster
811d53d295 CI: Add nightly Windows CI job
This job uses the windows_ci_ninja preset to build just the
components and unit tests that are known to work with ClangCL on the
amd64-pc-windows-msvc target triple.

As a nightly job, its failures are non-blocking for any PRs, though
they should be fixed eventually or the job will get turned off by
email-annoyed maintainers.
2025-05-21 15:57:59 -06:00
Timothy Flynn
47569c1714 CI: Do not install clang in the JS benchmarks workflow
It's not needed. This is primarily to reduce the number of places needed
to be updated on the next clang rollout.
2025-05-15 18:53:49 +02:00
Jelle Raaijmakers
9f044cb547 CI: Only add LLVM repository if it is missing
For our js-benchmarks and libjs-test262 workflow runs, we already know
that they're provisioned with these repositories and can skip adding the
key and repo altogether.
2025-05-15 15:13:55 +02:00
Jelle Raaijmakers
44db17f273 CI: Switch from wget to curl
We were using both wget and curl arbitrarily; use curl exclusively since
that is installed by default on our machines and containers. Fixes the
js-benchmarks workflow.
2025-05-15 14:22:38 +02:00
Andrew Kaster
09ed4bd265 CI: Manually add apt repo for llvm 20 to all relevant jobs 2025-05-14 19:43:52 -04:00
Timothy Flynn
d30f6f1b11 Meta: Switch to clang-format-20 as the standard formatter 2025-05-14 02:01:59 -06:00
Timothy Flynn
70d2b0b6f3 CI: Update the Clang pipeline to Clang 20 2025-05-14 02:01:59 -06:00
Timothy Flynn
a65bbae4c9 CI: Update the GCC pipeline to GCC 14
Although GCC 15 is released, it is not available on Ubuntu 22.04 LTS via
the ubuntu-toolchain-r/test PPA.
2025-05-14 02:01:59 -06:00
Timothy Flynn
85ee56a702 CI: Use clang for the test262 build
We currently have optimizations that apply only to clang, so we might as
well make use of them.
2025-05-14 02:01:59 -06:00
Timothy Flynn
3d59efa7e1 CI: Use clang for the fuzzer's lagom tools build
It's kind of weird to be mixing gcc and clang here.
2025-05-14 02:01:59 -06:00
Andrew Kaster
fc6237325b CI: Install clang-tools-19 to ensure clang-scan-deps is available 2025-05-12 03:22:23 -06:00
Andrew Kaster
ac6b99800b CI: Bump swift snapshot to main-snapshot-2025-04-30 2025-05-09 23:14:27 -06:00
rmg-x
d64e6abe08 CI+Toolchain: Remove unnecessary BuildVcpkg.sh
This script was rewritten in Python in commit:
c92d9cce42

Since it just executes the Python anyway, remove it and do that in CI
ourselves.
2025-04-29 16:34:24 +01:00
Andrew Kaster
6eb0e9ab38 CI: Use a raw actions/cache step for vcpkg instead of the x-gha source
This is a workaround for the deprecation of the cache v1 REST API that
was replaced with a new protobuf RPC based API this month. vcpkg was
using the private cache backend API without the knowledge of the GitHub
actions team, and was thus broken by the deprecation.

While we wait for Microsoft to talk to Microsoft to get this feature
restored, we can use the raw actions/cache step to get almost the same
cache behavior. The only difference is that the cache will be less fine
grained than the per-package cache that VCPKG_BINARY_SOURCES of x-gha
was giving us before.
2025-04-24 17:40:39 -06:00
Andrew Kaster
3c45d155a6 CI: Bump swiftly toolchain version to main-snapshot-2025-04-12
The latest snapshot includes some bug fixes that are required in order
to include LibWeb-Swift.h in our C++ files.
2025-04-16 09:02:27 -06:00
Jelle Raaijmakers
edaac0f2ee CI: Add missing event key to JS benchmarks workflow 2025-04-15 14:23:27 +02:00
Jelle Raaijmakers
1b4a4b0225 CI: Use workflow run's event commit SHA for JS benchmarks
Chaining workflows does not cause the subsequently spawned workflow runs
to use the same event, but rather it uses the latest head SHA based on
the branch it runs on. This would cause the JS benchmarks jobs to not be
able to find artifacts (if a new JS repl workflow was started before the
previous one could finish) and/or assign the wrong commit SHA to the
benchmark results.

Since `github.event` contains information about the original workflow
run that spawned the JS benchmarks jobs, we can take the commit SHA from
there and use it to download the correct artifact.
2025-04-15 13:53:07 +02:00
Jelle Raaijmakers
1f81f75add CI: Remove concurrency configuration for JS artifacts and benchmarks
We had concurrency set on the JS artifacts and JS benchmarks workflows
causing them to not run in parallel for the same combination of
(workflow, OS name). You'd expect that this causes a FIFO queue to exist
of the jobs to run sequentially, but in reality GitHub maintains a
single job to prioritize and cancels all others. We don't want that for
our artifacts and benchmarks: we want them to run on each push.

For example, a new push could have workflows getting cancelled because
someone restarted a previously failed workflow, resulting in the
following message:

  "Canceling since a higher priority waiting request for [..] exists"

By removing the concurrency setting from these workflows, we make use of
all available runners to execute the jobs and potentially run some of
them in parallel. For the benchmarks however, we currently only have one
matching self-hosted runner per job, and as such they are still not run
in parallel.
2025-04-15 12:47:45 +02:00
Jelle Raaijmakers
d616ab0d95 CI: Remove EOL escapes from single quoted string in js-benchmarks
Don't need these, they mess up the JSON payload.
2025-04-15 10:55:05 +02:00
Jelle Raaijmakers
612b0cdddd CI: Add architecture to js-benchmarks webhook callback 2025-04-15 10:55:05 +02:00
Jelle Raaijmakers
8eb16633fe CI: Fix SHA-256 signature in webhook callback for js-benchmarks workflow 2025-04-14 17:09:41 +02:00
Jelle Raaijmakers
e18e7d6019 CI: Simplify workflow name for js-benchmarks.yml
No need to state 'Run the' part.
2025-04-14 14:15:49 +02:00
Jelle Raaijmakers
e6f674fb7f CI: Run benchmarks on macOS as well
This introduces a matrix for the js-benchmarks workflow and runs both
the Linux x86_64 and macOS arm64 JS repl builds against our benchmarks
repository.
2025-04-14 14:15:49 +02:00
Jelle Raaijmakers
4600f9a5b0 CI: Call benchmarks webhook with curl instead of a dedicated action
The workflow-webhook action that was being used didn't work on macOS or
machines without Docker, so let's create the payload ourselves, sign it
and send it over using plain old `curl`.
2025-04-14 14:15:49 +02:00
Jelle Raaijmakers
458c96727c CI: Install pkg-config in setup
We have this package listed in our build instructions but did not
install it for CI, causing some errors on new/clean runners.
2025-04-14 14:15:49 +02:00
Jelle Raaijmakers
4014930278 CI: Select XCode 16.3 for macOS builds
This is the version running on our self-hosted Mac runner.
2025-04-14 14:15:49 +02:00
Andrew Kaster
67848a8c51 CI: Add nightly Swift jobs for both Linux and macOS 2025-04-03 16:47:48 -06:00
Andrew Kaster
382b574946 CI: Rework Swift build to be a separate job from normal macOS builds 2025-04-03 16:47:48 -06:00
Andrew Kaster
345cd6b9c9 CI: Add setup steps to install swift toolchain from swiftly
Now that swiftly 1.0.0 is available, we can use it to install main
snapshot toolchains on both Linux and macOS.
2025-04-03 16:47:48 -06:00
Andrew Kaster
c85043f2e1 CI: Bump CI Xcode version to 16.2 2025-04-03 16:47:48 -06:00
Andrew Kaster
3fcef0c519 Revert "CI: Temporarily install CMake 3.x"
This reverts commit c5c3859205.
2025-04-03 08:03:48 -06:00
Timothy Flynn
b64d450f32 CI: Set correct architecture for JS artifact builds 2025-04-01 16:49:28 -04:00
Timothy Flynn
c5c3859205 CI: Temporarily install CMake 3.x
Many vcpkg dependencies do not work with CMake 4.x, which GitHub Actions
now bundles by default. Install the latest 3.x from Kitware for now.
2025-04-01 20:49:03 +02:00
Jelle Raaijmakers
2794ed0c73 CI: Do not cancel in-progress JS artifact builds
It might be useful to have these artifacts, even for older commits. As
an added bonus, this causes the JS benchmarks to run as well giving us
more datapoints.
2025-03-27 23:58:21 +00:00
Jelle Raaijmakers
a0f3099333 CI: Make JS Benchmarks use the JS repl from the job with the same commit
In practice this does not make a big difference, but technically it
could happen that a second JS Repl artifact was built before the first
JS Benchmarks job is executed. So make sure to filter on commit ID.
2025-03-26 11:22:54 +00:00
Jelle Raaijmakers
582084e74e CI: Call webhook as soon as new JS benchmark results are in 2025-03-24 12:49:30 +01:00
Jelle Raaijmakers
b11064c0ae CI: Reduce js-benchmarks artifact retention to 90 days
This is GitHub's default maximum. Prevents generating a warning on each
workflow run.
2025-03-24 01:20:00 +01:00
Jelle Raaijmakers
2752e01fe7 CI: Add js-benchmarks workflow
This workflow starts after a successful js-artifacts workflow, picks up
the JS repl binary and runs our js-benchmarks tool. It does not yet
publish or otherwise store the benchmark results, but it's a start!
2025-03-22 13:05:43 +01:00
Jelle Raaijmakers
8671b0568d CI: Rename ladybird-js-artifacts to js-artifacts
Everything is Ladybird in this repository :^)
2025-03-22 13:05:43 +01:00
Jelle Raaijmakers
01031bcccb Revert "CI: Only run builds after successful linting"
This reverts commits bf333eaea2 and
6f69a445bd.

The commit linter needs to run on event `pull_request_target` to have
access to its secret token, which means we cannot have a dependency on
that job from another workflow that is run as a result of the
`pull_request` event.

Additionally, the linters were no longer run for first-time
contributors. This isn't a huge problem but it was nice that a
preliminary check took place before running the full CI on their PRs.
2025-03-21 00:02:44 +01:00
Jelle Raaijmakers
bf333eaea2 CI: Only run commit linter for pull requests, not pushes
This requires us to always run the CI job and check the individual jobs'
results, since only having `needs:` will not work when `lint_commits` is
potentially skipped.
2025-03-20 11:39:29 +01:00
Jelle Raaijmakers
6f69a445bd CI: Only run builds after successful linting
We can prevent running builds unnecessarily by requiring the linters to
succeed first. If either the code or commit linter fails, it means the
author of the PR needs to rework their branch and after pushing their
changes, we need to do a full new CI run anyway.
2025-03-20 11:14:56 +01:00
Jelle Raaijmakers
ea8213f7fa Meta: Add Open Collective to FUNDING.yml 2025-03-20 10:00:02 +01:00
dependabot[bot]
e5966eed08 CI: Bump JamesIves/github-pages-deploy-action from 4.7.2 to 4.7.3
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.7.2 to 4.7.3.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.7.2...v4.7.3)

---
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>
2025-02-25 08:42:16 +01:00
Andrew Kaster
893e9e3eac CI: Add nightly builds for the Distribution preset 2025-02-21 12:05:18 +01:00
Andrew Kaster
d64566f19e CI: Add a nightly arm64 linux CI build
This requires setting VCPKG_FORCE_SYSTEM_BINARIES to 1, per vcpkg
documentation.
2025-02-21 12:05:18 +01:00
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
InvalidUsernameException
e51f062d6b CI: Install optipng for the lint workflow
PNG size check was silently skipped in CI because optipng was not
installed in the runner.
2025-02-12 17:37:42 +00:00
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
Jelle Raaijmakers
ccd5b5a705 CI: Select Xcode 16.1 explicitly instead of latest-stable
What `latest-stable` means exactly also depends on the image version
we're running the workflow on, and unfortunately this can vary wildly
between GitHub runners.

Fixate the version to 16.1 for now. This version will need to be updated
as soon as we want to increase the minimum supported compiler version.
2024-12-12 18:39:37 +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
950e819ee7 Everywhere: Hoist the Utilities folder to the top-level 2024-11-10 12:50:45 +01:00
Timothy Flynn
22e0eeada2 Everywhere: Hoist the Services 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
Andrew Kaster
f4124c7f40 CI+DevContainer+Documentation: Remove install steps for ffmpeg libs 2024-11-08 11:10:31 -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
sideshowbarker
d9124c8058 GitHub: Fix grammar error/typo in bug_report.yml issue template 2024-10-31 10:25:27 +01:00
sideshowbarker
8d52c72b3a GitHub: For issue reports, move to using structured template
This change helps to ensure issue authors include the details needed to
reproduce problems — including repro steps, expected behavior, a reduced
test case, and logs/backtrace.
2024-10-31 09:18:08 +01: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
6ee1c4c634 CI: Install pyyaml from pip
Homebrew has disabled the pyyaml package for some reason.
2024-10-06 09:42:35 -04:00
Timothy Flynn
c412181683 CI: Switch Linux runners to Ubuntu 24.04 2024-10-02 06:41:20 -04:00
Timothy Flynn
04b45a8961 CI: Switch to the stable Xcode 16 toolchain
We had to use beta before Xcode 16 was officially released, but we can
now use the stable version.
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
Jelle Raaijmakers
57783eff24 LibMedia: Convert OggLoader into generic FFmpegLoader
This loader supports whatever format libavformat and libavcodec can
handle. Currently only seekable streams are supported, and we still have
some limitations as to the number of channels and sample format.

Plays all non-streaming audio files at:

  https://tools.woolyss.com/html5-audio-video-tester/
2024-09-30 18:48:12 +02: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
Jelle Raaijmakers
1b267abf36 LibMedia: Link to avformat as well
This allows us to process container formats in future commits.
2024-09-12 10:01:19 +02: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
Tim Ledbetter
4771a08d27 CI: Update MacOS runner XCode version 2024-08-20 21:56:41 -04:00
Tim Ledbetter
681c0b5d1b CI: Update MacOS runner XCode version 2024-08-20 15:07:02 +01: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
cb55f65328 Meta: Add a script and CMake function to generate a clang module map
In theory the clang module map should not have absolute paths for the
headers. Other Swift projects seem to use the -ivfsoverlay feature of
clang to work around this, but it seems difficult to get to work.
2024-08-06 18:28:10 -06:00
dependabot[bot]
0743afbb3c CI: Bump gradle/actions from 3 to 4
Bumps [gradle/actions](https://github.com/gradle/actions) from 3 to 4.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-06 17:06:40 -06: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
sideshowbarker
1d03944a9c CI: Make notes-push workflow return zero even when “git push” fails
It’s possible but unlikely that a push of generated notes back to the
remote can fail with a message like

> [remote rejected] ... cannot > lock ref 'refs/notes/commits': is at
> f3648f50bb but expected 47686bf473

See https://github.com/LadybirdBrowser/ladybird/actions/runs/10054314539

So this change makes the call to “git push” for notes not return 0 even
if it fails — because it’s not actually a fatal error when it happens,
and not something we need to stop and fix. Instead, it fixes itself.

Specifically: If one CI job for a PR merge/push to master generates
some notes but fails to push them to the origin, the notes don’t get
dropped on the floor and lost.

Instead, the notes-generator tool looks at the entire history; and if it
finds commits that don’t have notes — even if those commits are not part
of the PR push/merge it’s operating on — it generates notes for those.

In other words, if notes for one PR push/job fail for some reason to get
pushed back to the remote, they get regenerated by the next PR push/job.
2024-07-23 11:47:55 +02:00
Timothy Flynn
40a617dbab CI: Remove a couple unneeded system dependencies
libqt6svg6-dev - We don't use Qt's SVG support any longer.

qt6-multimedia-dev - We already install libpulse-dev, so the Qt6
multimedia package is unused.
2024-07-23 08:59:05 +02:00
Timothy Flynn
5b38057802 CI+Documentation: Alphabetically sort system dependencies 2024-07-23 08:59:05 +02: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
Tim Ledbetter
ba56cb6e51 CI: Use single quotes for a literal string in notes-push.yml 2024-07-21 13:25:33 +02:00
sideshowbarker
de66e2551f CI: Make the notes-push workflow not run in forks 2024-07-21 10:34:24 +02:00
sideshowbarker
4a2d5bcf89 CI: Make the notes-push.yml workflow fetch the entire repo history
This change makes the notes-push.yml·workflow fetch the entire history
on each push, rather than just the one HEAD commit it otherwise sees.

Because we push multiple commits from PR merges, git-gloss need access
on each push to an arbitrary number of commits (however many commits
were pushed in a PR that got merged). There’s no easy way from GH
Actions to know how may commits got pushed at the same time. So we
instead fetch the whole history.
2024-07-20 09:30:43 +02:00
sideshowbarker
7360f7fbc6 CI: Fix the permissions syntax for the notes-push.yml workflow 2024-07-20 06:40:02 +02:00
sideshowbarker
980ffd5e19 CI: Give the notes-push.yml workflow write permissions 2024-07-19 21:06:43 +02:00
sideshowbarker
fe3f1c743c CI: Add notes-push.yml, for updating commit Notes on push to master
This change, for each commit pushed/merged to master:

- causes new git Notes with GitHub PR/issue/reviewer/author links to be
  auto-generated for that commit

- pushes the updated refs/notes/commits tree+references back to the repo
2024-07-19 20:15:54 +02: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
fish4terrisa-MSDSM
5dde9cf327 CI: Fixed the broken steps in nightly-android 2024-07-11 23:26:05 -06:00
Dennis Camera
033057683c Everywhere: Don't install code generators and test binaries 2024-07-10 10:13:21 -06:00
Andreas Kling
0cdbcfd8b0 Meta: Add Donorbox link in FUNDING.yml 2024-07-10 08:12:39 +02:00
Timothy Flynn
f76f84d687 CI: Install nasm on the test262 runner 2024-07-09 20:08:38 -04:00
doctortheemh
4ef76f3198 LibGfx: Decode AVIF images
Use libavif to decode AVIF images in LibGfx.
2024-07-09 08:15:47 +02:00
dependabot[bot]
0b34a60307 CI: Bump JamesIves/github-pages-deploy-action from 4.6.1 to 4.6.3
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.1 to 4.6.3.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.1...v4.6.3)

---
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-07-08 18:02:28 -06:00
Andrew Kaster
62268cca9e CMake: Add ENABLE_GUI_TARGETS option to enable disabling GUI components
This is useful when, e.g. building the test262 runner on its own.
2024-07-07 09:51:29 -06:00
Andrew Kaster
22d7aa53fa Meta: Tell vcpkg we don't need to build vulkan-loader
Trying to build VulkanLoader from source is a giant headache of
unnecessary packages. Every modern distro has vulkan packages, let's
depend on those instead of trying to build something for both wayland
and X11.
2024-07-07 09:51:29 -06:00
Andrew Kaster
d176ed30df CI: Add x11 dependencies for vulkan vcpkg dependencies to test262 job 2024-07-06 15:50:48 -06:00
Andrew Kaster
bd97442771 Meta: Add vulkan and vulkan-headers to vcpkg dependencies
Also require a specific ICU version to not run into unexpected problems.
2024-07-06 01:44:58 +02:00
Tim Schumacher
0c4f257021 Meta: Remove myself from CODEOWNERS
I don't expect Ladybird to be the upstream of any of these, so it's not
much use to be notified on any unrelated changes.
2024-06-29 20:26:20 -06:00
Timothy Flynn
bd73dd316d LibTimeZone: Remove LibTimeZone and TZDB data
All users have been ported to the ICU implementation.
2024-06-26 10:14:02 +02:00
Andrew Kaster
29665f51aa CI: Rename JS repl artifacts so they can actually be bundled 2024-06-25 17:27:08 -06:00
Zaggy1024
81001b37ce LibMedia: Use FFmpeg to decode more video formats
VP9 continues to function, but this also allows AV1 to be decoded. With
this commit, H.264 is still non-functional, as the decoder requires
some extra initial data from the track definition in the Matroska file.
2024-06-24 12:41:32 -06:00
circl
e5018d2a7a Utilities: Remove zip and unzip
They are not even being compiled
2024-06-24 09:45:41 -06:00
Andreas Kling
23b5e47b7b Meta: Update Polar link in FUNDING.yml 2024-06-24 17:42:48 +02:00
Timothy Flynn
ebdb92eef6 LibUnicode+Everywhere: Merge LibLocale back into LibUnicode
LibLocale was split off from LibUnicode a couple years ago to reduce the
number of applications on SerenityOS that depend on CLDR data. Now that
we use ICU, both LibUnicode and LibLocale are actually linking in this
data. And since vcpkg gives us static libraries, both libraries are over
30MB in size.

This patch reverts the separation and merges LibLocale into LibUnicode
again. We now have just one library that includes the ICU data.

Further, this will let LibUnicode share the locale cache that previously
would only exist in LibLocale.
2024-06-23 19:52:45 +02: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
527632f416 CI: Re-enable libjs-test262 and test-wasm runs 2024-06-22 11:10:15 -04:00
Andrew Kaster
79db3b32c2 CI+Meta: Delete wasm workflow and js_repl module 2024-06-22 11:10:15 -04:00
Andrew Kaster
4ea2ff82ac CI: Use ladybirdbrowser namespace for devcontainer
This was missed in the ladybirdwebbrowser -> ladybirdbrowser org change.
2024-06-22 11:10:15 -04:00
Timothy Flynn
9220a89d2f CI+LibUnicode: Remove the UCD from the system 2024-06-22 14:56:39 +02: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
Timothy Flynn
7ecca42898 CI: Restore the code linting job
Unlike in Serenity, let's just run this job once per PR rather than on
every job. This lets us install fewer dependencies on the build-and-test
pipelines.
2024-06-16 15:30:28 -04:00
Timothy Flynn
6675ef3f24 CI+LibLocale: Remove the CLDR from the system 2024-06-16 06:57:08 +02:00
Timothy Flynn
28927d6a0f CI: Release only arm64 JS artifacts on macOS for now
Turns out vcpkg does not yet support Universal binaries. While they are
working on it, lets produce arm64 binaries only for now to unblock the
pipeline.
2024-06-09 22:20:15 -04:00
Andreas Kling
c096608dd9 Meta: Update for GitHub org rename to LadybirdBrowser 2024-06-09 13:02:56 +02:00
Diego
5f66e31e56 CI+Documentation: Use WABT version 1.0.35
Required for `wast2json` to work with latest spec-tests.
2024-06-09 12:16:17 +02:00
Timothy Flynn
221507c567 LibLocale: Install ICU package and link into LibLocale
Rather than removing LibLocale entirely, we will use it as a wrapper
around ICU (which has some C-like interfaces, and uses UTF-16 for its
string types). Using ICU will provide better web compatibility overall,
and will let us implement features we were previously unable to (e.g.
Intl.Collator requires data that is not in the JSON export of the CLDR).
2024-06-09 10:47:28 +02: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
Timothy Flynn
18abd54247 CI: Fix syntax in the JS artifacts pipeline 2024-06-07 16:35:17 -04: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
8362c073f3 Everywhere: Remove LibSQL, SQLServer, and the sql REPL :^)
It is now entirely unused and replaced by sqlite3.
2024-06-06 11:27:03 -04: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
Andreas Kling
d0afc3e643 CI: Remove "label pull requests" action 2024-06-05 10:49:45 +02:00
Andrew Kaster
e8b6de51fe CI: Adapt to new top-level CMakeLists 2024-06-04 13:44:22 -06:00
Andreas Kling
baf7a2dee7 CI: Update lint-commits workflow to say Ladybird 2024-06-04 09:32:07 +02: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
Tim Ledbetter
319496eb70 Meta/CI: Remove unnecessary github-token usage from lintcommits script 2024-06-03 13:31:15 +02:00
Andrew Kaster
d334b2b57f CI: Work around unexpected GCC WPT failures 2024-06-03 10:55:04 +02:00
Andreas Kling
e70d96e4e7 Everywhere: Remove a lot more things we don't need 2024-06-03 10:53:53 +02:00
Andreas Kling
2936a9a45e Meta/CI: Give actions/github-script access to ladybird-bot token 2024-06-03 10:53:53 +02:00
Andreas Kling
4907eb1950 Meta/CI: Use LADYBIRD_BOT_TOKEN to post as ladybird-bot on GitHub 2024-06-03 10:53:53 +02:00
Andrew Kaster
72cdd1892b CI: Remove remnants of old setup action that was preventing macOS builds 2024-06-03 10:53:53 +02:00
Tim Ledbetter
5863ef852d Meta: Remove references to unused utilities 2024-06-03 10:53:53 +02:00
Tim Ledbetter
3e56835611 Everywhere: Remove references to non-existent paths 2024-06-03 10:53:53 +02:00
Andrew Kaster
6d3a54e4a8 Meta: Update Documentation and CI for repo move 2024-06-03 10:53:53 +02:00
dependabot[bot]
6d0aa7e64e CI: Bump JamesIves/github-pages-deploy-action from 4.6.0 to 4.6.1
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.0 to 4.6.1.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.0...v4.6.1)

---
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-05-23 00:54:43 -06:00
Timothy Flynn
daa9e852c9 Toolchain+CI: Remove unused TRY_USE_LOCAL_TOOLCHAIN parameter
This was used to create a .tar of the built Clang toolchain, but now we
just upload the built toolchain artifacts (same as the GNU toolchain).
2024-05-15 15:20:29 -06: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
18f9efe92d CI: Explicitly install gcc-13 on CI
We're now getting errors on CI due to gcc-13 being missing. We can
probably be smarter about what packages we install, depending on the
workflow being run. But let's first unblock CI.

The error we get is a bit strange and inconsistent. Some CI runners seem
to already have gcc-13 installed. Others don't and can't find the gcc-13
package without the test Ubuntu toolchain PPA.
2024-05-15 15:20:29 -06:00
Liav A
5b34b4af14 Utilities: Merge the gunzip utility with gzip
Now both /bin/zcat and /bin/gunzip are symlinks to /bin/gzip, and we
essentially running it in decompression mode through these symlinks.

This ensures we don't maintain 2 versions of code to decompress Gzipped
data anymore, and handle the use case of gzipped-streaming input only
once in the codebase.
2024-05-14 12:35:25 -06:00
Timothy Flynn
0d7ea1bd2f CI: Remove the Sonar Cloud and PVS Studio workflow
Static analysis is great, but these workflows have not worked in a long
time, and no one was looking at the results. Our PVS Studio license and
our Sonar Cloud token have expired. Remove the workflows (at least for
now) so we don't waste CI runners and cache space. If someone is
motivated to revive these, they can revert this commit.
2024-05-11 15:43:18 -04:00
Timothy Flynn
9e22d9d957 CI: Update tool versions for the Sonar Cloud workflow
Upate to the latest version of the Sonar Cloud CLI. Update Java to a
recent version (the CLI currently complains about Java 11 being too
old).
2024-05-11 15:43:18 -04:00
Timothy Flynn
2f295f2174 CI: Exclude LibJS tests from Sonar Cloud's sources
Sonar Cloud throws an exception analyzing some of our test sources,
particularly ones that are meant to test invalid syntax.
2024-05-11 15:43:18 -04:00
Timothy Flynn
1f5d30cc83 CI: Use the correct output variable for skipping the toolchain build 2024-05-11 15:43:18 -04:00
Timothy Flynn
fffa4ef250 CI: Move the nightly Android CI to GitHub actions 2024-05-10 16:07:23 -04:00
Timothy Flynn
0887dbfd80 CI: Move the nightly Lagom GCC CI to GitHub actions 2024-05-10 16:07:23 -04:00
Timothy Flynn
7276d52a0e CI: Move the nightly Serenity code coverage 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
Timothy Flynn
ae6025987d CI: Convert the SerenityOS workflow into a reusable workflow
This will allow using the serenity-template.yaml file as a template for
the nightly code coverage pipeline.
2024-05-10 16:07:23 -04:00
Timothy Flynn
b3f43f330e CI: Inform the Lagom build where the UCD/CLDR/TZDB caches are downloaded 2024-05-10 16:07:23 -04:00
Timothy Flynn
a447b9bffd CI: Explicitly enable audio access on macOS 14
On the macOS 14 runners on GitHub actions, attempting to play audio (by
way of AudioOutputUnitStart) will open a pop-up asking for microphone
permission. This prevents any calling test to hang until they error out
with MACH_SEND_TIMED_OUT. This works around the issue by explicitly
enabling microphone access to all applications.
2024-05-08 14:46:39 -06:00
Timothy Flynn
b9210a757e CI: Move the Lagom CI to GitHub actions 2024-05-08 14:46:39 -06:00
Timothy Flynn
660e3ccb1c CI: Rename cmake.yml to serenity.yml
Just calling it "cmake" doesn't really describe what it is for, and a
future commit will add a lagom.yml. So let's call this serenity.yml to
make it clear that it tests SerenityOS itself.

This also renames the workflow, and updates some matrix orderings, to be
easier to distinguish between this job and the upcoming lagom.yml,
2024-05-08 14:46:39 -06:00
Timothy Flynn
ac8d5cce3c CI: Move the clang toolchain CI to GitHub actions 2024-05-08 14:46:39 -06:00
Timothy Flynn
c7828b0640 CI: Remove custom python setup
The only python on the CI machines is now python3. The python installed
by setup-python (which is CPython) seems to have issues running WPT.
2024-05-08 14:46:39 -06:00
Timothy Flynn
520667bda0 CI: Install the six python package
Needed for WPT.
2024-05-08 14:46:39 -06:00
Timothy Flynn
d7dc279ba8 CI: Add the extracted wabt package to the PATH
Unlike Azure, we can't just set the PATH environment variable in GitHub
Actions. We must add it using a special GITHUB_PATH file.
2024-05-08 14:46:39 -06:00
Timothy Flynn
d67b52853a CI: Use the correct value for the save-cache architecture on Lagom 2024-05-08 14:46:39 -06:00
Timothy Flynn
33cf9e68dd CI: Use the correct value for the toolchain ccache primary key 2024-05-08 14:46:39 -06:00
Dan Klishch
8d3eb937c8 Meta: Remove check-symbols.sh
check-symbols.sh had been dealing with libc.a which we don't provide
anymore.
2024-05-08 09:54:41 -06:00
Andrew Kaster
e5f361500e CI: Use common cache restore and cache save action on GitHub Actions
Unfortunately a composite action cannot have a `post:` step like
JavaScript actions are allowed to have, so we need to explicitly call
the post/save actions ourselves from the workflow file when we want to
save Toolchain/QEMU/ccache caches.

Co-Authored-By: Timothy Flynn <trflynn89@pm.me>
2024-05-07 15:28:46 -06:00
Timothy Flynn
3d6d2b2589 CI: Use the Setup action for the WASM REPL
This ensures we install ccache, for example.
2024-05-07 15:28:46 -06:00
Timothy Flynn
4f62066ad0 CI: Run brew update before installing macOS packages
This is needed to update brew's internal list of formulae, otherwise it
does not know about llvm-18.
2024-05-06 09:31:55 -06:00
Andrew Kaster
5aa28c31d5 CI: Use a local GitHub Action to setup installed packages 2024-05-02 06:22:10 -06:00
Timothy Flynn
823fdb83db Meta: Switch to clang-format-18 as the standard formatter 2024-04-24 16:50:01 -04:00
Timothy Flynn
90fcfca6f6 CI: Configure ccache before modifying its contents (if any)
If there is a cache miss while downloading the ccache from GitHub/Azure,
the .ccache directory won't exist when we try to update the modification
time of its contents. Configure the ccache size first, which will create
the .ccache directory if it doesn't exist.
2024-04-24 09:16:41 -04:00
Tim Schumacher
5f088f3233 Meta: Trim the CI ccache down to files used in the current build 2024-04-23 22:00:07 -04:00
Andrew Kaster
c5cd1ad737 CI: Use macOS 14 Apple Silicon runner to create js package for esvu 2024-04-23 15:37:07 -06:00
Andrew Kaster
2e385e4c12 CI: Bump Lagom CI builds to gcc-13 and clang-18
This includes Lagom Tools for Serenity builds, and the Lagom builds on
Azure.
2024-04-23 15:37:07 -06:00
dependabot[bot]
4eee9ee132 CI: Bump JamesIves/github-pages-deploy-action from 4.5.0 to 4.6.0
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.5.0...v4.6.0)

---
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-04-23 10:32:46 -06:00
Andrew Kaster
2a48eff2d6 CI: Enable KVM on Github Actions runners
https://github.blog/changelog/2024-04-02-github-actions-hardware-accelerated-android-virtualization-now-available/
2024-04-18 18:26:36 -06:00
Andreas Kling
660d6d0c85 Meta: Add Polar to FUNDING.yml
Let's advertise the fact that we allow sponsoring work on specific
issues via Polar rewards. :^)
2024-02-21 07:36:55 +01:00
Andreas Kling
1d29f9081f LibJS: Remove JIT compiler
The JIT compiler was an interesting experiment, but ultimately the
security & complexity cost of doing arbitrary code generation at runtime
is far too high.

In subsequent commits, the bytecode format will change drastically, and
instead of rewriting the JIT to fit the new bytecode, this patch simply
removes the JIT instead.

Other engines, JavaScriptCore in particular, have already proven that
it's possible to handle the vast majority of contemporary web content
with an interpreter. They are currently ~5x faster than us on benchmarks
when running without a JIT. We need to catch up to them before
considering performance techniques with a heavy security cost.
2024-02-19 21:45:27 +01:00
dependabot[bot]
f926d96c74 CI: Bump mymindstorm/setup-emsdk from 13 to 14
Bumps [mymindstorm/setup-emsdk](https://github.com/mymindstorm/setup-emsdk) from 13 to 14.
- [Release notes](https://github.com/mymindstorm/setup-emsdk/releases)
- [Commits](https://github.com/mymindstorm/setup-emsdk/compare/v13...v14)

---
updated-dependencies:
- dependency-name: mymindstorm/setup-emsdk
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 07:19:32 -07:00
dependabot[bot]
f1347bc4e0 CI: Bump actions/cache from 3 to 4
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 09:02:37 -05:00
Andrew Kaster
6ea4c248ab CI: Update comment-on-pr version
This new rev changes the Dockerfile to use a ruby 3 image, just like the
upstream repo.
2024-01-12 11:16:11 -07:00
Idan Horowitz
0befa77b99 CI: Update comment-on-pr version
The newer version installs a specific version of octokit, since the
latest version no longer supports the ruby installation in github
actions vms. This should resolve the CI issues.
2024-01-10 09:34:55 +01:00
dependabot[bot]
37f2d49818 CI: Bump github/codeql-action from 2 to 3
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-24 23:56:34 +01:00
dependabot[bot]
bbf37473b8 CI: Bump actions/upload-artifact from 3 to 4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-24 23:56:18 +01:00
dependabot[bot]
e5120ab389 CI: Bump actions/setup-python from 4 to 5
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 12:07:40 -07:00
dependabot[bot]
f1837eded9 CI: Bump actions/github-script from 6 to 7
Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 7.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v6...v7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 07:13:30 -05:00
dependabot[bot]
5f4015821e CI: Bump JamesIves/github-pages-deploy-action from 4.4.3 to 4.5.0
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.4.3 to 4.5.0.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.4.3...v4.5.0)

---
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>
2023-12-04 06:32:42 -05:00
dependabot[bot]
2ff7011b7a CI: Bump actions/setup-java from 3 to 4
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 06:32:26 -05:00
Timothy Flynn
d8f84ef76c CI: Disable running aarch64 tests in CI for now
These tests almost always fail, and all we do is try to boot. Disable it
for now until it can pass more reliably. Note we still compile aarch64,
so the build shouldn't break unnoticed.
2023-12-01 09:35:54 -05:00
dependabot[bot]
7510fa1598 CI: Bump mymindstorm/setup-emsdk from 12 to 13
Bumps [mymindstorm/setup-emsdk](https://github.com/mymindstorm/setup-emsdk) from 12 to 13.
- [Release notes](https://github.com/mymindstorm/setup-emsdk/releases)
- [Commits](https://github.com/mymindstorm/setup-emsdk/compare/v12...v13)

---
updated-dependencies:
- dependency-name: mymindstorm/setup-emsdk
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-27 09:02:30 -07:00
Timothy Flynn
6c29fc07fc CI: Ensure test262 and test262-jit results are stored in the same file
This will allow BuggieBot to display both results from the /test262
command on Discord.
2023-11-05 15:02:21 -05:00
Ali Mohammad Pur
7a83870905 Meta: Run test262 with JIT compilation enabled in CI
This will let us have more :yakgraph:s!
2023-11-05 17:35:58 +01:00
Timothy Flynn
92e9145edc CI: Switch export of test262/Wasm test results to libjs-data 2023-10-31 11:33:15 -04:00
dependabot[bot]
82ce4acfe5 CI: Bump actions/setup-node from 3 to 4
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 10:22:21 +00:00
dependabot[bot]
8e1b0a46f7 CI: Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [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/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 10:21:11 +00:00
Aliaksandr Kalenik
95c154d9bd LibAccelGfx+Meta: Introduce OpenGL painting library
This change introduces a new 2D graphics library that uses OpenGL to
perform painting operations. For now, it has extremely limited
functionality and supports only rectangle painting, but we have to
start somewhere.

Since this library is intended to be used by LibWeb, where the
WebContent process does not have an associated window, painting occurs
in an offscreen buffer created using EGL.

For now it is only possible to compile this library on linux.
Offscreen context creation on SerenityOS and MacOS will have to be
implemented separately in the future.

Co-Authored-By: Andreas Kling <awesomekling@gmail.com>
2023-10-29 17:13:23 +01:00
Ali Mohammad Pur
1f67bbcca5 Meta: Restore the Wasm build CI for LibJS
The new workflow simply publishes the generated objects as artifacts.
2023-10-27 05:57:18 +03:30
Timothy Flynn
1d26550370 CI: Remove git LFS tracking of test262 data
See:
75f5027d5e
2023-10-26 07:02:18 -04:00
Andrew Kaster
39202f2222 CI: Re-enable booting aarch64 in CI self-test mode on CI 2023-10-17 11:02:25 -06:00
Tim Schumacher
a8084072c6 Meta: Remove myself from LibELF-related CODEOWNERS entries 2023-10-05 08:58:36 +02:00
Daniel Bertalan
1cfaadec02 Meta: Add myself to CODEOWNERS
This covers the few core things I'm likely to have strong opinions
about.
2023-09-22 09:05:45 +02:00
dependabot[bot]
e31a3ef2ad CI: Bump docker/login-action from 2 to 3
Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v2...v3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-17 20:58:02 -06:00
Daniel Bertalan
d87fbcccb7 Toolchain+Ports: Update QEMU to 8.1.0
This version contains my patch that adds support for the proprietary
VideoCore mailbox message for reading the kernel command line, so
patches aren't needed anymore.
2023-09-17 15:26:20 -06:00
dependabot[bot]
38d9c4d19c CI: Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [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/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 09:11:27 -04:00
Andrew Kaster
f660fc97a9 CI: Specify SERENITY_CACHE_DIR for test262 job
We weren't actually using the caches at all for this job after some
path changes recently.
2023-08-14 15:37:02 -04:00
Andrew Kaster
7824206f34 CI: Point test-wasm binary at new Build/bin location
Fixes breakage after ea0e07ec8f
2023-08-14 13:23:27 -06:00
Sam Atkins
43b4e84d9c Meta: Remove "Check manpages for completeness" CI step
This is taking over 4 minutes to run on CI, and checks only a dozen
manpages, which is of limited benefit.

Leaving the manpage-generation code in place for now.
2023-08-14 07:58:33 +02:00
Daniel Bertalan
1e737e763e CI: Force UBSan errors to be fatal for Serenity tests
The test runner script sets the `halt_on_error=1` `UBSAN_OPTIONS` flag
already, this just makes it a compile-time decision. This should
alleviate some of the slowness of running on-target tests without
hardware acceleration.
2023-08-13 05:14:07 +02:00