From cd2a1d1212daf879e1c970e983b06591f4785b0f Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Tue, 18 Aug 2026 21:59:05 -0400 Subject: [PATCH] Add CI test shards with the data directory on SMB and NFS shares Adds 'smb' and 'nfs' entries to the test matrix that run the DB and file test suites with the test data directory on a loopback CIFS or NFS mount, covering the network-filesystem database handling from bba85a3939. The test harness places the data directory under TMPDIR, so connection initialization itself runs against the share, which is where network-filesystem failures (startup crashes and hangs) occur. The step timeout turns a startup hang into a failure. (cherry picked from commit 18f6fa50d5a86ba36300d37ce0d963727b563cc1) --- .github/workflows/ci.yml | 43 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index be7c70a639..9543d12b97 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,7 +5,7 @@ concurrency: cancel-in-progress: true jobs: test: - name: Test (shard ${{ matrix.shard }}) + name: Test (${{ matrix.shard }}) runs-on: ubuntu-latest # Same-repo PRs are covered by the push run, so run pull_request jobs only for forks if: > @@ -13,7 +13,11 @@ jobs: || github.event.pull_request.head.repo.full_name != github.repository strategy: matrix: - shard: [1, 2, 3, 4] + # Numbered shards split the full suite. 'smb' and 'nfs' run the db and file tests + # with the test data directory on a loopback CIFS or NFS mount, so that connection + # initialization itself runs against a network filesystem, which is where + # network-filesystem failures (startup crashes and hangs) occur. + shard: ['1', '2', '3', '4', 'smb', 'nfs'] steps: - uses: actions/checkout@v4 with: @@ -81,8 +85,41 @@ jobs: cd build unzip ../build.zip + - name: Set up SMB share + if: matrix.shard == 'smb' + run: | + sudo apt install -y --no-install-recommends samba cifs-utils + sudo mkdir -p /srv/zotero-smb /mnt/zotero-smb + sudo chown $(whoami) /srv/zotero-smb + sudo tee -a /etc/samba/smb.conf > /dev/null <