name: build

on: [push, pull_request]

jobs:

  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2

    - name: Set up Go
      uses: actions/setup-go@v2
      with:
        go-version: 1.19

    - name: Vet
      run: go vet ./...
    
    - name: Test
      run: go test -race ./... && echo true
      

  coverage:
    runs-on: ubuntu-latest
    steps:
      - name: Install Go
        if: success()
        uses: actions/setup-go@v2
        with:
          go-version: 1.19.x
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Calc coverage
        run: |
          go test -v -covermode=count -coverprofile=coverage.out ./...
      - name: Convert coverage.out to coverage.lcov
        uses: jandelgado/gcov2lcov-action@v1.0.6
      - name: Coveralls
        uses: coverallsapp/github-action@v1.1.2
        with:
          github-token: ${{ secrets.github_token }}
          path-to-lcov: coverage.lcov
