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: Sanitizer Test if: ${{ matrix.rust == 'nightly' }} run: sh run_sanitizers.sh