Extend CI matrix: add FUSE 2, FUSE 3 legacy/current/forky build jobs

Replaces single build job with four jobs covering all tested FUSE configs:
- fuse2: debian:trixie + libfuse-dev (FUSE_USE_VERSION=26)
- fuse3-legacy: ubuntu:20.04 + libfuse3-dev 3.9.x (fuse_loop_mt_31 path)
- fuse3-current: ubuntu:22.04 + libfuse3-dev 3.12.x
- fuse3-forky: debian:forky + libfuse3-dev 3.18.1

Each job verifies correct symbol linkage after build. Runtime mount tests
are outside CI scope (require privileged containers with /dev/fuse).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Levi Neely 2026-03-09 21:28:36 +01:00
parent d8a7aba745
commit 9fc23137bb
1 changed files with 75 additions and 4 deletions

View File

@ -7,7 +7,8 @@ on:
branches: [ "main" ]
jobs:
build:
fuse2:
name: FUSE 2 (debian:trixie)
runs-on: ubuntu-latest
container:
image: debian:trixie
@ -16,6 +17,76 @@ jobs:
- name: Install dependencies
run: |
apt-get update
apt-get install -y build-essential libreadline-dev libudev-dev libfuse-dev libsqlite3-dev zlib1g-dev libboost-dev libboost-system-dev libboost-program-options-dev libmbedtls-dev
- name: make
run: make
apt-get install -y build-essential pkg-config libreadline-dev libudev-dev \
libfuse-dev libsqlite3-dev zlib1g-dev \
libboost-dev libboost-program-options-dev libmbedtls-dev
- name: Build (FUSE 2)
run: make FORCE_FUSE=2 BUILD=release
- name: Verify symbols
run: |
nm pcloudcc | grep -E 'fuse_loop_mt@|fuse_mount@|psync_fuse_channel'
ldd pcloudcc | grep libfuse.so.2
fuse3-legacy:
name: FUSE 3 legacy / <3.12 (ubuntu:20.04)
runs-on: ubuntu-latest
container:
image: ubuntu:20.04
steps:
- uses: actions/checkout@v4
- name: Install dependencies
env:
DEBIAN_FRONTEND: noninteractive
run: |
apt-get update
apt-get install -y build-essential pkg-config libreadline-dev libudev-dev \
libfuse3-dev libsqlite3-dev zlib1g-dev \
libboost-dev libboost-program-options-dev libmbedtls-dev
- name: Build (FUSE 3 legacy)
run: make FORCE_FUSE=3 BUILD=release
- name: Verify symbols
run: |
nm pcloudcc | grep 'fuse_loop_mt_31'
ldd pcloudcc | grep libfuse3
fuse3-current:
name: FUSE 3 current / 3.12+ (ubuntu:22.04)
runs-on: ubuntu-latest
container:
image: ubuntu:22.04
steps:
- uses: actions/checkout@v4
- name: Install dependencies
env:
DEBIAN_FRONTEND: noninteractive
run: |
apt-get update
apt-get install -y build-essential pkg-config libreadline-dev libudev-dev \
libfuse3-dev libsqlite3-dev zlib1g-dev \
libboost-dev libboost-program-options-dev libmbedtls-dev
- name: Build (FUSE 3 current)
run: make FORCE_FUSE=3 BUILD=release
- name: Verify symbols
run: |
nm pcloudcc | grep 'fuse_loop_mt_31'
ldd pcloudcc | grep libfuse3
fuse3-forky:
name: FUSE 3.18+ (debian:forky)
runs-on: ubuntu-latest
container:
image: debian:forky
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
apt-get update
apt-get install -y build-essential pkg-config libreadline-dev libudev-dev \
libfuse3-dev libsqlite3-dev zlib1g-dev \
libboost-dev libboost-program-options-dev libmbedtls-dev
- name: Build (FUSE 3.18+)
run: make FORCE_FUSE=3 BUILD=release
- name: Verify symbols
run: |
nm pcloudcc | grep 'fuse_loop_mt_31'
ldd pcloudcc | grep libfuse3