Files
ladybird/.github/workflows/ci.yml
Andrew Kaster f71b909bed CMake+CI: Use the same preset names on every platform
Starting with CMake 3.30 and CMakePresets version 9, the include field
supports interesting macro expansions. We can now define platform
specific presets in separate files and include them in the top-level
CMakePresets.json, while keeping the same preset names across all
platforms. This avoids some preset explosion at the cost of some mostly
empty json files for each unix platform.

The CMake minimum required in the top-level and Lagom CMakeLists.txt
have not been adjusted in this patch, as that would have the effect of
changing the default policy versions and is a bit out of scope.
2026-01-17 12:18:46 -07:00

97 lines
2.8 KiB
YAML

name: CI
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || format('{0}-{1}', github.ref, github.run_number) }}
cancel-in-progress: true
jobs:
# CI matrix - runs the job in lagom-template.yml with different configurations.
Lagom:
if: github.repository == 'LadybirdBrowser/ladybird'
name: ${{ matrix.os_name }}, ${{ matrix.arch }}, ${{ matrix.build_preset }}, ${{ matrix.toolchain }}
strategy:
fail-fast: false
matrix:
os_name: ['Linux']
arch: ['x86_64']
build_preset: ['Sanitizer']
toolchain: ['GNU']
clang_plugins: [false]
runner_labels: ['["blacksmith-16vcpu-ubuntu-2404"]']
include:
- os_name: 'Linux'
arch: 'x86_64'
build_preset: 'Sanitizer'
toolchain: 'Clang'
clang_plugins: true
runner_labels: '["blacksmith-16vcpu-ubuntu-2404"]'
- os_name: 'macOS'
arch: 'arm64'
build_preset: 'Sanitizer'
toolchain: 'Clang'
clang_plugins: false
runner_labels: '["macos-15", "self-hosted"]'
- os_name: 'Linux'
arch: 'arm64'
build_preset: 'Sanitizer'
toolchain: 'Clang'
clang_plugins: false
runner_labels: '["blacksmith-16vcpu-ubuntu-2404-arm"]'
- os_name: 'Linux'
arch: 'x86_64'
build_preset: 'Fuzzers'
toolchain: 'Clang'
clang_plugins: false
runner_labels: '["blacksmith-16vcpu-ubuntu-2404"]'
- os_name: 'Linux'
arch: 'x86_64'
build_preset: 'All_Debug'
toolchain: 'Clang'
clang_plugins: false
runner_labels: '["blacksmith-16vcpu-ubuntu-2404"]'
- os_name: 'Windows'
arch: 'x86_64'
build_preset: 'Sanitizer'
toolchain: 'ClangCL'
clang_plugins: false
runner_labels: '["blacksmith-16vcpu-windows-2025"]'
secrets: inherit
uses: ./.github/workflows/lagom-template.yml
with:
toolchain: ${{ matrix.toolchain }}
os_name: ${{ matrix.os_name }}
runner_labels: ${{ matrix.runner_labels }}
arch: ${{ matrix.arch }}
build_preset: ${{ matrix.build_preset }}
clang_plugins: ${{ matrix.clang_plugins }}
Flatpak:
if: github.repository == 'LadybirdBrowser/ladybird'
name: Flatpak ${{ matrix.arch }}
strategy:
fail-fast: false
matrix:
arch: ['x86_64']
runner_labels: ['["blacksmith-16vcpu-ubuntu-2404"]']
include:
- arch: 'aarch64'
runner_labels: '["blacksmith-16vcpu-ubuntu-2404-arm"]'
secrets: inherit
uses: ./.github/workflows/flatpak-template.yml
with:
arch: ${{ matrix.arch }}
runner_labels: ${{ matrix.runner_labels }}