Skip to content

Bump CI test matrix to Python 3.14-3.11, PyTorch 2.12, CUDA 13.2#14432

Open
marawan206 wants to merge 2 commits into
masterfrom
ci-trigger-policy
Open

Bump CI test matrix to Python 3.14-3.11, PyTorch 2.12, CUDA 13.2#14432
marawan206 wants to merge 2 commits into
masterfrom
ci-trigger-policy

Conversation

@marawan206

@marawan206 marawan206 commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

What

Bumps the GPU CI matrix to the versions requested by Comfy:

  • Python: 3.14, 3.13, 3.12, 3.11
  • PyTorch: 2.12
  • CUDA: 13.2 (cu132)

This replaces the earlier trigger-policy change on this branch. Per Comfy's
guidance, we leave the triggers as-is and update the version matrix instead.

Changes to test-ci.yml

  • test-stable matrix → Python 3.14/3.13/3.12/3.11, cuda_version: 13.2, torch pinned to 2.12.
  • cuda_version is now actually passed to comfy-action (it was defaulting to 12.1).
  • torch 2.12 + torchvision are installed from the cu132 wheel index via the
    action's specific path.
  • test-unix-nightly CUDA bumped 12.1 → 13.2.

Wheels verified present on download.pytorch.org/whl/cu132/:
torch-2.12.1+cu132-cp314…, torchvision-0.27.1+cu132-cp314… (cp311–cp314, linux x86_64).

Dependencies / follow-ups (this PR is not mergeable alone)

  1. Companion PR in comfy-org/comfy-action — the matrix uses torch_version: specific,
    but that install path is currently macOS-only. A Linux specific step is required.
  2. Runner provisioning — the self-hosted GPU runners need conda envs
    (gha-comfyui-<py>-specific) + CUDA 13.2 drivers, and Turing-or-newer GPUs
    (CUDA 13.x dropped older architectures).
  3. torchaudio — omitted from the cu132 pin (no cu132 build for these Python
    versions; it stops at 2.2.0/cp312). requirements.txt still lists it, so that
    leg needs validation once a runner exists; may need to be made optional.

@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The test-ci workflow updates the stable Linux test matrix to use Python 3.11 through 3.14, CUDA 13.2, and a specific Torch install configuration. The nightly Linux job also switches to CUDA 13.2 and passes that CUDA version into comfy-action.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title accurately summarizes the matrix bump to Python 3.11–3.14, PyTorch 2.12, and CUDA 13.2.
Description check ✅ Passed The description is clearly related to the workflow update and explains the version matrix changes and follow-ups.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/test-ci.yml:
- Around line 31-40: The workflow currently relies on default GITHUB_TOKEN
permissions; add an explicit least-privilege permissions block to harden the
workflow and the affected jobs (notably the prepare job that exposes outputs
stable_python and run_nightly and the other test jobs referenced). For example,
add a top-level permissions section (or per-job permissions for prepare and the
test jobs) granting only the minimal scopes needed (e.g., contents: read,
actions: read, checks: write if tests report statuses) and remove/override
default broad permissions; ensure any job that needs extra rights explicitly
requests them rather than inheriting defaults.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ddae71c1-8441-4019-861d-b0397df623f5

📥 Commits

Reviewing files that changed from the base of the PR and between 822aca1 and 1ff6f32.

📒 Files selected for processing (1)
  • .github/workflows/test-ci.yml

