name: Coverage

on:
  push:
    branches:
      - master
      - v*
    paths:
      - "**/*.go"

jobs:
  coverage:
    runs-on: ubuntu-latest
    steps:
      - name: Set up Go 1.x
        uses: actions/setup-go@v2
        with:
          go-version: ^1.16.4

      - name: Checkout codebase
        uses: actions/checkout@v2

      - name: Get dependencies
        run: go get -v -t -d ./...

      - name: Run coverage
        run: |
          chmod u+x ./testing/coverage/coverall.sh
          ./testing/coverage/coverall.sh

      - name: Upload coverage to Codecov
        uses: codecov/codecov-action@v1
        with:
          file: ./coverage.txt
          fail_ci_if_error: true
