| jobs: | jobs: | ||||
| build: | build: | ||||
| runs-on: ubuntu-latest | |||||
| runs-on: ${{ matrix.os }} | |||||
| name: Build with ${{ matrix.sanitizer }} sanitizer on ${{ matrix.arch }} | |||||
| name: Build with ${{ matrix.sanitizer }} sanitizer on ${{ matrix.os }} ${{ matrix.arch }} | |||||
| strategy: | strategy: | ||||
| fail-fast: false | fail-fast: false | ||||
| matrix: | matrix: | ||||
| os: [ubuntu-latest, macos-latest] | |||||
| arch: [x86-64, x86-32] | arch: [x86-64, x86-32] | ||||
| sanitizer: [no, address, leak, memory, thread, undefined, valgrind] | sanitizer: [no, address, leak, memory, thread, undefined, valgrind] | ||||
| sanitizer: memory | sanitizer: memory | ||||
| - arch: x86-32 | - arch: x86-32 | ||||
| sanitizer: thread | sanitizer: thread | ||||
| # 32-bit macOS is not supported | |||||
| - os: macos-latest | |||||
| arch: x86-32 | |||||
| # These are not supported on macos | |||||
| - os: macos-latest | |||||
| sanitizer: leak | |||||
| - os: macos-latest | |||||
| sanitizer: memory | |||||
| - os: macos-latest | |||||
| sanitizer: valgrind | |||||
| steps: | steps: | ||||
| - uses: actions/checkout@v2 | - uses: actions/checkout@v2 | ||||
| - name: enable 32bit architecture | - name: enable 32bit architecture | ||||
| run: sudo dpkg --add-architecture i386 | run: sudo dpkg --add-architecture i386 | ||||
| if: matrix.arch == 'x86-32' | if: matrix.arch == 'x86-32' | ||||
| - name: dependencies | |||||
| - name: dependencies-apt | |||||
| if: matrix.os == 'ubuntu-latest' | |||||
| run: sudo apt-get update && sudo apt-get install libpcaudio-dev libsonic-dev ronn kramdown ${{ matrix.deps }} ${{ matrix.archdeps }} | run: sudo apt-get update && sudo apt-get install libpcaudio-dev libsonic-dev ronn kramdown ${{ matrix.deps }} ${{ matrix.archdeps }} | ||||
| - name: dependencies-brew | |||||
| if: matrix.os == 'macos-latest' | |||||
| run: brew install libtool automake ronn OJFord/homebrew-formulae/kramdown ${{ matrix.archdeps }} | |||||
| - name: autoconf | - name: autoconf | ||||
| run: ./autogen.sh ; chmod -x INSTALL m4/*.m4 | run: ./autogen.sh ; chmod -x INSTALL m4/*.m4 | ||||
| - name: configure | - name: configure |