name: build
on: [push, pull_request]
jobs:
  test:
    strategy:
      matrix:
        go-version: [1.15.x, ^1]
        platform: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.platform }}
    env:
      GO111MODULE: "on"
    steps:

    - name: Configure git for private modules
      env:
        TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
      run: git config --global url."https://meowgorithm:${TOKEN}@github.com".insteadOf "https://github.com"

    - name: Install Go
      uses: actions/setup-go@v1
      with:
        go-version: ${{ matrix.go-version }}

    - name: Checkout code
      uses: actions/checkout@v1

    - name: Download Go modules
      run: go mod download

    - name: Build
      run: go build -v ./...

    - name: Test
      run: go test -v ./...

    - name: Coverage
      env:
        COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: |
        go test -race -covermode atomic -coverprofile=profile.cov ./...
        GO111MODULE=off go get github.com/mattn/goveralls
        $(go env GOPATH)/bin/goveralls -coverprofile=profile.cov -service=github
      if: matrix.go-version == '1.15.x' && matrix.platform == 'ubuntu-latest'
