CI: Test using Clang for ASAN+UBSAN on Linux, add nightly GCC job

Clang builds of ASAN+UBSAN on Linux take significantly less time on the
Azure CI runners. Measured times were 82 minutes for Clang 18 and
112 minutes for GCC 13, with no cache.

To keep our coverage of Ladybird builds + testing with GCC, add a
nightly job to run through the full test cycle on GCC 13.
This commit is contained in:
Andrew Kaster 2024-04-23 13:09:31 -06:00 committed by Andrew Kaster
parent 5f088f3233
commit 7b06417ccf
Notes: sideshowbarker 2024-07-17 07:43:44 +09:00
3 changed files with 24 additions and 10 deletions

View file

@ -2,6 +2,8 @@ parameters:
os: 'Linux'
fuzzer: 'NoFuzz'
lagom_lints: false
host_cc: 'cc'
host_cxx: 'cxx'
jobs:
- job: 'Lagom_${{ parameters.os }}_${{ parameters.fuzzer }}'
@ -19,21 +21,15 @@ jobs:
- name: toolchain
${{ if eq(parameters.fuzzer, 'Fuzz') }}:
value: clang
value: '${{ parameters.host_cc }}_Fuzz'
${{ if eq(parameters.fuzzer, 'NoFuzz') }}:
value: gcc
value: '${{ parameters.host_cc }}'
- name: host-cc
${{ if eq(parameters.os, 'macOS') }}:
value: $(brew --prefix llvm@18)/bin/clang
${{ if not(eq(parameters.os, 'macOS')) }}:
value: gcc-13
value: '${{ parameters.host_cc }}'
- name: host-cxx
${{ if eq(parameters.os, 'macOS') }}:
value: $(brew --prefix llvm@18)/bin/clang++
${{ if not(eq(parameters.os, 'macOS')) }}:
value: g++-13
value: '${{ parameters.host_cxx }}'
- name: ndk_version # only relevant for Android
value: '25.2.9519653'
@ -102,6 +98,8 @@ jobs:
-DBUILD_LAGOM=OFF \
-DENABLE_LAGOM_CCACHE=ON \
-DCMAKE_INSTALL_PREFIX=tool-install \
-DCMAKE_C_COMPILER=$(host-cc) \
-DCMAKE_CXX_COMPILER=$(host-cxx) \
-Dpackage=LagomTools
ninja -C tools-build install
cmake -GNinja -B Build \

View file

@ -26,3 +26,13 @@ stages:
- template: Lagom.yml
parameters:
os: 'Android'
- stage: Lagom_GCC
dependsOn: []
jobs:
- template: Lagom.yml
parameters:
os: 'Linux'
fuzzer: 'NoFuzz'
host_cc: 'gcc-13'
host_cxx: 'g++-13'

View file

@ -13,15 +13,21 @@ stages:
parameters:
os: 'Linux'
lagom_lints: true
host_cc: 'clang-18'
host_cxx: 'clang++-18'
- template: Meta/Azure/Lagom.yml
parameters:
os: 'Linux'
fuzzer: 'Fuzz'
host_cc: 'gcc-13'
host_cxx: 'g++-13'
- template: Meta/Azure/Lagom.yml
parameters:
os: 'macOS'
host_cc: '$(brew --prefix llvm@18)/bin/clang'
host_cxx: '$(brew --prefix llvm@18)/bin/clang++'
- stage: SerenityOS
dependsOn: []