name: PR Checks on: pull_request: branches: - main jobs: lint-test-and-build: runs-on: ubuntu-latest container: image: golang:1.27-bookworm volumes: - go-mod-cache:/go/pkg/mod - go-build-cache:/root/.cache/go-build steps: - name: Install system dependencies run: | apt-get update && apt-get install -y --no-install-recommends curl curl -fsSL https://deb.nodesource.com/setup_24.x | bash - apt-get install -y nodejs - name: Checkout uses: actions/checkout@v4 - name: Check formatting run: | unformatted=$(gofmt -l .) if [ -n "$unformatted" ]; then echo "Not gofmt'd:" echo "$unformatted" exit 1 fi - name: Download modules run: go mod download - name: Lint run: make lint - name: Test run: make test - name: Build run: make build