feat: add Blender Studio — visual session editor with AI Assistant panel #5
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", "master"] | |
| pull_request: | |
| branches: ["main", "master"] | |
| # Cancel in-progress runs for the same branch (saves CI minutes on rapid pushes) | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| # ── 1. Lint & Format ──────────────────────────────────────────────────────── | |
| lint: | |
| name: "Lint & Format (ruff)" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: "Set up uv" | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| - name: "Lint — ruff check" | |
| # uvx runs a tool without installing into project venv | |
| run: uvx ruff check src/ tests/ blender_mcp_addon/ | |
| - name: "Format — ruff format --check" | |
| run: uvx ruff format --check src/ tests/ blender_mcp_addon/ | |
| # ── 2. Complexity (McCabe via ruff C90) ───────────────────────────────────── | |
| complexity: | |
| name: "Complexity Check (McCabe ≤ 12)" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: "Set up uv" | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| - name: "McCabe complexity — ruff C90" | |
| # Flags any function/method with cyclomatic complexity > 12 | |
| # Config lives in pyproject.toml [tool.ruff.lint.mccabe] | |
| run: uvx ruff check --select C90 src/ tests/ blender_mcp_addon/ | |
| # ── 3. Type Check (mypy — src/ only) ──────────────────────────────────────── | |
| # blender_mcp_addon/ is excluded because `bpy` (Blender Python API) | |
| # has no public type stubs and cannot be installed outside Blender. | |
| type-check: | |
| name: "Type Check (mypy — src/)" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: "Set up uv" | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| - name: "Install project + dev deps" | |
| run: uv sync --group dev | |
| - name: "mypy — src/" | |
| run: uv run mypy src/ |