build(deps): bump vmactions/openindiana-vm in /.github/workflows #868
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: VM Spec Tests | |
| # Build + AFP spectest legs that run on non-Linux VMs (vmactions). | |
| # Each job builds netatalk inside the VM, installs it with the OS service | |
| # packaging, then runs the production AFP spectest via the shared driver | |
| # .github/scripts/vm_spectest.sh (per-OS knobs are exported by each step). | |
| # Pure Linux build jobs live in build.yml; container spectests in | |
| # containers.yml; the macOS leg in spectest-macos.yml. | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - branch-* | |
| pull_request: | |
| branches: | |
| - main | |
| - branch-* | |
| types: | |
| - opened | |
| - synchronize | |
| - reopened | |
| permissions: | |
| contents: read | |
| env: | |
| CMARK_TARBALL_URL: https://github.com/commonmark/cmark/archive/refs/tags/0.31.2.tar.gz | |
| INIPARSER_TARBALL_URL: https://gitlab.com/iniparser/iniparser/-/archive/v4.2.6/iniparser-v4.2.6.tar.gz | |
| SMARTOS_BOOTSTRAP_URL: https://pkgsrc.smartos.org/packages/SmartOS/bootstrap/bootstrap-2025Q4-x86_64.tar.gz | |
| SMARTOS_BOOTSTRAP_SHA256: 4842f72b610d44cf98560253b6bf16ff4056016e5fe2c6932bc195156ac75772 | |
| STUFFIT_RS_TARBALL_URL: https://github.com/benletchford/stuffit-rs/archive/refs/tags/v0.2.1.tar.gz | |
| jobs: | |
| spectest-dflybsd: | |
| name: AFP Spectest - DragonFlyBSD (sys:ad, HAMMER2) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 24 | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Build on VM | |
| uses: vmactions/dragonflybsd-vm@a7ede19f8f21f25f1abfc728aca9a02af5aa7f6a # v1.3.2 | |
| with: | |
| copyback: true | |
| sync-time: true | |
| sync: nfs | |
| usesh: true | |
| prepare: | | |
| set -e | |
| pkg install -y \ | |
| avahi \ | |
| curl \ | |
| cmark \ | |
| db5 \ | |
| gmake \ | |
| iniparser \ | |
| libev \ | |
| file \ | |
| libgcrypt \ | |
| meson \ | |
| mysql80-client \ | |
| openldap26-client \ | |
| perl5 \ | |
| pkgconf \ | |
| py39-gdbm \ | |
| py39-sqlite3 \ | |
| py39-tkinter \ | |
| rust \ | |
| sqlite \ | |
| talloc \ | |
| xapian-core | |
| curl --proto '=https' --location --fail -o stuffit-rs.tar.gz "${{ env.STUFFIT_RS_TARBALL_URL }}" | |
| mkdir -p /tmp/stuffit-rs | |
| tar -xzf stuffit-rs.tar.gz -C /tmp/stuffit-rs --strip-components=1 | |
| cd /tmp/stuffit-rs | |
| cargo build --release --locked -p stuffit-ffi | |
| gmake -C stuffit-ffi install-files PREFIX=/usr/local | |
| run: | | |
| set -e | |
| export LD_LIBRARY_PATH=/usr/local/lib | |
| export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/libdata/pkgconfig | |
| meson setup build \ | |
| -Dbuildtype=debugoptimized \ | |
| -Dwith-appletalk=true \ | |
| -Dwith-eventloop=libev \ | |
| -Dwith-stuffit=true \ | |
| -Dwith-tests=true \ | |
| -Dwith-testsuite=true | |
| meson compile -C build | |
| meson test -C build | |
| meson install -C build | |
| netatalk -V | |
| afpd -V | |
| - name: AFP Spectest (production, AFP 3.4) | |
| shell: dragonflybsd {0} | |
| run: | | |
| set -e | |
| # DragonflyBSD installs under the /usr/local prefix | |
| export NETATALK_CONFDIR=/usr/local/etc | |
| export NETATALK_LOCKDIR=/var/spool/locks | |
| # HAMMER2, DragonflyBSD's default root filesystem (where the share | |
| # /mnt/afpshare lives), does not support extended attributes, so | |
| # afpd is built with "EA support: ad" only. Use AppleDouble EA | |
| # storage (ea = ad, + afp_spectest -a) to match; ea = sys would make | |
| # every FPGetExtAttr test fail. | |
| export AFP_ADOUBLE=1 | |
| export SERVICE_START="/usr/local/etc/rc.d/netatalk onestart" | |
| export SERVICE_STOP="/usr/local/etc/rc.d/netatalk onestop" | |
| sh ./.github/scripts/vm_spectest.sh | |
| - name: Publish AFP spec test results | |
| if: ${{ !cancelled() }} | |
| uses: dorny/test-reporter@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.0 | |
| with: | |
| name: AFP Spectest (${{ github.job }}) | |
| path: afp-spectest.junit.xml | |
| reporter: java-junit | |
| - name: Upload meson logs | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: meson-logs-${{ github.job }} | |
| path: build/meson-logs | |
| spectest-freebsd: | |
| name: AFP Spectest - FreeBSD (PerfConfig, UFS) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 24 | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Build on VM | |
| uses: vmactions/freebsd-vm@83b151f58c6047089f4c80eb5ba2039d158ce093 # v1.5.3 | |
| with: | |
| copyback: true | |
| sync: sshfs | |
| prepare: | | |
| set -e | |
| pkg install -y \ | |
| avahi \ | |
| bison \ | |
| cmark \ | |
| curl \ | |
| db5 \ | |
| dconf \ | |
| flex \ | |
| git \ | |
| gmake \ | |
| iniparser \ | |
| libev \ | |
| file \ | |
| libgcrypt \ | |
| libsunacl \ | |
| localsearch \ | |
| meson \ | |
| mysql97-client \ | |
| openldap26-client \ | |
| perl5 \ | |
| pkgconf \ | |
| rust \ | |
| sqlite3 \ | |
| talloc \ | |
| xapian-core | |
| curl --proto '=https' --location --fail -o stuffit-rs.tar.gz "${{ env.STUFFIT_RS_TARBALL_URL }}" | |
| mkdir -p /tmp/stuffit-rs | |
| tar -xzf stuffit-rs.tar.gz -C /tmp/stuffit-rs --strip-components=1 | |
| cd /tmp/stuffit-rs | |
| cargo build --release --locked -p stuffit-ffi | |
| gmake -C stuffit-ffi install-files PREFIX=/usr/local | |
| run: | | |
| set -e | |
| export LD_LIBRARY_PATH=/usr/local/lib | |
| export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/libdata/pkgconfig | |
| meson setup build \ | |
| -Dbuildtype=debugoptimized \ | |
| -Dpkg_config_path=/usr/local/libdata/pkgconfig \ | |
| -Dwith-eventloop=libev \ | |
| -Dwith-stuffit=true \ | |
| -Dwith-tests=true \ | |
| -Dwith-testsuite=true | |
| meson compile -C build | |
| meson test -C build --no-rebuild | |
| meson install -C build --no-rebuild | |
| netatalk -V | |
| afpd -V | |
| - name: AFP Spectest (production, AFP 3.4) | |
| shell: freebsd {0} | |
| run: | | |
| set -e | |
| # FreeBSD installs under the /usr/local prefix | |
| export NETATALK_CONFDIR=/usr/local/etc | |
| export NETATALK_LOCKDIR=/var/spool/lock | |
| # FreeBSD's root UFS supports native EAs, so this leg runs the real | |
| # ea = sys PerfConfig (AFP_ADOUBLE unset). | |
| export SERVICE_START="/usr/local/etc/rc.d/netatalk onestart" | |
| export SERVICE_STOP="/usr/local/etc/rc.d/netatalk onestop" | |
| sh ./.github/scripts/vm_spectest.sh | |
| - name: Publish AFP spec test results | |
| if: ${{ !cancelled() }} | |
| uses: dorny/test-reporter@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.0 | |
| with: | |
| name: AFP Spectest (${{ github.job }}) | |
| path: afp-spectest.junit.xml | |
| reporter: java-junit | |
| - name: Upload meson logs | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: meson-logs-${{ github.job }} | |
| path: build/meson-logs | |
| spectest-freebsd-zfs: | |
| name: AFP Spectest - FreeBSD (PerfConfig, ZFS) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 24 | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Build on VM | |
| uses: vmactions/freebsd-vm@83b151f58c6047089f4c80eb5ba2039d158ce093 # v1.5.3 | |
| with: | |
| copyback: true | |
| sync: sshfs | |
| prepare: | | |
| set -e | |
| pkg install -y \ | |
| avahi \ | |
| bison \ | |
| cmark \ | |
| curl \ | |
| db5 \ | |
| dconf \ | |
| flex \ | |
| git \ | |
| gmake \ | |
| iniparser \ | |
| libev \ | |
| file \ | |
| libgcrypt \ | |
| libsunacl \ | |
| localsearch \ | |
| meson \ | |
| mysql97-client \ | |
| openldap26-client \ | |
| perl5 \ | |
| pkgconf \ | |
| rust \ | |
| sqlite3 \ | |
| talloc \ | |
| xapian-core | |
| curl --proto '=https' --location --fail -o stuffit-rs.tar.gz "${{ env.STUFFIT_RS_TARBALL_URL }}" | |
| mkdir -p /tmp/stuffit-rs | |
| tar -xzf stuffit-rs.tar.gz -C /tmp/stuffit-rs --strip-components=1 | |
| cd /tmp/stuffit-rs | |
| cargo build --release --locked -p stuffit-ffi | |
| gmake -C stuffit-ffi install-files PREFIX=/usr/local | |
| run: | | |
| set -e | |
| export LD_LIBRARY_PATH=/usr/local/lib | |
| export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/libdata/pkgconfig | |
| meson setup build \ | |
| -Dbuildtype=debugoptimized \ | |
| -Dpkg_config_path=/usr/local/libdata/pkgconfig \ | |
| -Dwith-eventloop=libev \ | |
| -Dwith-stuffit=true \ | |
| -Dwith-tests=true \ | |
| -Dwith-testsuite=true | |
| meson compile -C build | |
| meson test -C build --no-rebuild | |
| meson install -C build --no-rebuild | |
| netatalk -V | |
| afpd -V | |
| # Same as the FreeBSD UFS leg, but the share lives on a file-backed ZFS | |
| # pool (ZFS is in the FreeBSD base kernel) to exercise the ea = sys path | |
| # on ZFS rather than UFS. | |
| - name: AFP Spectest (production, AFP 3.4) | |
| shell: freebsd {0} | |
| run: | | |
| set -e | |
| # Create a file-backed ZFS pool and datasets for the AFP shares. | |
| truncate -s 2G /afppool.img | |
| zpool create afppool /afppool.img | |
| zfs create -o mountpoint=/mnt/afpshare afppool/afpshare | |
| zfs create -o mountpoint=/mnt/afpbackup afppool/afpbackup | |
| # FreeBSD installs under the /usr/local prefix | |
| export NETATALK_CONFDIR=/usr/local/etc | |
| export NETATALK_LOCKDIR=/var/spool/lock | |
| # ZFS supports native EAs, so this leg runs the real ea = sys | |
| # PerfConfig (AFP_ADOUBLE unset). | |
| export SERVICE_START="/usr/local/etc/rc.d/netatalk onestart" | |
| export SERVICE_STOP="/usr/local/etc/rc.d/netatalk onestop" | |
| sh ./.github/scripts/vm_spectest.sh | |
| - name: Publish AFP spec test results | |
| if: ${{ !cancelled() }} | |
| uses: dorny/test-reporter@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.0 | |
| with: | |
| name: AFP Spectest (${{ github.job }}) | |
| path: afp-spectest.junit.xml | |
| reporter: java-junit | |
| - name: Upload meson logs | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: meson-logs-${{ github.job }} | |
| path: build/meson-logs | |
| spectest-netbsd: | |
| name: AFP Spectest - NetBSD (sys:ad, FFS) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 24 | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Build on VM | |
| uses: vmactions/netbsd-vm@6334c835de4c04a59fe59f0f8f071e02a2f0bab3 # v1.4.7 | |
| with: | |
| copyback: true | |
| prepare: | | |
| set -e | |
| export PKG_PATH="https://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/$(uname -p)/$(uname -r|cut -f '1 2' -d.)/All" | |
| pkg_add \ | |
| cmark \ | |
| curl \ | |
| db5 \ | |
| gcc13 \ | |
| gmake \ | |
| heimdal \ | |
| iniparser \ | |
| libev \ | |
| libgcrypt \ | |
| meson \ | |
| file \ | |
| mysql-client \ | |
| perl \ | |
| pkg-config \ | |
| rust \ | |
| sqlite3 \ | |
| talloc \ | |
| xapian | |
| curl --proto '=https' --location --fail -o stuffit-rs.tar.gz "${{ env.STUFFIT_RS_TARBALL_URL }}" | |
| mkdir -p /tmp/stuffit-rs | |
| tar -xzf stuffit-rs.tar.gz -C /tmp/stuffit-rs --strip-components=1 | |
| cd /tmp/stuffit-rs | |
| cargo build --release --locked -p stuffit-ffi | |
| gmake -C stuffit-ffi install-files PREFIX=/usr/local | |
| run: | | |
| set -e | |
| export LD_LIBRARY_PATH=/usr/local/lib | |
| export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig | |
| meson setup build \ | |
| -Dbuildtype=debugoptimized \ | |
| -Dwith-appletalk=true \ | |
| -Dwith-cups-pap-backend=true \ | |
| -Dwith-dtrace=false \ | |
| -Dwith-eventloop=libev \ | |
| -Dwith-stuffit=true \ | |
| -Dwith-tests=true \ | |
| -Dwith-testsuite=true | |
| meson compile -C build | |
| meson test -C build --no-rebuild | |
| meson install -C build --no-rebuild | |
| netatalk -V | |
| afpd -V | |
| atalkd -V | |
| a2boot -V | |
| macipgw -V | |
| papd -V | |
| timelord -V | |
| - name: AFP Spectest (production, AFP 3.4) | |
| shell: netbsd {0} | |
| run: | | |
| set -e | |
| # NetBSD installs under the default meson prefix /usr/local | |
| export NETATALK_CONFDIR=/usr/local/etc | |
| # NetBSD's compiled-in lockfile path is /var/run (see meson.build) | |
| export NETATALK_LOCKDIR=/var/run | |
| # The VM's FFS share has no runtime EA support, so use AppleDouble | |
| # storage (ea = ad, + afp_spectest -a) like the DragonflyBSD leg. | |
| export AFP_ADOUBLE=1 | |
| export SERVICE_START="service netatalk onestart" | |
| export SERVICE_STOP="service netatalk onestop" | |
| sh ./.github/scripts/vm_spectest.sh | |
| - name: Publish AFP spec test results | |
| if: ${{ !cancelled() }} | |
| uses: dorny/test-reporter@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.0 | |
| with: | |
| name: AFP Spectest (${{ github.job }}) | |
| path: afp-spectest.junit.xml | |
| reporter: java-junit | |
| - name: Upload meson logs | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: meson-logs-${{ github.job }} | |
| path: build/meson-logs | |
| spectest-openbsd: | |
| name: AFP Spectest - OpenBSD (sys:ad, FFS) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 24 | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Build on VM | |
| uses: vmactions/openbsd-vm@e6c68b637a12e83519688d115d57d5b0b53923cd # v1.4.6 | |
| with: | |
| copyback: true | |
| sync: sshfs | |
| prepare: | | |
| set -e | |
| pkg_add -I \ | |
| avahi \ | |
| cmark \ | |
| curl \ | |
| db-4.6.21p8v0 \ | |
| dbus \ | |
| git \ | |
| gmake \ | |
| gtar-1.35p1 \ | |
| heimdal \ | |
| iniparser \ | |
| libev \ | |
| libgcrypt \ | |
| libmagic \ | |
| libtalloc \ | |
| mariadb-client \ | |
| meson \ | |
| openldap-client-2.6.13v0 \ | |
| openpam \ | |
| rust \ | |
| sqlite3 \ | |
| xapian-core | |
| curl --proto '=https' --location --fail -o stuffit-rs.tar.gz "${{ env.STUFFIT_RS_TARBALL_URL }}" | |
| mkdir -p /tmp/stuffit-rs | |
| gtar -xzf stuffit-rs.tar.gz -C /tmp/stuffit-rs --strip-components=1 | |
| cd /tmp/stuffit-rs | |
| cargo build --release --locked -p stuffit-ffi | |
| gmake -C stuffit-ffi install-files PREFIX=/usr/local | |
| run: | | |
| set -e | |
| export LD_LIBRARY_PATH=/usr/local/lib | |
| export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig | |
| meson setup build \ | |
| -Dbuildtype=debugoptimized \ | |
| -Dwith-eventloop=libev \ | |
| -Dwith-gssapi-path=/usr/local/heimdal \ | |
| -Dwith-kerberos-path=/usr/local/heimdal \ | |
| -Dwith-stuffit=true \ | |
| -Dwith-tests=true \ | |
| -Dwith-testsuite=true | |
| meson compile -C build | |
| meson test -C build --no-rebuild | |
| meson install -C build --no-rebuild | |
| netatalk -V | |
| afpd -V | |
| - name: AFP Spectest (production, AFP 3.4) | |
| shell: openbsd {0} | |
| run: | | |
| set -e | |
| # OpenBSD installs under the default meson prefix /usr/local | |
| export NETATALK_CONFDIR=/usr/local/etc | |
| # OpenBSD's compiled-in lockfile path is /var/run (see meson.build) | |
| export NETATALK_LOCKDIR=/var/run | |
| # OpenBSD's FFS has no extended attributes, so use AppleDouble | |
| # storage (ea = ad, + afp_spectest -a) like the NetBSD leg. | |
| export AFP_ADOUBLE=1 | |
| export SERVICE_START="rcctl -d start netatalk" | |
| export SERVICE_STOP="rcctl -d stop netatalk" | |
| sh ./.github/scripts/vm_spectest.sh | |
| - name: Publish AFP spec test results | |
| if: ${{ !cancelled() }} | |
| uses: dorny/test-reporter@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.0 | |
| with: | |
| name: AFP Spectest (${{ github.job }}) | |
| path: afp-spectest.junit.xml | |
| reporter: java-junit | |
| - name: Upload meson logs | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: meson-logs-${{ github.job }} | |
| path: build/meson-logs | |
| spectest-omnios: | |
| name: AFP Spectest - OmniOS (sys:ad, ZFS) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 24 | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Build on VM | |
| uses: vmactions/omnios-vm@f777b9ef6bf644b6c9a33e018bd158b5b1982f06 # v1.3.5 | |
| with: | |
| release: "r151056-build" | |
| copyback: true | |
| prepare: | | |
| set -e | |
| pkg install \ | |
| build-essential \ | |
| pkg-config | |
| # This installs the SmartOS pkgsrc bootstrap, which is a self-contained pkgsrc environment | |
| # containing a pkgin package manager and a /opt/local prefix. | |
| # The bootstrap is used to install the required dependencies for building netatalk on OmniOS. | |
| # This step can be skipped if the bootstrap is already installed. | |
| curl --proto '=https' --location --fail -o bootstrap.tar.gz "${{ env.SMARTOS_BOOTSTRAP_URL }}" | |
| bootstrap_sha256=$(digest -a sha256 bootstrap.tar.gz) | |
| if [ "$bootstrap_sha256" != "${{ env.SMARTOS_BOOTSTRAP_SHA256 }}" ]; then | |
| echo "bootstrap.tar.gz SHA-256 mismatch" >&2 | |
| exit 1 | |
| fi | |
| tar -zxpf bootstrap.tar.gz -C / | |
| export PATH=/opt/local/sbin:/opt/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH | |
| pkgin -y install \ | |
| avahi \ | |
| cmark \ | |
| dconf \ | |
| gmake \ | |
| gnome-tracker \ | |
| gtar-base \ | |
| iniparser \ | |
| libev \ | |
| file \ | |
| libbstring \ | |
| libgcrypt \ | |
| meson \ | |
| mysql-client \ | |
| rust \ | |
| sqlite3 \ | |
| talloc \ | |
| xapian | |
| curl --proto '=https' --location --fail -o stuffit-rs.tar.gz "${{ env.STUFFIT_RS_TARBALL_URL }}" | |
| mkdir -p /tmp/stuffit-rs | |
| gtar -xzf stuffit-rs.tar.gz -C /tmp/stuffit-rs --strip-components=1 | |
| cd /tmp/stuffit-rs | |
| cargo build --release --locked -p stuffit-ffi | |
| gmake -C stuffit-ffi install-files PREFIX=/opt/local | |
| run: | | |
| set -e | |
| export PATH=/opt/local/sbin:/opt/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH | |
| export LD_LIBRARY_PATH=/opt/local/lib | |
| export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig | |
| meson setup build \ | |
| --prefix=/opt/local \ | |
| -Dbuildtype=debugoptimized \ | |
| -Dpkg_config_path=/opt/local/lib/pkgconfig \ | |
| -Dwith-eventloop=libev \ | |
| -Dwith-ldap-path=/opt/local \ | |
| -Dwith-stuffit=true \ | |
| -Dwith-tests=true \ | |
| -Dwith-testsuite=true | |
| meson compile -C build | |
| meson test -C build | |
| meson install -C build | |
| netatalk -V | |
| afpd -V | |
| - name: AFP Spectest (production, AFP 3.4) | |
| shell: omnios {0} | |
| run: | | |
| set -e | |
| export PATH=/opt/local/sbin:/opt/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH | |
| # OmniOS installs under the pkgsrc /opt/local prefix | |
| export NETATALK_CONFDIR=/opt/local/etc | |
| # illumos has no meson lock special-case -> /var/spool/locks | |
| export NETATALK_LOCKDIR=/var/spool/locks | |
| # The VM's /mnt share filesystem has no runtime EA support, so use | |
| # AppleDouble storage (ea = ad, + afp_spectest -a) like the BSD legs. | |
| export AFP_ADOUBLE=1 | |
| export SERVICE_START="svcadm enable -s svc:/network/netatalk:default" | |
| export SERVICE_STOP="svcadm disable -s svc:/network/netatalk:default" | |
| sh ./.github/scripts/vm_spectest.sh | |
| - name: Publish AFP spec test results | |
| if: ${{ !cancelled() }} | |
| uses: dorny/test-reporter@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.0 | |
| with: | |
| name: AFP Spectest (${{ github.job }}) | |
| path: afp-spectest.junit.xml | |
| reporter: java-junit | |
| - name: Upload meson logs | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: meson-logs-${{ github.job }} | |
| path: build/meson-logs | |
| spectest-openindiana: | |
| name: AFP Spectest - OpenIndiana (sys:ad, ZFS) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 24 | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Build on VM | |
| uses: vmactions/openindiana-vm@21e57a45fc8dbfc8b20804ba707c1dad6c271b4f # v1.1.6 | |
| with: | |
| release: "202510-build" | |
| copyback: true | |
| prepare: | | |
| set -e | |
| pkg install \ | |
| archiver/gnu-tar \ | |
| compress/gzip \ | |
| database/sqlite-3 \ | |
| developer/build/cmake \ | |
| developer/build/gnu-make \ | |
| developer/build/meson \ | |
| developer/build/ninja \ | |
| developer/build/pkg-config \ | |
| developer/cargo-c \ | |
| developer/gcc-14 \ | |
| developer/lang/rustc \ | |
| library/libev \ | |
| library/security/cracklib \ | |
| runtime/perl \ | |
| system/library/security/libgcrypt \ | |
| web/curl | |
| curl --proto '=https' --location --fail -o iniparser.tar.gz "${{ env.INIPARSER_TARBALL_URL }}" | |
| curl --proto '=https' --location --fail -o stuffit-rs.tar.gz "${{ env.STUFFIT_RS_TARBALL_URL }}" | |
| mkdir -p /tmp/iniparser | |
| gtar -xzf iniparser.tar.gz -C /tmp/iniparser --strip-components=1 | |
| mkdir -p /tmp/stuffit-rs | |
| gtar -xzf stuffit-rs.tar.gz -C /tmp/stuffit-rs --strip-components=1 | |
| cd /tmp/iniparser | |
| mkdir build | |
| cd build | |
| cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local .. | |
| make all | |
| make install | |
| cd /tmp/stuffit-rs | |
| cargo build --release --locked -p stuffit-ffi | |
| gmake -C stuffit-ffi install-files PREFIX=/usr/local | |
| run: | | |
| set -e | |
| export PATH=/opt/local/sbin:/opt/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH | |
| export LD_LIBRARY_PATH=/usr/local/lib | |
| export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/amd64/pkgconfig | |
| meson setup build \ | |
| -Dbuildtype=debugoptimized \ | |
| -Dpkg_config_path=/usr/lib/amd64/pkgconfig \ | |
| -Dwith-eventloop=libev \ | |
| -Dwith-iniparser-path=/usr/local \ | |
| -Dwith-stuffit=true \ | |
| -Dwith-tests=true \ | |
| -Dwith-testsuite=true | |
| meson compile -C build | |
| meson test -C build | |
| meson install -C build | |
| /usr/local/sbin/netatalk -V | |
| /usr/local/sbin/afpd -V | |
| # Multicast DNS is a dependency of the netatalk SMF service. | |
| svcadm enable svc:/network/dns/multicast:default | |
| - name: AFP Spectest (production, AFP 3.4) | |
| shell: openindiana {0} | |
| run: | | |
| set -e | |
| export PATH=/usr/local/sbin:/usr/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH | |
| # OpenIndiana installs under the default meson prefix /usr/local | |
| export NETATALK_CONFDIR=/usr/local/etc | |
| # illumos has no meson lock special-case -> /var/spool/locks | |
| export NETATALK_LOCKDIR=/var/spool/locks | |
| # The VM's /mnt share filesystem has no runtime EA support, so use | |
| # AppleDouble storage (ea = ad, + afp_spectest -a) like the BSD legs. | |
| export AFP_ADOUBLE=1 | |
| export SERVICE_START="svcadm enable -s svc:/network/netatalk:default" | |
| export SERVICE_STOP="svcadm disable -s svc:/network/netatalk:default" | |
| sh ./.github/scripts/vm_spectest.sh | |
| - name: Publish AFP spec test results | |
| if: ${{ !cancelled() }} | |
| uses: dorny/test-reporter@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.0 | |
| with: | |
| name: AFP Spectest (${{ github.job }}) | |
| path: afp-spectest.junit.xml | |
| reporter: java-junit | |
| - name: Upload meson logs | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: meson-logs-${{ github.job }} | |
| path: build/meson-logs | |
| spectest-solaris: | |
| name: AFP Spectest - Solaris (sys:ad, ZFS) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 24 | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Build on VM | |
| uses: vmactions/solaris-vm@315163f088b66e55bbcc45928bd224d4973b2312 # v1.3.8 | |
| with: | |
| copyback: true | |
| sync-time: true | |
| sync: nfs | |
| prepare: | | |
| set -e | |
| pkg install \ | |
| archiver/gnu-tar \ | |
| cmake \ | |
| developer/build/gnu-make \ | |
| developer/rust/cargo \ | |
| developer/rust/rustc \ | |
| gcc \ | |
| libevent \ | |
| libgcrypt \ | |
| meson \ | |
| ninja \ | |
| pkg-config \ | |
| sqlite-3 | |
| curl --proto '=https' --location --fail -o cmark.tar.gz "${{ env.CMARK_TARBALL_URL }}" | |
| curl --proto '=https' --location --fail -o iniparser.tar.gz "${{ env.INIPARSER_TARBALL_URL }}" | |
| curl --proto '=https' --location --fail -o stuffit-rs.tar.gz "${{ env.STUFFIT_RS_TARBALL_URL }}" | |
| mkdir -p /tmp/cmark | |
| gtar -xzf cmark.tar.gz -C /tmp/cmark --strip-components=1 | |
| mkdir -p /tmp/iniparser | |
| gtar -xzf iniparser.tar.gz -C /tmp/iniparser --strip-components=1 | |
| mkdir -p /tmp/stuffit-rs | |
| gtar -xzf stuffit-rs.tar.gz -C /tmp/stuffit-rs --strip-components=1 | |
| cd /tmp/cmark | |
| cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/usr | |
| cmake --build build | |
| cmake --install build | |
| cd /tmp/iniparser | |
| mkdir build | |
| cd build | |
| cmake .. | |
| make all | |
| make install | |
| cd /tmp/stuffit-rs | |
| cargo build --release --locked -p stuffit-ffi | |
| gmake -C stuffit-ffi install-files PREFIX=/usr/local | |
| run: | | |
| set -e | |
| export LD_LIBRARY_PATH=/usr/local/lib | |
| export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/amd64/pkgconfig | |
| meson setup build \ | |
| --prefix=/usr/local \ | |
| -Dbuildtype=debugoptimized \ | |
| -Dpkg_config_path=/usr/lib/amd64/pkgconfig \ | |
| -Dwith-iniparser-path=/usr/local \ | |
| -Dwith-stuffit=true \ | |
| -Dwith-tests=true \ | |
| -Dwith-testsuite=true | |
| meson compile -C build | |
| meson test -C build | |
| meson install -C build | |
| export PATH=/usr/local/sbin:/usr/local/bin:$PATH | |
| netatalk -V | |
| afpd -V | |
| - name: AFP Spectest (production, AFP 3.4) | |
| shell: solaris {0} | |
| run: | | |
| set -e | |
| export PATH=/usr/local/sbin:/usr/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH | |
| # Solaris installs under the default meson prefix /usr/local | |
| export NETATALK_CONFDIR=/usr/local/etc | |
| # illumos/Solaris has no meson lock special-case -> /var/spool/locks | |
| export NETATALK_LOCKDIR=/var/spool/locks | |
| # The VM's /mnt share filesystem has no runtime EA support, so use | |
| # AppleDouble storage (ea = ad, + afp_spectest -a) like the BSD legs. | |
| export AFP_ADOUBLE=1 | |
| export SERVICE_START="svcadm enable -s svc:/network/netatalk:default" | |
| export SERVICE_STOP="svcadm disable -s svc:/network/netatalk:default" | |
| sh ./.github/scripts/vm_spectest.sh | |
| - name: Publish AFP spec test results | |
| if: ${{ !cancelled() }} | |
| uses: dorny/test-reporter@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.0 | |
| with: | |
| name: AFP Spectest (${{ github.job }}) | |
| path: afp-spectest.junit.xml | |
| reporter: java-junit | |
| - name: Upload meson logs | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: meson-logs-${{ github.job }} | |
| path: build/meson-logs |