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 <