libfuse-sys 0.5.0

Raw bindings to libfuse
Documentation
name: CI

on:
  push:
    branches:
      - '**'
    tags:
      - '*'
  pull_request:
    branches:
      - master

jobs:
  build-ubuntu-fuse2:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [
          "ubuntu-24.04",
          "ubuntu-26.04",
          "ubuntu-24.04-arm",
          "ubuntu-26.04-arm",
        ]
    steps:
      - name: Checkout
        uses: actions/checkout@v7

      - name: Install libfuse-dev
        run: sudo apt-get install -y libfuse-dev

      - name: Build
        run: cargo build --features fuse_26 --verbose

      - name: Test
        run: cargo test --features fuse_26 --verbose

      - name: Upload bindings
        uses: actions/upload-artifact@v7
        if: failure()
        with:
          name: fuse_bindings
          path: |
            target/fuse.rs
            target/fuse_lowlevel.rs

  build-ubuntu-fuse3:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [
          "ubuntu-24.04",
          "ubuntu-26.04",
          "ubuntu-24.04-arm",
          "ubuntu-26.04-arm",
        ]
    steps:
      - name: Checkout
        uses: actions/checkout@v7

      - name: Install libfuse3-dev
        run: sudo apt-get install -y libfuse3-dev

      - name: Build
        run: cargo build --features fuse_35 --verbose

      - name: Test
        run: cargo test --features fuse_35 --verbose

      - name: Upload bindings
        uses: actions/upload-artifact@v7
        if: failure()
        with:
          name: fuse_bindings
          path: |
            target/fuse.rs
            target/fuse_lowlevel.rs

  build-macos:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [
          "macos-15",
          "macos-26",
          "macos-15-intel",
          "macos-26-intel",
        ]
    steps:
      - name: Checkout
        uses: actions/checkout@v7

      - name: Install macfuse
        run: brew install macfuse

      - name: Build
        run: cargo build --verbose

      - name: Test
        run: cargo test --verbose

      - name: Upload bindings
        uses: actions/upload-artifact@v7
        if: failure()
        with:
          name: fuse_bindings
          path: |
            target/fuse.rs
            target/fuse_lowlevel.rs