name: Build Ladybird (Ubuntu 24.04) on: push: branches: [ master ] pull_request: branches: [ master ] workflow_dispatch: env: LADYBIRD_SOURCE_DIR: ${{ github.workspace }} CCACHE_DIR: ${{ github.workspace }}/.ccache VCPKG_ROOT: ${{ github.workspace }}/Build/vcpkg jobs: build: name: Build on Ubuntu 24.04 runs-on: ubuntu-latest container: image: catthehacker/ubuntu:act-24.04 steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install system dependencies run: | apt-get update && apt-get install -y \ software-properties-common \ wget \ curl \ gpg \ lsb-release \ git # Install CMake 3.30+ from Kitware (since Ubuntu 24.04 has 3.28) wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ noble main" | tee /etc/apt/sources.list.d/kitware.list apt-get update && apt-get install -y \ autoconf \ autoconf-archive \ automake \ build-essential \ ccache \ cmake \ fonts-liberation2 \ glslang-tools \ libdrm-dev \ libgl1-mesa-dev \ libncurses-dev \ libtool \ nasm \ ninja-build \ pkg-config \ python3-venv \ qt6-base-dev \ qt6-tools-dev-tools \ qt6-wayland \ tar \ unzip \ zip \ libpulse-dev \ gcc-14 \ g++-14 - name: Configure compiler alternatives run: | update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 100 \ --slave /usr/bin/g++ g++ /usr/bin/g++-14 \ --slave /usr/bin/gcov gcov /usr/bin/gcov-14 - name: Install Rust run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.96.0 echo "$HOME/.cargo/bin" >> $GITHUB_PATH - name: Configure Git Safe Directory run: | git config --global safe.directory '*' - name: Bootstrap vcpkg run: | ./Meta/Utils/build_vcpkg.py - name: Configure CMake env: CC: gcc-14 CXX: g++-14 run: | cmake --preset Release -B Build \ -DCMAKE_C_COMPILER=gcc-14 \ -DCMAKE_CXX_COMPILER=g++-14 \ -DENABLE_CI_BASELINE_CPU=ON \ -DLADYBIRD_GUI_FRAMEWORK=Qt - name: Build run: | cmake --build Build - name: Install run: | cmake --install Build --strip --prefix dist - name: Package Binaries run: | tar -czf ladybird-ubuntu-24.04.tar.gz -C dist . - name: Upload Build Artifacts uses: actions/upload-artifact@v3 with: name: ladybird-ubuntu-24.04 path: ladybird-ubuntu-24.04.tar.gz