diff --git a/.forgejo/workflows/build-ubuntu-24-04.yml b/.forgejo/workflows/build-ubuntu-24-04.yml new file mode 100644 index 0000000000..9f74db3e72 --- /dev/null +++ b/.forgejo/workflows/build-ubuntu-24-04.yml @@ -0,0 +1,112 @@ +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: ubuntu: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@v4 + with: + name: ladybird-ubuntu-24.04 + path: ladybird-ubuntu-24.04.tar.gz