feat: add alpine and freebsd CI #52
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 libepoll-shim \ | |
| pango shaderc vulkan-headers vulkan-loader xcb-util-wm xcb-util-errors hwdata \ | |
| xcb-util-renderutil xcb-util-cursor xcb-util-image json-c lcms2 evdev-proto freetype2 \ | |
| libepoll-shim libinotify mesa-libs mesa-vulkan-swrast egl-x11 egl-wayland libudev-devd \ | |
| gdk-pixbuf2 glslang xwayland libX11 libdisplay-info libliftoff | |
| 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 | |
| meson setup build | |
| ninja -C build |