name: Build and Test
on: [push, pull_request]
jobs:
  build:
    name: Go CI
    runs-on: ubuntu-latest
    strategy:
      matrix:
        go: ["1.22", "1.23"]
    steps:
      - name: Set up Go
        uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 #v5.0.2
        with:
          go-version: ${{ matrix.go }}
      - name: Check out source
        uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 #v4.1.7
      - name: Build
        run: go build ./...
      - name: Install Linters
        run: "curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.61.0"
      - name: Test and Lint
        run: ./run_tests.sh
