diff --git a/.github/workflows/main3.yml b/.github/workflows/main3.yml index 52ee57fb0d0..ae60c8bcecf 100644 --- a/.github/workflows/main3.yml +++ b/.github/workflows/main3.yml @@ -1,45 +1,62 @@ -name: Build Ladybird Browser +name: Build Ladybird Browser. on: - workflow_dispatch: # Manual trigger + workflow_dispatch: # Allows manual trigger from GitHub Actions UI jobs: build: runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - name: Install dependencies + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Install Dependencies run: | sudo apt update -y sudo apt install -y \ autoconf autoconf-archive automake build-essential ccache cmake curl \ fonts-liberation2 git libgl1-mesa-dev nasm ninja-build pkg-config \ qt6-base-dev qt6-tools-dev-tools qt6-wayland tar unzip zip \ - libpulse-dev qt6-multimedia-dev xvfb # 🟢 Added Xvfb for virtual display + libpulse-dev qt6-multimedia-dev xvfb mesa-utils libegl-dev libglx-dev libosmesa6 + - name: Install CMake 3.25+ from Kitware run: | wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo 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/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/kitware.list sudo apt update -y && sudo apt install cmake -y + - name: Install Clang 19 (C++23-capable compiler) run: | sudo wget -O /usr/share/keyrings/llvm-snapshot.gpg.key https://apt.llvm.org/llvm-snapshot.gpg.key echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg.key] https://apt.llvm.org/$(lsb_release -sc)/ llvm-toolchain-$(lsb_release -sc)-19 main" | sudo tee -a /etc/apt/sources.list.d/llvm.list sudo apt update -y && sudo apt install clang-19 clangd-19 clang-format-19 clang-tidy-19 lld-19 -y - - name: Build Ladybird Using `ladybird.sh` with Virtual Display + + - name: Setup Virtual Display (Xvfb) + run: | + Xvfb :99 -screen 0 1920x1080x24 & + echo "DISPLAY=:99" >> $GITHUB_ENV + + - name: Enable Software Rendering & Disable Vulkan + run: | + echo "LIBGL_ALWAYS_SOFTWARE=1" >> $GITHUB_ENV + echo "MESA_LOADER_DRIVER_OVERRIDE=llvmpipe" >> $GITHUB_ENV + echo "QT_QPA_PLATFORM=offscreen" >> $GITHUB_ENV + echo "QT_QPA_PLATFORMTHEME=qt5ct" >> $GITHUB_ENV + + - name: Build Ladybird Using `ladybird.sh` run: | chmod +x Meta/ladybird.sh - xvfb-run --auto-servernum --server-args="-screen 0 800x600x24" ./Meta/ladybird.sh run ladybird # 🟢 Run in a virtual X server + ./Meta/ladybird.sh build + - name: Upload Build Artifacts uses: actions/upload-artifact@v4 with: name: Ladybird-Browser path: | - Build/Ladybird/Ladybird* - Build/Ladybird/*.so - Build/Ladybird/*.dll - Build/Ladybird/*.dylib - Build/Ladybird/*.exe + Build/Ladybird/bin/Ladybird* + Build/Ladybird/bin/*.so + Build/Ladybird/bin/*.dll + Build/Ladybird/bin/*.dylib + Build/Ladybird/bin/*.exe retention-days: 7