diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..ecaddf44 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,73 @@ +name: Build + +on: + push: + branches: [main, master] + pull_request: + branches: [main, master] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y \ + meson \ + ninja-build \ + wayland-protocols \ + libwayland-dev \ + libinput-dev \ + libxkbcommon-dev \ + libpcre2-dev \ + libpixman-1-dev \ + libdrm-dev \ + libxcb1-dev \ + libxcb-icccm4-dev \ + xwayland \ + hwdata \ + libliftoff-dev \ + libdisplay-info-dev \ + libseat-dev \ + pkg-config + + - name: Install wlroots 0.19 + run: | + # Install wlroots 0.19 from source since it may not be in apt + git clone https://gitlab.freedesktop.org/wlroots/wlroots.git + cd wlroots + git checkout 0.19.0 + meson setup build/ --prefix=/usr + sudo ninja -C build/ install + sudo ldconfig + cd .. + + - name: Install scenefx 0.4 + run: | + # Install scenefx from source + git clone -b 0.4.1 https://github.com/wlrfx/scenefx.git + cd scenefx + meson setup build/ --prefix=/usr + sudo ninja -C build/ install + sudo ldconfig + cd .. + + - name: Configure meson + run: | + meson setup build/ --prefix=/usr + + - name: Build project + run: | + ninja -C build/ + + - name: Build summary + run: | + echo "✅ Build completed successfully!" + echo "Built executables:" + ls -lh build/mango build/mmsg