name: Continuous integration build on: push: branches: [ master ] pull_request: branches: [ master ] jobs: compile: runs-on: ubuntu-latest strategy: matrix: CC: [ gcc, clang ] OS: [ "alpine:edge", "archlinux:base-devel" ] xwayland: [ true, false ] container: ${{ matrix.OS }} env: CC: ${{ matrix.CC }} steps: - name: Checkout Cage uses: actions/checkout@v2 - name: Install dependencies (Alpine) if: "matrix.OS == 'alpine:edge'" run: apk add build-base xcb-util-wm-dev libseat-dev clang git eudev-dev mesa-dev libdrm-dev libinput-dev libxkbcommon-dev pixman-dev wayland-dev meson wayland-protocols xwayland scdoc-doc hwdata - name: Install dependencies (Arch) if: "matrix.OS == 'archlinux:base-devel'" run: | pacman-key --init pacman -Syu --noconfirm xcb-util-wm seatd git clang meson libinput libdrm mesa libxkbcommon wayland wayland-protocols xorg-server-xwayland scdoc - name: Fetch wlroots as a subproject run: git clone https://gitlab.freedesktop.org/wlroots/wlroots.git subprojects/wlroots -b 0.16.0 # TODO: use --fatal-meson-warnings when on wlroots 0.15.0 - name: Compile Cage (XWayland=${{ matrix.xwayland }}) run: | meson build-${{ matrix.CC }}-${{matrix.xwayland }} -Dxwayland=${{ matrix.xwayland }} ninja -C build-${{ matrix.CC }}-${{matrix.xwayland }} format: runs-on: ubuntu-latest container: "archlinux:base-devel" steps: - name: Checkout Cage uses: actions/checkout@v2 - name: Install dependencies run: | pacman-key --init pacman -Syu --noconfirm xcb-util-wm seatd git clang meson libinput libdrm mesa libxkbcommon wayland wayland-protocols xorg-server-xwayland scdoc hwdata - name: Fetch wlroots as a subproject run: git clone https://gitlab.freedesktop.org/wlroots/wlroots.git subprojects/wlroots -b 0.16.0 - name: Check for formatting changes run: | meson build-clang-format -Dxwayland=true ninja -C build-clang-format clang-format-check scan-build: runs-on: ubuntu-latest container: "archlinux:base-devel" env: CC: clang steps: - name: Checkout Cage uses: actions/checkout@v2 - name: Install dependencies run: | pacman-key --init pacman -Syu --noconfirm xcb-util-wm seatd git clang meson libinput libdrm mesa libxkbcommon wayland wayland-protocols xorg-server-xwayland scdoc hwdata - name: Fetch wlroots as a subproject run: git clone https://gitlab.freedesktop.org/wlroots/wlroots.git subprojects/wlroots -b 0.16.0 - name: Run scan-build run: | meson build-scan-build -Dxwayland=true ninja -C build-scan-build scan-build