CI: Add a nightly arm64 linux CI build

This requires setting VCPKG_FORCE_SYSTEM_BINARIES to 1, per vcpkg
documentation.
This commit is contained in:
Andrew Kaster 2025-01-20 08:05:53 -07:00 committed by Jelle Raaijmakers
parent 13338a9532
commit d64566f19e
Notes: github-actions[bot] 2025-02-21 11:06:31 +00:00
3 changed files with 51 additions and 3 deletions

View file

@ -40,6 +40,8 @@ runs:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 100
# FIXME: https://github.com/WebAssembly/wabt/issues/2533
# wabt doesn't have binary releases for arm64 Linux
wget https://github.com/WebAssembly/wabt/releases/download/1.0.35/wabt-1.0.35-ubuntu-20.04.tar.gz
tar -xzf ./wabt-1.0.35-ubuntu-20.04.tar.gz
rm ./wabt-1.0.35-ubuntu-20.04.tar.gz
@ -59,6 +61,13 @@ runs:
brew update
brew install autoconf autoconf-archive automake bash ccache coreutils llvm@19 nasm ninja qt unzip wabt
- name: 'Set required environment variables'
if: ${{ inputs.os == 'Linux' && inputs.arch == 'arm64' }}
uses: actions/github-script@v7
with:
script: |
core.exportVariable('VCPKG_FORCE_SYSTEM_BINARIES', '1')
- name: 'Install vcpkg'
shell: bash
run: ./Toolchain/BuildVcpkg.sh

View file

@ -82,7 +82,14 @@ jobs:
echo "cmake_options=-DENABLE_CLANG_PLUGINS=ON" >> "$GITHUB_OUTPUT"
else
echo "ccache_key=${{ inputs.build_preset }}" >> "$GITHUB_OUTPUT"
echo "cmake_options=" >> "$GITHUB_OUTPUT"
if ${{ inputs.os_name == 'Linux' && inputs.arch == 'arm64' }} ; then
# FIXME: https://github.com/WebAssembly/wabt/issues/2533
# wabt doesn't have binary releases for arm64 Linux
PKGCONFIG=$(which pkg-config)
echo "cmake_options=-DPKG_CONFIG_EXECUTABLE=$PKGCONFIG" >> "$GITHUB_OUTPUT"
else
echo "cmake_options=-DINCLUDE_WASM_SPEC_TESTS=ON -DWASM_SPEC_TEST_SKIP_FORMATTING=ON" >> "$GITHUB_OUTPUT"
fi
fi
- name: Restore Caches
@ -112,8 +119,6 @@ jobs:
working-directory: ${{ github.workspace }}
run: |
cmake --preset ${{ inputs.build_preset }} -B Build \
-DINCLUDE_WASM_SPEC_TESTS=ON \
-DWASM_SPEC_TEST_SKIP_FORMATTING=ON \
${{ steps.build-parameters.outputs.cmake_options }} \
-DPython3_EXECUTABLE=${{ env.pythonLocation }}/bin/python \
-DCMAKE_C_COMPILER=${{ steps.build-parameters.outputs.host_cc }} \

34
.github/workflows/nightly-lagom.yml vendored Normal file
View file

@ -0,0 +1,34 @@
name: Nightly Lagom
on:
# Automatically run at the end of every day.
schedule:
- cron: '0 0 * * *'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
# CI matrix - runs the job in lagom-template.yml with different configurations.
Lagom:
if: github.repository == 'LadybirdBrowser/ladybird'
strategy:
fail-fast: false
matrix:
os_name: ['Linux']
os: [ubuntu-24.04-arm]
arch: ['arm64']
build_preset: ['Sanitizer_CI']
toolchain: ['Clang']
clang_plugins: [false]
uses: ./.github/workflows/lagom-template.yml
with:
toolchain: ${{ matrix.toolchain }}
os_name: ${{ matrix.os_name }}
os: ${{ matrix.os }}
arch: ${{ matrix.arch }}
build_preset: ${{ matrix.build_preset }}
clang_plugins: ${{ matrix.clang_plugins }}