diff --git a/.builds/alpine.yml b/.builds/alpine.yml deleted file mode 100644 index ef32a95..0000000 --- a/.builds/alpine.yml +++ /dev/null @@ -1,35 +0,0 @@ -image: alpine/edge -packages: - - eudev-dev - - mesa-dev - - meson - - libinput-dev - - libxkbcommon-dev - - pixman-dev - - scdoc - - wayland-dev - - wayland-protocols - - xcb-util-wm-dev - - xwayland -sources: - - https://github.com/swaywm/wlroots - - https://github.com/Hjdskes/cage -tasks: - # Install wlroots, which is required by Cage. Note that we compile a tagged - # version, instead of master, to avoid any breaking changes in wlroots. - - wlroots: | - cd wlroots - git checkout 0.14.0 - meson --prefix=/usr build -Dexamples=false - ninja -C build - sudo ninja -C build install - - build: | - cd cage - meson build --werror -Dxwayland=true - ninja -C build - rm -rf build - - build-no-xwayland: | - cd cage - meson build --werror -Dxwayland=false - ninja -C build - rm -rf build diff --git a/.builds/archlinux.yml b/.builds/archlinux.yml deleted file mode 100644 index 99cdd24..0000000 --- a/.builds/archlinux.yml +++ /dev/null @@ -1,45 +0,0 @@ -image: archlinux -packages: - - clang - - meson - - libinput - - libxkbcommon - - mesa - - scdoc - - wayland - - wayland-protocols - - xcb-util-wm - - xorg-xwayland -sources: - - https://github.com/swaywm/wlroots - - https://github.com/Hjdskes/cage -tasks: - # Install wlroots, which is required by Cage. Note that we compile a tagged - # version, instead of master, to avoid any breaking changes in wlroots. - - wlroots: | - cd wlroots - git checkout 0.14.0 - meson --prefix=/usr build -Dexamples=false - ninja -C build - sudo ninja -C build install - - build: | - cd cage - meson build --werror -Dxwayland=true - ninja -C build - rm -rf build - - build-no-xwayland: | - cd cage - meson build --werror -Dxwayland=false - ninja -C build - rm -rf build - - scan-build: | - cd cage - CC=clang meson build --werror -Dxwayland=true - CC=clang ninja -C build scan-build - rm -rf build - - clang-format: | - cd cage - meson build --werror -Dxwayland=true - ninja -C build clang-format - rm -rf build - git diff --exit-code diff --git a/.builds/freebsd.yml b/.builds/freebsd.yml deleted file mode 100644 index 92a2119..0000000 --- a/.builds/freebsd.yml +++ /dev/null @@ -1,37 +0,0 @@ -image: freebsd/latest -packages: - - devel/evdev-proto - - devel/meson - - devel/libepoll-shim - - devel/pkgconf - - graphics/mesa-libs - - graphics/wayland - - graphics/wayland-protocols - - textproc/scdoc - - x11/libinput - - x11/libxkbcommon - - x11/pixman - - x11/xcb-util-wm - - x11-servers/xwayland -sources: - - https://github.com/swaywm/wlroots - - https://github.com/Hjdskes/cage -tasks: - # Install wlroots, which is required by Cage. Note that we compile a tagged - # version, instead of master, to avoid any breaking changes in wlroots. - - wlroots: | - cd wlroots - git checkout 0.14.0 - meson --prefix=/usr/local build -Dexamples=false - ninja -C build - sudo ninja -C build install - - build: | - cd cage - PKG_CONFIG_PATH=/usr/local/lib/pkgconfig meson build --werror -Dxwayland=true - PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ninja -C build - rm -rf build - - build-no-xwayland: | - cd cage - PKG_CONFIG_PATH=/usr/local/lib/pkgconfig meson build --werror -Dxwayland=false - PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ninja -C build - rm -rf build diff --git a/.clang-format-ignore b/.clang-format-ignore new file mode 100644 index 0000000..60dd059 --- /dev/null +++ b/.clang-format-ignore @@ -0,0 +1 @@ +subprojects/**/* \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..4711f70 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,76 @@ +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 + + - 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.14.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 + - name: Fetch wlroots as a subproject + run: git clone https://gitlab.freedesktop.org/wlroots/wlroots.git subprojects/wlroots -b 0.14.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 + - name: Fetch wlroots as a subproject + run: git clone https://gitlab.freedesktop.org/wlroots/wlroots.git subprojects/wlroots -b 0.14.0 + - name: Run scan-build + run: | + meson build-scan-build -Dxwayland=true + ninja -C build-scan-build scan-build \ No newline at end of file