---
name: build
on:
  push:
    tags:
      - v*
    branches:
      - main
      - master
  pull_request:
permissions:
  contents: write
  pull-requests: read
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        go:
          - '1.17'
          - '1.18'
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Set up Go
        uses: actions/setup-go@v3
        with:
          go-version: ${{ matrix.go }}
      - name: golangci-lint
        uses: golangci/golangci-lint-action@v3
        with:
          only-new-issues: true
      - name: Test
        run: go test -v -coverprofile=cover.out ./...
      - name: Send coverage
        uses: shogo82148/actions-goveralls@v1
        with:
          path-to-profile: cover.out
          flag-name: Go-${{ matrix.go }}
          parallel: true
  finish:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: shogo82148/actions-goveralls@v1
        with:
          parallel-finished: true
      - name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Set up Go
        uses: actions/setup-go@v3
        with:
          go-version: '1.18'
      - name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v3.1.0
        with:
          version: latest
          args: release --rm-dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
