name: Golang format and test

on:
  pull_request:
    paths:
      - "go/**"
    branches: [ main ]
    types: [ opened, synchronize, reopened ]

jobs:
  verify:
    name: Verify
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: go

    steps:
      - name: Check out repository code
        uses: actions/checkout@v4

      - uses: actions/setup-go@v5
        with:
          go-version-file: go/go.mod
          cache-dependency-path: go/go.sum

      - name: Verify gofmt
        run: |
          if [ -n "$(gofmt -l .)" ]; then
            echo "The following files are not formatted correctly:"
            gofmt -l .
            exit 1
          fi

      - name: Run tests
        run: go test ./...
