diff --git a/.github/workflows/1main.yml b/.github/workflows/1main.yml new file mode 100644 index 00000000000..2c0e563450b --- /dev/null +++ b/.github/workflows/1main.yml @@ -0,0 +1,68 @@ +name: Build Ladybird (Software Rendering) + +on: + workflow_dispatch: # Allows manual trigger from GitHub Actions UI + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Cache CMake and Ninja Builds + uses: actions/cache@v4 + with: + path: Build/release + key: ${{ runner.os }}-ladybird-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: | + ${{ runner.os }}-ladybird- + + - name: Install Dependencies + run: | + sudo apt update + 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 xvfb \ + mesa-utils libegl1-mesa libglx-mesa0 libosmesa6 + + - name: Install CMake (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 -y cmake + + - name: Install GCC-13 + run: | + sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y + sudo apt update + sudo apt install -y g++-13 libstdc++-13-dev + + - name: Setup Virtual Display (Xvfb) + run: | + Xvfb :99 -screen 0 1920x1080x24 & + echo "DISPLAY=:99" >> $GITHUB_ENV + + - name: Enable Software Rendering + run: | + echo "LIBGL_ALWAYS_SOFTWARE=1" >> $GITHUB_ENV + echo "MESA_LOADER_DRIVER_OVERRIDE=llvmpipe" >> $GITHUB_ENV + echo "QT_QPA_PLATFORM=xcb" >> $GITHUB_ENV + + - name: Build Ladybird + run: | + cmake -GNinja -B Build/release + ninja -C Build/release + + - name: Run Ladybird in Software Rendering Mode + run: | + xvfb-run --auto-servernum --server-args="-screen 0 1920x1080x24" ./Build/release/bin/Ladybird --headless https://ladybird.dev || true + + - name: Upload Build Artifacts + uses: actions/upload-artifact@v4 + with: + name: Ladybird-Build + path: | + Build/release/bin/ + Build/release/*.lo