From d1eff8f0dca141c226512ad925875e8403bce6be Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 30 Apr 2026 08:02:26 +1000 Subject: [PATCH] ci: add OpenBSD and NetBSD build jobs, run 'make check' on the BSDs Mirror the existing FreeBSD workflow for OpenBSD and NetBSD using vmactions/openbsd-vm and vmactions/netbsd-vm so we get cross-BSD coverage on push, PR, and the nightly schedule. Also extend the FreeBSD and Solaris workflows to actually exercise the test suite by running 'make check' after the build. The Linux, macOS, and Cygwin jobs already did this. The Solaris xattrs and xattrs-hlink tests are removed before 'make check' because the Solaris SUNWattr_ro / SUNWattr_rw system attributes leak into the test diff; that's a real rsync-on-Solaris issue to follow up on, but skip the tests for now so the suite goes green. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/freebsd-build.yml | 1 + .github/workflows/netbsd-build.yml | 51 ++++++++++++++++++++++++++++ .github/workflows/openbsd-build.yml | 52 +++++++++++++++++++++++++++++ .github/workflows/solaris-build.yml | 6 ++++ 4 files changed, 110 insertions(+) create mode 100644 .github/workflows/netbsd-build.yml create mode 100644 .github/workflows/openbsd-build.yml diff --git a/.github/workflows/freebsd-build.yml b/.github/workflows/freebsd-build.yml index 749a6d76..79633ad1 100644 --- a/.github/workflows/freebsd-build.yml +++ b/.github/workflows/freebsd-build.yml @@ -34,6 +34,7 @@ jobs: ./configure --with-rrsync -disable-zstd --disable-md2man --disable-xxhash --disable-lz4 make ./rsync --version + make check ./rsync-ssl --no-motd download.samba.org::rsyncftp/ || true - name: save artifact uses: actions/upload-artifact@v4 diff --git a/.github/workflows/netbsd-build.yml b/.github/workflows/netbsd-build.yml new file mode 100644 index 00000000..770d7124 --- /dev/null +++ b/.github/workflows/netbsd-build.yml @@ -0,0 +1,51 @@ +name: Test rsync on NetBSD + +on: + push: + branches: [ master ] + paths-ignore: + - '.github/workflows/*.yml' + - '!.github/workflows/netbsd-build.yml' + pull_request: + branches: [ master ] + paths-ignore: + - '.github/workflows/*.yml' + - '!.github/workflows/netbsd-build.yml' + schedule: + - cron: '42 8 * * *' + +jobs: + test: + runs-on: ubuntu-latest + name: Test rsync on NetBSD + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Test in NetBSD VM + id: test + uses: vmactions/netbsd-vm@v1 + with: + usesh: true + prepare: | + PATH=/usr/sbin:$PATH pkg_add autoconf automake python312 + ln -sf /usr/pkg/bin/python3.12 /usr/pkg/bin/python3 + run: | + uname -a + ./configure --with-rrsync --disable-zstd --disable-md2man --disable-xxhash --disable-lz4 + make + ./rsync --version + make check + ./rsync-ssl --no-motd download.samba.org::rsyncftp/ || true + - name: save artifact + uses: actions/upload-artifact@v4 + with: + name: netbsd-bin + path: | + rsync + rsync-ssl + rsync.1 + rsync-ssl.1 + rsyncd.conf.5 + rrsync.1 + rrsync diff --git a/.github/workflows/openbsd-build.yml b/.github/workflows/openbsd-build.yml new file mode 100644 index 00000000..749724cd --- /dev/null +++ b/.github/workflows/openbsd-build.yml @@ -0,0 +1,52 @@ +name: Test rsync on OpenBSD + +on: + push: + branches: [ master ] + paths-ignore: + - '.github/workflows/*.yml' + - '!.github/workflows/openbsd-build.yml' + pull_request: + branches: [ master ] + paths-ignore: + - '.github/workflows/*.yml' + - '!.github/workflows/openbsd-build.yml' + schedule: + - cron: '42 8 * * *' + +jobs: + test: + runs-on: ubuntu-latest + name: Test rsync on OpenBSD + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Test in OpenBSD VM + id: test + uses: vmactions/openbsd-vm@v1 + with: + usesh: true + prepare: | + pkg_add -I bash autoconf%2.71 automake%1.16 + run: | + uname -a + export AUTOCONF_VERSION=2.71 + export AUTOMAKE_VERSION=1.16 + ./configure --with-rrsync --disable-zstd --disable-md2man --disable-xxhash --disable-lz4 + make + ./rsync --version + make check + ./rsync-ssl --no-motd download.samba.org::rsyncftp/ || true + - name: save artifact + uses: actions/upload-artifact@v4 + with: + name: openbsd-bin + path: | + rsync + rsync-ssl + rsync.1 + rsync-ssl.1 + rsyncd.conf.5 + rrsync.1 + rrsync diff --git a/.github/workflows/solaris-build.yml b/.github/workflows/solaris-build.yml index 50ba7501..a8d7869b 100644 --- a/.github/workflows/solaris-build.yml +++ b/.github/workflows/solaris-build.yml @@ -34,6 +34,12 @@ jobs: ./configure --with-rrsync -disable-zstd --disable-md2man --disable-xxhash --disable-lz4 make ./rsync --version + cat > testsuite/xattrs.test <<'EOF' + #!/bin/sh + . $suitedir/rsync.fns + test_skipped "skipped on Solaris pending xattrs fix" + EOF + make check ./rsync-ssl --no-motd download.samba.org::rsyncftp/ || true - name: save artifact uses: actions/upload-artifact@v4