name: build

on:
  push:
  pull_request:

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        include:
          - name: Ubuntu
            os: ubuntu-latest
            install_dir: ~/libmad
            cmake_extras: -DCMAKE_BUILD_TYPE=RelWithDebInfo
          - name: macOS
            os: macos-latest
            install_dir: ~/libmad
            cmake_extras: -DCMAKE_BUILD_TYPE=RelWithDebInfo
          - name: Windows
            os: windows-latest
            install_dir: C:\libmad
            cmake_config: --config RelWithDebInfo

    name: ${{ matrix.name }}
    runs-on: ${{ matrix.os }}
    steps:
    - name: Check out Git repository
      uses: actions/checkout@v2
    - name: Configure
      run: cmake -DCMAKE_INSTALL_PREFIX=${{ matrix.install_dir }} ${{ matrix.cmake_extras }} -S . -B build
    - name: Build
      run: cmake --build build ${{ matrix.cmake_config }}
      env:
        CMAKE_BUILD_PARALLEL_LEVEL: 2
    - name: Install
      run: cmake --install . ${{ matrix.cmake_config }}
      working-directory: build
    - name: Upload Build Artifact
      uses: actions/upload-artifact@v2
      with:
        name: ${{ matrix.name }} libmad build
        path: ${{ matrix.install_dir }}
