name: NATS Server Testing
on: [push, pull_request]

jobs:
  test:
    strategy:
      matrix:
        go: ["1.21"]
    env:
      GOPATH: /home/runner/work/nats-server
      GO111MODULE: "on"

    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
        with:
          path: src/github.com/nats-io/nats-server

      - name: Setup Go
        uses: actions/setup-go@v4
        with:
          go-version: ${{matrix.go}}

      - name: Install deps
        shell: bash --noprofile --norc -x -eo pipefail {0}
        run: |
          go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.53.3

      - name: Lint
        shell: bash --noprofile --norc -x -eo pipefail {0}
        run: |
          golangci-lint run

      - name: Run tests
        shell: bash --noprofile --norc -x -eo pipefail {0}
        run: |
          set -e
          go test -vet=off -i ./...
          # go test -vet=off -v -run=TestNoRace --failfast -p=1 ./...
          # coverage via cov.sh disabled while just testing the waters
          # Also disable race since we are overwhelming the GHA runners.
          go test -vet=off -v -p=1 --failfast ./...
          set +e
