cubeb-sys 0.35.3

Native bindings to the cubeb library
Documentation
name: Build & Test

on: [push, pull_request]

jobs:
  build:
    runs-on: ${{ matrix.os }}
    continue-on-error: ${{ matrix.experimental }}
    strategy:
      fail-fast: false
      matrix:
        os: [macos-14, macos-15]
        rust: [stable]
        experimental: [false]
        include:
          - os: macos-15
            rust: nightly
            experimental: true

    steps:
    - uses: actions/checkout@v4
      with:
        submodules: recursive

    - name: Install Rust
      run: rustup toolchain install ${{ matrix.rust }} --profile minimal --component rustfmt,clippy,rust-src

    - name: Setup Rust
      run: |
        rustup default ${{ matrix.rust }}
        toolchain=$(rustup default)
        echo "Use Rust toolchain: $toolchain"
        rustc --version
        cargo --version

    - name: Setup switchaudio
      run: |
        brew install switchaudio-osx

    - name: Setup blackhole-2ch
      run: |
        brew install blackhole-2ch
        sudo killall -9 coreaudiod
        SwitchAudioSource -s "BlackHole 2ch" -t input
        SwitchAudioSource -s "BlackHole 2ch" -t output

    - name: Build
      run: cargo build --verbose

    - name: Regular Test
      run: sh run_tests.sh
    
    - name: AddressSanitizer Test
      if: ${{ matrix.rust == 'nightly' }}
      run: sh run_sanitizers.sh address

    - name: ThreadSanitizer Test
      if: ${{ matrix.rust == 'nightly' }}
      run: sh run_sanitizers.sh thread