Skip to content

Ci/v5 trigger and matrix#615

Open
mtt-ai wants to merge 2 commits intosafishamsi:v5from
mtt-ai:ci/v5-trigger-and-matrix
Open

Ci/v5 trigger and matrix#615
mtt-ai wants to merge 2 commits intosafishamsi:v5from
mtt-ai:ci/v5-trigger-and-matrix

Conversation

@mtt-ai
Copy link
Copy Markdown

@mtt-ai mtt-ai commented Apr 30, 2026

Context

CI on v5 (the default branch) currently does not run — .github/workflows/ci.yml lists ["v1", "v2", "v3", "v4", "main"] in its push/pull_request triggers but omits v5. Every commit and PR to the active development branch ships without test coverage.

Changes

.github/workflows/ci.yml

  • Adds v5 to both push and pull_request triggers — main fix.
  • Expands matrix to 3.10/3.11/3.12/3.13 to match requires-python = ">=3.10". Python 3.13 silently skips graspologic via its existing python_version < '3.13' marker.
  • Installs [all,test] instead of [mcp,pdf,watch] + sidecar pip install pytest. Tests covering transcribe (video), cluster (leiden), serve (mcp), export (svg) now have their dependencies available.
  • Adds pip caching (cache: 'pip' + cache-dependency-path: pyproject.toml).
  • Adds concurrency: block (cancel-in-progress: true on same ref).
  • Adds explicit permissions: { contents: read } for least-privilege.
  • Adds fail-fast: false so a single Python-version regression doesn't mask the others.
  • Adds workflow_dispatch: for manual reruns.

pyproject.toml

Adds test = ["pytest>=7", "pytest-cov"] optional-dependencies group. Kept out of [all] deliberately — [all] is runtime extras only.

Verification

  • After merge, push a trivial commit to v5 and confirm the run shows up in gh run list -R safishamsi/graphify -b v5.
  • The 3.13 job should pass while skipping graspologic.
  • Test count should be ≥ baseline.

Out of scope

Multi-OS matrix, coverage upload, SHA-pinning actions, pruning v1–v4 from triggers.

mtt-ai added 2 commits April 29, 2026 20:43
Defines a `test` optional-dependencies group so CI can install dev tooling
via `pip install -e ".[all,test]"` instead of an ad-hoc `pip install pytest`
sidecar. Kept out of `[all]` deliberately — `[all]` is runtime extras only.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant