# This is the GitHub Workflow that drives full-GPU-enabled tests of ComfyUI. # Results are reported as checkmarks on the commits, as well as onto https://ci.comfy.org/ # # Trigger policy: # push to master/release -> a lightweight "smoke" run (one stable config) for a fast per-commit signal # workflow_dispatch -> operator-selected scope; "full" runs the complete supported matrix on demand name: Full Comfy CI Workflow Runs on: push: branches: - master - release/** paths-ignore: - 'app/**' - 'input/**' - 'output/**' - 'notebooks/**' - 'script_examples/**' - '.github/**' - 'web/**' workflow_dispatch: inputs: scope: description: "Test scope: 'smoke' = one stable config, 'full' = all supported Python versions + nightly" type: choice options: - smoke - full default: full 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 }} steps: - name: Resolve scope id: scope shell: bash run: | SCOPE="${{ github.event_name == 'workflow_dispatch' && inputs.scope || 'smoke' }}" echo "Trigger=${{ github.event_name }} resolved scope=$SCOPE" if [ "$SCOPE" = "full" ]; then echo 'stable_python=["3.10", "3.11", "3.12"]' >> "$GITHUB_OUTPUT" echo 'run_nightly=true' >> "$GITHUB_OUTPUT" else echo 'stable_python=["3.12"]' >> "$GITHUB_OUTPUT" echo 'run_nightly=false' >> "$GITHUB_OUTPUT" fi test-stable: needs: prepare strategy: fail-fast: false matrix: # os: [macos, linux, windows] # mac/windows self-hosted runners currently disabled python_version: ${{ fromJSON(needs.prepare.outputs.stable_python) }} # CUDA is the comfy-action default (12.1); bump alongside the matrix-expansion PR. runs-on: [self-hosted, Linux] steps: - name: Test Workflows uses: comfy-org/comfy-action@main with: os: linux python_version: ${{ matrix.python_version }} torch_version: stable google_credentials: ${{ secrets.GCS_SERVICE_ACCOUNT_JSON }} comfyui_flags: "" test-unix-nightly: needs: prepare if: ${{ needs.prepare.outputs.run_nightly == 'true' }} strategy: fail-fast: false matrix: python_version: ["3.11"] runs-on: [self-hosted, Linux] steps: - name: Test Workflows uses: comfy-org/comfy-action@main with: os: linux python_version: ${{ matrix.python_version }} torch_version: nightly google_credentials: ${{ secrets.GCS_SERVICE_ACCOUNT_JSON }} comfyui_flags: ""