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-14 steps: - uses: actions/checkout@v4 - name: Install dependencies run: | brew install \ bash \ expect - name: Run tests run: | jobs=$(sysctl -n hw.ncpu) make -j$jobs distcheck 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 \ 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 mount -t fdescfs none /dev/fd run: | chown -R action:action . sudo -u action gmake -j$(nproc) distcheck 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 TEST_FLAGS="--sudo=doas --verbose=skipped" netbsd: name: NetBSD runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Run tests uses: vmactions/netbsd-vm@v1 with: release: "9.3" usesh: true copyback: false prepare: | PATH="/sbin:/usr/sbin:$PATH" pkg_add \ bash \ clang \ gmake \ oniguruma \ sudo \ tcl-expect useradd -m -G wheel -g =uid action echo "%wheel ALL=(ALL) NOPASSWD: ALL" >>/usr/pkg/etc/sudoers run: | PATH="/sbin:/usr/sbin:$PATH" chown -R action:action . jobs=$(sysctl -n hw.ncpu) sudo -u action gmake -j$jobs check CC=clang LDFLAGS="-rpath /usr/pkg/lib" TEST_FLAGS="--sudo --verbose=skipped" dragonflybsd: name: DragonFly BSD runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Run tests uses: vmactions/dragonflybsd-vm@v1 with: release: "6.4.0" usesh: true copyback: false prepare: | pkg install -y \ bash \ expect \ gmake \ 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 . jobs=$(sysctl -n hw.ncpu) sudo -u action gmake -j$jobs check TEST_FLAGS="--sudo --verbose=skipped" omnios: name: OmniOS runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Run tests uses: vmactions/omnios-vm@v1 with: release: "r151048" usesh: true copyback: false prepare: | pkg install \ bash \ build-essential \ expect \ gnu-make \ onig \ sudo useradd -m -g staff action echo "%staff ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers run: | PATH="/usr/xpg4/bin:$PATH" chown -R action:staff . jobs=$(getconf NPROCESSORS_ONLN) sudo -u action gmake -j$jobs check LDFLAGS="-Wl,-rpath,/opt/ooce/lib/amd64" TEST_FLAGS="--sudo --verbose=skipped"