diff options
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r-- | .github/workflows/ci.yml | 202 |
1 files changed, 202 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..e47600b --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,202 @@ +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 \ + 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 libcap.so.2 /lib/i386-linux-gnu/libcap.so + sudo ln -s libonig.so.5 /lib/i386-linux-gnu/libonig.so + # Work around https://github.com/actions/runner-images/issues/9491 + sudo sysctl vm.mmap_rnd_bits=28 + + - 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: cross-platform-actions/action@v0.24.0 + with: + operating_system: freebsd + version: "14.0" + sync_files: runner-to-vm + + run: | + sudo pkg install -y \ + bash \ + expect \ + oniguruma \ + pkgconf \ + tcl-wrapper + sudo mount -t fdescfs none /dev/fd + make -j$(nproc) distcheck + + openbsd: + name: OpenBSD + + runs-on: ubuntu-22.04 + + steps: + - uses: actions/checkout@v4 + + - name: Run tests + uses: cross-platform-actions/action@v0.24.0 + with: + operating_system: openbsd + version: "7.5" + sync_files: runner-to-vm + + run: | + sudo pkg_add \ + bash \ + expect \ + gmake \ + oniguruma + jobs=$(sysctl -n hw.ncpu) + ./configure MAKE=gmake + gmake -j$jobs check TEST_FLAGS="--sudo --verbose=skipped" + + netbsd: + name: NetBSD + + runs-on: ubuntu-22.04 + + steps: + - uses: actions/checkout@v4 + + - name: Run tests + uses: cross-platform-actions/action@v0.24.0 + with: + operating_system: netbsd + version: "10.0" + sync_files: runner-to-vm + + run: | + PATH="/sbin:/usr/sbin:$PATH" + sudo pkgin -y install \ + bash \ + oniguruma \ + pkgconf \ + tcl-expect + jobs=$(sysctl -n hw.ncpu) + ./configure + make -j$jobs check 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 \ + oniguruma \ + pkgconf \ + 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 ./configure + sudo -u action make -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 ./configure MAKE=gmake + sudo -u action gmake -j$jobs check TEST_FLAGS="--sudo --verbose=skipped" |