feat: add alpine and freebsd CI #43
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: [push] | |
| jobs: | |
| arch: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: archlinux:latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| pacman -Syu --noconfirm | |
| pacman -S --noconfirm base-devel git perl meson ninja wayland-protocols \ | |
| cairo libevdev libinput pixman libxcb libxkbcommon linux-api-headers \ | |
| pango shaderc vulkan-headers xcb-util-wm xorg-xwayland libliftoff \ | |
| lcms2 xcb-util-errors xcb-util-renderutil seatd vulkan-icd-loader \ | |
| libdisplay-info | |
| - name: Create build user | |
| run: | | |
| useradd -m builder | |
| echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers | |
| - name: Install wlroots | |
| run: | | |
| git clone --depth 1 https://aur.archlinux.org/wlroots-git.git | |
| cd wlroots-git | |
| chown -R builder:builder . | |
| sudo -u builder makepkg -si --noconfirm | |
| - name: Build | |
| run: | | |
| cd arch/ | |
| chown -R builder:builder . | |
| sudo -u builder makepkg -si --noconfirm | |
| alpine: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: alpine:edge | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install build dependencies | |
| run: | | |
| apk add --no-cache git gcc musl-dev cairo-dev eudev-dev gdk-pixbuf-dev \ | |
| libdisplay-info-dev libevdev-dev libinput-dev libseat-dev libxcb-dev \ | |
| libxkbcommon-dev mesa-dev meson pango-dev pcre2-dev pixman-dev \ | |
| wayland-dev wayland-protocols xcb-util-image-dev xcb-util-wm-dev \ | |
| xwayland-dev hwdata-dev shaderc-dev vulkan-headers vulkan-loader-dev \ | |
| xcb-util-cursor xcb-util-renderutil-dev glslang | |
| - name: Build wlroots | |
| run: | | |
| git clone --depth 1 https://gitlab.freedesktop.org/wlroots/wlroots.git /tmp/wlroots | |
| meson setup /tmp/wlroots /tmp/wlroots/build -Dexamples=false -Dtests=false \ | |
| -Dxwayland=enabled -Drenderers=gles2,vulkan -Dbackends=drm,libinput,x11 | |
| ninja -C /tmp/wlroots/build | |
| meson install -C /tmp/wlroots/build | |
| rm -rf /tmp/wlroots | |
| - name: Build | |
| run: | | |
| meson setup build | |
| ninja -C build | |
| freebsd: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build on FreeBSD | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| release: "14.2" | |
| usesh: true | |
| prepare: | | |
| pkg install -y meson ninja pkgconf git wayland wayland-protocols \ | |
| libxkbcommon pixman cairo libdrm libinput libevdev seatd \ | |
| pango shaderc vulkan-headers xcb-util-wm xcb-util-errors \ | |
| xcb-util-renderutil xcb-util-cursor json-c lcms2 \ | |
| libepoll-shim libinotify mesa evdev-proto | |
| run: | | |
| git clone --depth 1 https://gitlab.freedesktop.org/wlroots/wlroots.git /tmp/wlroots | |
| meson setup /tmp/wlroots /tmp/wlroots/build -Dexamples=false -Dtests=false | |
| ninja -C /tmp/wlroots/build | |
| meson install -C /tmp/wlroots/build | |
| rm -rf /tmp/wlroots | |
| meson setup build | |
| ninja -C build |