name: Test

on:
  pull_request:
  push:
    tags:
      - v*
    branches:
      - main

jobs:
  test:
    name: Test
    strategy:
      matrix:
        go-version: [1.20.x, 1.21.x]
        platform: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{matrix.platform}}
    steps:
      - name: Set up Go ${{matrix.go-version}}
        uses: actions/setup-go@v3
        with:
          go-version: ${{matrix.go-version}}
        id: go

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

      - name: Download Go modules
        run: go mod download
        env:
          GOPROXY: https://proxy.golang.org

      - name: Build
        run: go build -o ./bin/task -v ./cmd/task

      - name: Test
        run: ./bin/task test --output=group --output-group-begin='::group::{{.TASK}}' --output-group-end='::endgroup::'
