Skip to content

build(deps): bump vmactions/openindiana-vm in /.github/workflows #868

build(deps): bump vmactions/openindiana-vm in /.github/workflows

build(deps): bump vmactions/openindiana-vm in /.github/workflows #868

Workflow file for this run

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