name: CI Workflow

on: [push, pull_request]

jobs:
  linux:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        config: [debug, release]
        platform: [x64]
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Build
      run: make -f Bootstrap.mak linux PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }}
    - name: Test
      run: bin/${{ matrix.config }}/premake5 test --test-all
    - name: Docs check
      run: bin/${{ matrix.config }}/premake5 docs-check
    - name: Upload Artifacts
      if: matrix.config == 'release'
      uses: actions/upload-artifact@v2
      with:
        name: premake-linux-${{ matrix.platform }}
        path: bin/${{ matrix.config }}/
  macosx:
    runs-on: macos-latest
    strategy:
      matrix:
        config: [debug, release]
        platform: [x64]
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Build
      run: make -f Bootstrap.mak macosx PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }}
    - name: Test
      run: bin/${{ matrix.config }}/premake5 test --test-all
    - name: Docs check
      run: bin/${{ matrix.config }}/premake5 docs-check
    - name: Upload Artifacts
      if: matrix.config == 'release'
      uses: actions/upload-artifact@v2
      with:
        name: premake-macosx-${{ matrix.platform }}
        path: bin/${{ matrix.config }}/
  windows:
    runs-on: windows-latest
    strategy:
      matrix:
        config: [debug, release]
        platform: [Win32, x64]
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Build
      run: |
        call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
        nmake -f Bootstrap.mak MSDEV=vs2019 windows-msbuild PLATFORM=${{ matrix.platform }} CONFIG=${{ matrix.config }}
      shell: cmd
    - name: Test
      run: bin\${{ matrix.config }}\premake5 test --test-all
      shell: cmd
    - name: Docs check
      run: bin\${{ matrix.config }}\premake5 docs-check
      shell: cmd
    - name: Upload Artifacts
      if: matrix.config == 'release'
      uses: actions/upload-artifact@v2
      with:
        name: premake-windows-${{ matrix.platform }}
        path: bin\${{ matrix.config }}\
