name: Tests and linters on: pull_request: push: branches: - master jobs: lint: name: Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: '1.23' cache: true - name: Install linters run: make lint-install - name: Run linters run: make lint tests: name: Tests runs-on: ubuntu-latest strategy: matrix: go_versions: [ '1.22', '1.23' ] fail-fast: false steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: '${{ matrix.go_versions }}' cache: true - name: Run tests run: make test tests-race: name: Tests with -race runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: '1.22' cache: true - name: Run tests run: go test ./... -count=1 -race staticcheck: name: Staticcheck runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: '1.23' cache: true - name: Install staticcheck run: make staticcheck-install - name: Run staticcheck run: make staticcheck-run gopls: name: gopls check runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: '1.22' cache: true - name: Install gopls run: make gopls-install - name: Run gopls run: make gopls-run fumpt: name: Run gofumpt runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: '1.23' cache: true - name: Install gofumpt run: make fumpt-install - name: Run gofumpt run: | make fumpt git diff --exit-code --quiet