--- # yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json name: Lint PR Code Base on: pull_request: branches: [master, main] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: read-all jobs: Linter: name: PR Lint runs-on: ubuntu-latest timeout-minutes: 15 permissions: statuses: write contents: read packages: read issues: write # Used by ivuorinen/actions/pr-lint pull-requests: write # Used by ivuorinen/actions/pr-lint steps: - name: Checkout uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Set up Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: 24.x - name: Set up Go uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 with: go-version-file: go.mod cache: true cache-dependency-path: go.sum - name: Set up Python uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: "3.x" - name: Cache pre-commit uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 with: path: ~/.cache/pre-commit key: ${{ runner.os }}-precommit-${{ hashFiles('.pre-commit-config.yaml') }} - name: Install pre-commit tooling shell: bash run: | make dev-deps - name: Run pre-commit uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1 with: extra_args: --all-files - name: Run integration tests and collect coverage run: | # Run all tests with coverage collection for PR analysis go test -race -covermode=atomic -coverprofile=coverage.out ./... - name: Upload coverage report uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: coverage-report path: coverage.out - name: Run PR Lint # Custom PR linting action that performs additional PR-specific checks # https://github.com/ivuorinen/actions uses: ivuorinen/actions/pr-lint@fa0232d3c4ba16d087b606296435354a69c01756 # 25.8.11