name: Build and Test
on: [push, pull_request]
jobs:
  build:
    name: Go CI
    runs-on: ubuntu-latest
    strategy:
      matrix:
        go: ["1.20", "1.21"]
    steps:
      - name: Set up Go
        uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe #v4.1.0
        with:
          go-version: ${{ matrix.go }}
      - name: Check out source
        uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 #v3.5.3
      - 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.54.2"
      - name: Test and Lint
        run: ./run_tests.sh
