pcloudcc-lneely/.github/workflows/c-cpp.yml

137 lines
4.0 KiB
YAML

name: C/C++ CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
fuse2:
name: FUSE 2 (debian:trixie)
runs-on: ubuntu-latest
container:
image: debian:trixie
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
apt-get update
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-current:
name: FUSE 3 current (debian:trixie)
runs-on: ubuntu-latest
container:
image: debian:trixie
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 current)
run: make FORCE_FUSE=3 BUILD=release
- name: Verify symbols
run: |
nm pcloudcc | grep 'fuse_loop_mt_31'
ldd pcloudcc | grep libfuse3
fuse3-arch:
name: FUSE 3 rolling (archlinux:latest)
runs-on: ubuntu-latest
container:
image: archlinux:latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
pacman -Sy --noconfirm base-devel pkg-config readline fuse3 sqlite3 \
zlib boost mbedtls
- name: Build (FUSE 3 rolling)
run: make FORCE_FUSE=3 BUILD=release
- name: Verify symbols
run: |
nm pcloudcc | grep 'fuse_loop_mt'
ldd pcloudcc | grep libfuse3
fuse3-fedora41:
name: FUSE 3 (fedora:41)
runs-on: ubuntu-latest
container:
image: fedora:41
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
dnf install -y gcc gcc-c++ make pkg-config binutils \
readline-devel systemd-devel fuse3-devel sqlite-devel zlib-devel \
boost-devel boost-program-options mbedtls3.6-devel
- name: Build (FUSE 3 Fedora 41)
run: make FORCE_FUSE=3 BUILD=release
- name: Verify symbols
run: |
nm pcloudcc | grep 'fuse_loop_mt'
ldd pcloudcc | grep libfuse3
fuse3-fedora-latest:
name: FUSE 3 (fedora:latest)
runs-on: ubuntu-latest
container:
image: fedora:latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
dnf install -y gcc gcc-c++ make pkg-config binutils \
readline-devel systemd-devel fuse3-devel sqlite-devel zlib-devel \
boost-devel boost-program-options mbedtls-devel
- name: Build (FUSE 3 Fedora latest)
run: make FORCE_FUSE=3 BUILD=release
- name: Verify symbols
run: |
nm pcloudcc | grep 'fuse_loop_mt'
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
test:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential libfuse3-dev libmbedtls-dev libsqlite3-dev libreadline-dev libudev-dev zlib1g-dev
- name: Run tests
run: make test