Revision control
Copy as Markdown
Other Tools
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-12, macos-13, macos-14]
rust: [stable]
experimental: [false]
include:
- os: macos-14
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
- name: Setup Rust
run: |
rustup default ${{ matrix.rust }}
toolchain=$(rustup default)
echo "Use Rust toolchain: $toolchain"
rustc --version
cargo --version
- name: Setup switchaudio
if: ${{ matrix.os == 'macos-13' || matrix.os == 'macos-14' }}
run: |
brew install switchaudio-osx
- name: Setup blackhole-2ch
run: |
brew install blackhole-2ch
SwitchAudioSource -s "BlackHole 2ch" -t input
SwitchAudioSource -s "BlackHole 2ch" -t output
- name: Grant microphone access
if: ${{ matrix.os == 'macos-13' || matrix.os == 'macos-14' }}
env:
tcc_extra_columns: ${{ matrix.os == 'macos-14' && ',NULL,NULL,''UNUSED'',1687786159' || '' }}
run: sqlite3 $HOME/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT OR IGNORE INTO access VALUES ('kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159${{ env.tcc_extra_columns }});"
- 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