on: [push, pull_request]
name: test
jobs:
  test:
    strategy:
      fail-fast: false
      matrix:
        go-version: [1.18.x, 1.19.x]
        platform: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.platform }}
    steps:
    - name: Install Go
      uses: actions/setup-go@v1
      with:
        go-version: ${{ matrix.go-version }}
    - name: Checkout code
      uses: actions/checkout@v1
    - name: Run tests
      run: ./_tools/go-inline *.go && go fmt . &&  go test -v ./... -covermode=count -coverprofile=coverage.out -coverpkg=$(go list ./... | sed 's/\n/,/g')
    - name: Send coverage
      if: "matrix.platform == 'ubuntu-latest'"
      env:
        COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: |
        GO111MODULE=off go get github.com/mattn/goveralls
        ./_tools/go-inline *.go && go fmt .
        $(go env GOPATH)/bin/goveralls -coverprofile=coverage.out -service=github
