diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e7c06f1..07142e7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,8 +54,6 @@ jobs: echo "leaf=$leaf" >> "$GITHUB_OUTPUT" lint: # Static checks are interpreter-version agnostic; run them once. - needs: changes - if: needs.changes.outputs.leaf != 'true' runs-on: [self-hosted, linux, x64, spikeforge-ci] steps: - uses: actions/checkout@v4 @@ -84,12 +82,11 @@ jobs: test: # The full suite across every supported interpreter (python_requires). needs: changes - if: needs.changes.outputs.leaf != 'true' runs-on: [self-hosted, linux, x64, spikeforge-ci] strategy: fail-fast: false matrix: - python-version: ["3.10", "3.11", "3.12", "3.13"] + python-version: ${{ fromJSON(needs.changes.outputs.leaf == 'true' && '["3.12"]' || '["3.10", "3.11", "3.12", "3.13"]') }} steps: - uses: actions/checkout@v4 @@ -374,8 +371,6 @@ jobs: # # Deliberately torch-free: readme_renderer plus the stdlib is the whole # dependency set, so this stays one of the fastest jobs in the matrix. - needs: changes - if: needs.changes.outputs.leaf != 'true' runs-on: [self-hosted, linux, x64, spikeforge-ci] steps: - uses: actions/checkout@v4 @@ -428,8 +423,6 @@ jobs: # The static half of the core boundary: no module-level import of a # forbidden root, and no function-local import outside the lazy shims. # Pure stdlib, so no dependencies are installed. - needs: changes - if: needs.changes.outputs.leaf != 'true' runs-on: [self-hosted, linux, x64, spikeforge-ci] steps: - uses: actions/checkout@v4 @@ -509,8 +502,6 @@ jobs: packaging-guards: # The three lightweight topology guards: disjoint import roots (PEP 420), # console-script ownership, and satellite pins == compatibility.json. - needs: changes - if: needs.changes.outputs.leaf != 'true' runs-on: [self-hosted, linux, x64, spikeforge-ci] steps: - uses: actions/checkout@v4