Comment thread .github/workflows/test-ci.yml Outdated
Comment on lines +31 to +40
jobs:
# Resolve the test scope from the trigger:
# push -> smoke (cheap per-commit signal on master)
# workflow_dispatch -> the scope chosen by the operator (defaults to full)
# Expanding coverage later (new Python versions, etc.) is a one-line edit to the JSON below.
prepare:
runs-on: ubuntu-latest
outputs:
stable_python: ${{ steps.scope.outputs.stable_python }}
run_nightly: ${{ steps.scope.outputs.run_nightly }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add explicit least-privilege permissions for this workflow/jobs.

The new prepare + refactored test jobs run with default token permissions because no permissions block is declared. This weakens CI hardening and is flagged in the changed regions. Please set explicit minimal permissions (workflow-level and/or per-job).

Suggested hardening patch
 name: Full Comfy CI Workflow Runs
 
+permissions:
+  contents: read
+
 on:
   push:
     branches:
       - master
       - release/**

Also applies to: 56-57, 76-77

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/test-ci.yml around lines 31 - 40, The workflow currently
relies on default GITHUB_TOKEN permissions; add an explicit least-privilege
permissions block to harden the workflow and the affected jobs (notably the
prepare job that exposes outputs stable_python and run_nightly and the other
test jobs referenced). For example, add a top-level permissions section (or
per-job permissions for prepare and the test jobs) granting only the minimal
scopes needed (e.g., contents: read, actions: read, checks: write if tests
report statuses) and remove/override default broad permissions; ensure any job
that needs extra rights explicitly requests them rather than inheriting
defaults.

Source: Linters/SAST tools

@marawan206 marawan206 self-assigned this Jun 17, 2026
Replace the trigger-policy change with the version-matrix bump requested by
Comfy: test on Python 3.14/3.13/3.12/3.11 against PyTorch 2.12 on CUDA 13.2.

- pass cuda_version through to comfy-action (was defaulting to 12.1)
- pin torch 2.12 + torchvision from the cu132 wheel index via the action's
  'specific' install path (requires the Linux 'specific' branch in comfy-action)
- torchaudio omitted: no cu132 build for these Python versions

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.github/workflows/test-ci.yml (1)

48-54: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

torchaudio mismatch with requirements.txt will likely fail this leg.

The pinned install (Line 54) intentionally drops torchaudio, but as your comment on Lines 50–51 admits, requirements.txt still requires it. On cu132 there's no matching torchaudio wheel, so the subsequent dependency install/import inside comfy-action can fail or pull an incompatible build. This is a known-broken leg shipping behind an inline TODO rather than a resolved plan.

Want me to open a tracking issue and draft making torchaudio optional in requirements.txt (or a cu132-aware extra)?

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/test-ci.yml around lines 48 - 54, The CI leg is currently
pinning Torch in the workflow while omitting torchaudio, but the rest of the
dependency install still expects it. Update the test workflow’s torch install
step and the related dependency setup so the cu132 leg does not pull a
missing/incompatible torchaudio build; either make torchaudio optional in
requirements handling or gate this leg behind a cu132-aware dependency path. Use
the existing workflow step with specific_torch_install and the surrounding
requirements.txt note as the place to align the install behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/test-ci.yml:
- Around line 46-54: The new Linux stable leg is currently setting
specific_torch_install even though the existing comfy-action support only honors
the specific torch path on macOS. Update the workflow matrix in the test CI job
so the pinned cu132 install is gated off for Linux until the companion
comfy-action change lands, using the existing matrix fields like os and
specific_torch_install to keep the Linux job from skipping into the wrong
dependency set.

---

Nitpick comments:
In @.github/workflows/test-ci.yml:
- Around line 48-54: The CI leg is currently pinning Torch in the workflow while
omitting torchaudio, but the rest of the dependency install still expects it.
Update the test workflow’s torch install step and the related dependency setup
so the cu132 leg does not pull a missing/incompatible torchaudio build; either
make torchaudio optional in requirements handling or gate this leg behind a
cu132-aware dependency path. Use the existing workflow step with
specific_torch_install and the surrounding requirements.txt note as the place to
align the install behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: e754a084-bcdb-4d5d-9a36-12e1cc78b7d0

📥 Commits

Reviewing files that changed from the base of the PR and between 1ff6f32 and 0d4f4d0.

📒 Files selected for processing (1)
  • .github/workflows/test-ci.yml

Comment on lines +46 to +54
cuda_version: ${{ matrix.cuda_version }}
torch_version: ${{ matrix.torch_version }}
# Pin PyTorch 2.12 on CUDA 13.2 (cu132 wheel index). torchaudio is omitted
# on purpose: cu132 has no torchaudio build for these Python versions
# (it stops at 2.2.0/cp312). requirements.txt still lists torchaudio, so
# validate that leg once a runner exists — it may need to be made optional.
# NOTE: requires comfy-action to honor `torch_version: specific` on Linux
# (today macOS-only). Companion PR in comfy-org/comfy-action is required.
specific_torch_install: "pip install torch==2.12.* torchvision --index-url https://download.pytorch.org/whl/cu132"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Confirm comfy-action exposes the inputs this workflow now relies on.
for ref in main; do
  echo "=== comfy-action@${ref} action.yml inputs ==="
  curl -fsSL "https://raw.githubusercontent.com/comfy-org/comfy-action/${ref}/action.yml" \
    | sed -n '/^inputs:/,/^runs:/p' \
    | grep -E '^\s{2}\w' || echo "could not fetch / parse"
done

Repository: Comfy-Org/ComfyUI

Length of output: 478


🏁 Script executed:

curl -fsSL https://raw.githubusercontent.com/comfy-org/comfy-action/main/action.yml | sed -n '1,220p'

Repository: Comfy-Org/ComfyUI

Length of output: 9743


Gate the Linux specific torch install until the companion comfy-action PR lands.
specific_torch_install only runs when os == 'macos' today, so this new Linux stable leg will skip the pinned cu132 install and won’t exercise the intended dependency set.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/test-ci.yml around lines 46 - 54, The new Linux stable leg
is currently setting specific_torch_install even though the existing
comfy-action support only honors the specific torch path on macOS. Update the
workflow matrix in the test CI job so the pinned cu132 install is gated off for
Linux until the companion comfy-action change lands, using the existing matrix
fields like os and specific_torch_install to keep the Linux job from skipping
into the wrong dependency set.

@marawan206 marawan206 changed the title Run smoke matrix on push, full matrix on demand Bump CI test matrix to Python 3.14-3.11, PyTorch 2.12, CUDA 13.2 Jun 30, 2026
@marawan206

Copy link
Copy Markdown
Contributor Author

Companion PR (required): Comfy-Org/comfy-action#14 — adds the Linux torch_version: specific path so the cu132 pin can install on the runners. This PR is blocked on that merging, plus runner provisioning (conda envs + CUDA 13.2 drivers, Turing-or-newer GPUs).

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