Move to GitHub actions

This commit is contained in:
Jente Hidskes 2020-04-09 18:10:40 +02:00
parent d1367b1c46
commit 8385b62a9b
5 changed files with 77 additions and 117 deletions

View file

@ -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

View file

@ -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

View file

@ -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

1
.clang-format-ignore Normal file
View file

@ -0,0 +1 @@
subprojects/**/*

76
.github/workflows/main.yml vendored Normal file
View file

@ -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