name: Build on: [push, pull_request] jobs: build: runs-on: ${{ matrix.os }} env: BUILD_TYPE: ${{ matrix.type }} strategy: matrix: os: [ubuntu-20.04, windows-2019, macos-11] type: [Release, Debug] steps: - uses: actions/checkout@v4 with: submodules: true - name: Install Dependencies (Linux) run: sudo apt-get update && sudo apt-get install libpulse-dev pulseaudio if: matrix.os == 'ubuntu-20.04' - name: Start Sound Server (Linux) run: pulseaudio -D --start if: matrix.os == 'ubuntu-20.04' - name: Install virtual audio devices (Windows) run: git clone https://github.com/LABSN/sound-ci-helpers && powershell sound-ci-helpers/windows/setup_sound.ps1 if: ${{ matrix.os == 'windows-2019' }} - name: Allow microphone access to all apps (Windows) shell: pwsh run: | New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy\" New-ItemProperty -Path "HKLM:\SOFTWARE\policies\microsoft\windows\appprivacy" -Name "LetAppsAccessMicrophone" -Value "0x00000001" -PropertyType "dword" if: ${{ matrix.os == 'windows-2019' }} - name: Configure CMake shell: bash run: cmake -S . -B build -DCMAKE_BUILD_TYPE=$BUILD_TYPE - name: Build shell: bash run: cmake --build build - name: Test shell: bash run: (cd build && ctest -V) - name: Test winmm shell: bash run: (cd build && CUBEB_BACKEND=winmm ctest -V) if: ${{ matrix.os == 'windows-2019' }} build-android: runs-on: ubuntu-20.04 env: BUILD_TYPE: ${{ matrix.type }} strategy: matrix: type: [Release, Debug] steps: - uses: actions/checkout@v4 with: submodules: true - name: Configure CMake shell: bash run: cmake -S . -B build -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=android-28 - name: Build shell: bash run: cmake --build build check_format: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: submodules: true - name: Install Dependencies (Linux) run: sudo apt-get update && sudo apt-get install clang-format-15 - name: Configure CMake shell: bash run: cmake -S . -B build -DCLANG_FORMAT_BINARY=clang-format-15 - name: Check format shell: bash run: cmake --build build --target clang-format-check