name: Lint Check on: push: branches: [ 'main', '2.0.x-dev' ] pull_request: branches: [ '*' ] permissions: contents: read jobs: agent-guidance: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 with: fetch-depth: 0 - name: Set up Python uses: actions/setup-python@v6 with: python-version: '3.12' - name: Check agent guidance on pull requests if: github.event_name == 'pull_request' run: >- python scripts/check_agent_guidance.py --base-ref "${{ github.event.pull_request.base.sha }}" --head-ref "${{ github.event.pull_request.head.sha }}" --github-annotations - name: Check agent guidance on pushes if: github.event_name == 'push' run: >- python scripts/check_agent_guidance.py --before "${{ github.event.before }}" --after "${{ github.sha }}" --github-annotations lint-backend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v6 with: python-version: '3.12' - name: Install uv uses: astral-sh/setup-uv@v7 with: # Must match backend/Dockerfile's UV_IMAGE tag; pinned by backend/tests/test_ci_uv_version_pin.py version: "0.11.1" - name: Check uv.lock is in sync working-directory: backend run: uv lock --check - name: Install dependencies working-directory: backend run: | uv sync --group dev - name: Lint backend working-directory: backend run: make lint lint-frontend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '24' - name: Enable Corepack run: corepack enable - name: Use pinned pnpm version run: corepack prepare pnpm@10.26.2 --activate - name: Install frontend dependencies run: | cd frontend pnpm install --frozen-lockfile - name: Check frontend formatting run: | cd frontend pnpm format - name: Run frontend linting run: | cd frontend pnpm lint - name: Check TypeScript types run: | cd frontend pnpm typecheck - name: Build frontend run: | cd frontend BETTER_AUTH_SECRET=local-dev-secret pnpm build