name: Test
on: pull_request
env:
  GO_VERSION: "1.16"
jobs:
  test:
    name: Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Lint
        uses: golangci/golangci-lint-action@v2
        with:
          version: v1.31
          args: --deadline=30m

      - name: Run unit tests
        run: make test

      - name: Upload code coverage
        uses: codecov/codecov-action@v1
        with:
          files: ./coverage.txt

  integration:
    name: Integration Test
    runs-on: ubuntu-latest
    steps:
    - name: Set up Go
      uses: actions/setup-go@v1
      with:
        go-version: ${{ env.GO_VERSION }}
      id: go

    - name: Check out code into the Go module directory
      uses: actions/checkout@v2

    - name: Run integration tests
      run: make test-integration

  build-test:
    name: Build Test
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2

    - name: Set up Go
      uses: actions/setup-go@v1
      with:
        go-version: ${{ env.GO_VERSION }}

    - name: Run GoReleaser
      uses: goreleaser/goreleaser-action@v1
      with:
        version: latest
        args: release --snapshot --rm-dist --skip-publish

