on:
  pull_request:
    branches:
      - master
  push:
    branches:
      - master

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build-macos:
    strategy:
      matrix:
        go-version: [1.20.x]
        platform: [macOS-12]
    runs-on: ${{ matrix.platform }}
    steps:
      - id: go-cache-paths
        run: |
          echo "go-build=$(go env GOCACHE)"  >> $GITHUB_OUTPUT
          echo "go-mod=$(go env GOMODCACHE)" >> $GITHUB_OUTPUT

      - uses: actions/setup-go@v3
        with:
          go-version: ${{ matrix.go-version }}
      - uses: actions/checkout@v3

      # cache go build cache
      - name: Cache go modules
        uses: actions/cache@v3
        with:
          path: ${{ steps.go-cache-paths.outputs.go-build }}
          key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }}
          restore-keys: ${{ runner.os }}-go-build

      # cache go mod cache
      - name: Cache go modules
        uses: actions/cache@v3
        with:
          path: ${{ steps.go-cache-paths.outputs.go-mod }}
          key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }}
          restore-keys: ${{ runner.os }}-go-mod

      - name: Install brew dependencies
        run: brew install coreutils

      - name: Run build
        run: make build
