chore(ts)(deps-dev): Bump the npm-minor-patch group across 1 directory with 4 updates #165
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main, develop] | |
| pull_request: | |
| branches: [main] | |
| # Cancel in-progress runs when a new workflow with the same group name is triggered | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| # Detect if code changes warrant full CI run | |
| changes: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| code: ${{ steps.filter.outputs.code }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dorny/paths-filter@v4 | |
| id: filter | |
| with: | |
| filters: | | |
| code: | |
| - '!docs/**' | |
| - '!mkdocs.yml' | |
| - '!*.md' | |
| - '!LICENSE' | |
| - '!.github/copilot-instructions.md' | |
| - '!.github/pull_request_template.md' | |
| - '!.github/agents/**' | |
| - '!.github/instructions/**' | |
| - '!.github/prompts/**' | |
| test: | |
| needs: changes | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false # Don't cancel other matrix jobs if one fails | |
| matrix: | |
| python-version: ["3.12", "3.13", "3.14"] | |
| steps: | |
| - name: Skip for docs-only changes | |
| if: needs.changes.outputs.code == 'false' | |
| run: echo "Skipping tests for documentation-only changes" | |
| - name: Checkout code | |
| if: needs.changes.outputs.code == 'true' | |
| uses: actions/checkout@v6 | |
| - name: Install uv | |
| if: needs.changes.outputs.code == 'true' | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: "uv.lock" | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install pnpm | |
| if: needs.changes.outputs.code == 'true' | |
| uses: pnpm/action-setup@v6 | |
| - name: Install Node.js | |
| if: needs.changes.outputs.code == 'true' | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "20" | |
| cache: "pnpm" | |
| - name: Install dependencies | |
| if: needs.changes.outputs.code == 'true' | |
| run: | | |
| uv sync --all-extras | |
| pnpm install --frozen-lockfile | |
| - name: Check code formatting | |
| if: needs.changes.outputs.code == 'true' | |
| run: uv run poe format-check | |
| - name: Run linting and type checking | |
| if: needs.changes.outputs.code == 'true' | |
| run: uv run poe lint | |
| - name: Run tests | |
| if: needs.changes.outputs.code == 'true' | |
| run: uv run poe test-coverage | |
| - name: Upload coverage to Codecov | |
| if: needs.changes.outputs.code == 'true' | |
| uses: codecov/codecov-action@v6 | |
| with: | |
| files: coverage.xml | |
| fail_ci_if_error: false | |
| quality: | |
| needs: changes | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Skip for docs-only changes | |
| if: needs.changes.outputs.code == 'false' | |
| run: echo "Skipping quality checks for documentation-only changes" | |
| - name: Checkout code | |
| if: needs.changes.outputs.code == 'true' | |
| uses: actions/checkout@v6 | |
| - name: Install uv | |
| if: needs.changes.outputs.code == 'true' | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: "uv.lock" | |
| python-version: "3.14" | |
| - name: Install dependencies | |
| if: needs.changes.outputs.code == 'true' | |
| run: uv sync --all-extras | |
| - name: Validate OpenAPI specification | |
| if: needs.changes.outputs.code == 'true' | |
| run: uv run poe validate-openapi | |
| - name: Build documentation | |
| if: needs.changes.outputs.code == 'true' | |
| run: uv run poe docs-build | |
| env: | |
| CI_DOCS_BUILD: "true" | |
| - name: Test documentation | |
| if: needs.changes.outputs.code == 'true' | |
| run: uv run poe test-docs | |
| env: | |
| CI_DOCS_BUILD: "true" |