name: CI on: [push, pull_request] jobs: linux: name: Linux runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Install dependencies run: | sudo dpkg --add-architecture i386 sudo apt-get update -y sudo apt-get install -y \ expect \ gcc-multilib \ libgcc-s1:i386 \ acl \ libacl1-dev \ libacl1:i386 \ attr \ libattr1-dev \ libattr1:i386 \ libcap2-bin \ libcap-dev \ libcap2:i386 \ libonig-dev \ libonig5:i386 \ liburing-dev # Ubuntu doesn't let you install the -dev packages for both amd64 and # i386 at once, so we make our own symlinks to fix -m32 -lacl -l... sudo ln -s libacl.so.1 /lib/i386-linux-gnu/libacl.so sudo ln -s libattr.so.1 /lib/i386-linux-gnu/libattr.so sudo ln -s libcap.so.2 /lib/i386-linux-gnu/libcap.so sudo ln -s libonig.so.5 /lib/i386-linux-gnu/libonig.so - name: Run tests run: | make -j$(nproc) distcheck macos: name: macOS runs-on: macos-13 steps: - uses: actions/checkout@v4 - name: Install dependencies run: | brew install expect - name: Run tests run: | jobs=$(sysctl -n hw.ncpu) make -j$jobs distcheck JOBS=-j$jobs freebsd: name: FreeBSD runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Run tests uses: vmactions/freebsd-vm@v1 with: release: "14.0" usesh: true copyback: false prepare: | pkg install -y \ bash \ expect \ gmake \ llvm16 \ oniguruma \ sudo \ tcl-wrapper pw useradd -n action -m -G wheel -s /usr/local/bin/bash echo "%wheel ALL=(ALL) NOPASSWD: ALL" >>/usr/local/etc/sudoers run: | chown -R action:action . su action -c 'gmake -j$(nproc) distcheck CC=clang16 JOBS=-j$(nproc)' openbsd: name: OpenBSD runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Run tests uses: vmactions/openbsd-vm@v1 with: release: "7.4" usesh: true copyback: false prepare: | pkg_add \ bash \ expect \ gmake \ oniguruma adduser -group USER -batch action wheel >/etc/doas.conf run: | chown -R action:action . jobs=$(sysctl -n hw.ncpu) doas -u action gmake -j$jobs check JOBS=-j$jobs TEST_FLAGS="--sudo=doas --verbose=skipped"