on: [push, pull_request]
name: Test
jobs:
  test:
    strategy:
      matrix:
        go-version: [1.17.x]
        platform: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.platform }}
    steps:
    - name: Install Go
      uses: actions/setup-go@v2
      with:
        go-version: ${{ matrix.go-version }}
    # Windows throws false positives with linting because of CRLF / goimports incompat
    - name: Set git to use LF
      run: |
        git config --global core.autocrlf false
        git config --global core.eol lf
    - name: Checkout code
      uses: actions/checkout@v2
    - name: Run Setup
      run: make setup
    - name: Install protoc
      uses: arduino/setup-protoc@v1
      with:
        repo-token: ${{ secrets.GITHUB_TOKEN }}
    - name: Install protoc deps
      run: |
        go get github.com/golang/protobuf/protoc-gen-go
        go get github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc
      shell: bash
    - name: Run Tests
      run: make ci
      shell: bash
