ci: rename weekly ComfyUI release workflow - #14598
Conversation
🎭 Playwright: ✅ 1777 passed, 0 failed · 3 flaky📊 Browser Reports
📦 Bundle: 8.21 MB gzip ⚪ 0 BDetailsSummary
Category Glance App Entry Points — 3.64 kB (baseline 3.64 kB) • ⚪ 0 BMain entry bundles and manifests Status: 1 unchanged Graph Workspace — 1.29 MB (baseline 1.29 MB) • ⚪ 0 BGraph editor runtime, canvas, workflow orchestration Status: 2 unchanged Views & Navigation — 111 kB (baseline 111 kB) • ⚪ 0 BTop-level views, pages, and routed surfaces Status: 16 unchanged Panels & Settings — 551 kB (baseline 551 kB) • ⚪ 0 BConfiguration panels, inspectors, and settings screens Status: 26 unchanged User & Accounts — 28.7 kB (baseline 28.7 kB) • ⚪ 0 BAuthentication, profile, and account management bundles Status: 10 unchanged Editors & Dialogs — 124 kB (baseline 124 kB) • ⚪ 0 BModals, dialogs, drawers, and in-app editors Status: 7 unchanged UI Components — 70 kB (baseline 70 kB) • ⚪ 0 BReusable component library chunks Status: 15 unchanged Data & Services — 3.45 MB (baseline 3.45 MB) • ⚪ 0 BStores, services, APIs, and repositories Status: 17 unchanged Utilities & Hooks — 386 kB (baseline 386 kB) • ⚪ 0 BHelpers, composables, and utility bundles Status: 36 unchanged Vendor & Third-Party — 15.7 MB (baseline 15.7 MB) • ⚪ 0 BExternal libraries and shared vendor chunks Status: 16 unchanged Other — 12.8 MB (baseline 12.8 MB) • ⚪ 0 BBundles that do not match a named category Status: 281 unchanged ⚡ Performance Report
Show regressions
All metrics
Historical variance (last 15 runs)
Trend (last 15 commits on main)
Raw data{
"timestamp": "2026-08-03T06:04:05.969Z",
"gitSha": "1eade1095fbdb957f8e83b5c6ef925f90a3680d9",
"branch": "cx/rename-weekly-workflow",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2101.026000000019,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.210000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 506.578,
"heapDeltaBytes": 5110056,
"heapUsedBytes": 72861748,
"domNodes": 18,
"jsHeapTotalBytes": 20836352,
"scriptDurationMs": 17.282,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-idle",
"durationMs": 2031.946000000005,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.651000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 452.458,
"heapDeltaBytes": 5283672,
"heapUsedBytes": 73082056,
"domNodes": 18,
"jsHeapTotalBytes": 19787776,
"scriptDurationMs": 14.81,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 2038.6919999999975,
"styleRecalcs": 80,
"styleRecalcDurationMs": 45.625,
"layouts": 12,
"layoutDurationMs": 3.9009999999999994,
"taskDurationMs": 1037.533,
"heapDeltaBytes": -17346576,
"heapUsedBytes": 50459244,
"domNodes": -280,
"jsHeapTotalBytes": 20963328,
"scriptDurationMs": 139.76999999999998,
"eventListeners": -146,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1855.5089999999836,
"styleRecalcs": 76,
"styleRecalcDurationMs": 38.733999999999995,
"layouts": 12,
"layoutDurationMs": 3.8750000000000004,
"taskDurationMs": 866.388,
"heapDeltaBytes": -19087956,
"heapUsedBytes": 48736256,
"domNodes": -279,
"jsHeapTotalBytes": 21225472,
"scriptDurationMs": 122.044,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1715.7799999999952,
"styleRecalcs": 32,
"styleRecalcDurationMs": 16.071999999999996,
"layouts": 6,
"layoutDurationMs": 0.712,
"taskDurationMs": 379.376,
"heapDeltaBytes": 7884684,
"heapUsedBytes": 75756336,
"domNodes": 77,
"jsHeapTotalBytes": 20312064,
"scriptDurationMs": 19.649,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1713.2970000000114,
"styleRecalcs": 32,
"styleRecalcDurationMs": 16.537,
"layouts": 6,
"layoutDurationMs": 0.6020000000000001,
"taskDurationMs": 373.514,
"heapDeltaBytes": 7920980,
"heapUsedBytes": 75836860,
"domNodes": 77,
"jsHeapTotalBytes": 20312064,
"scriptDurationMs": 17.66,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 589.1500000000178,
"styleRecalcs": 11,
"styleRecalcDurationMs": 10.110999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 388.743,
"heapDeltaBytes": -12245188,
"heapUsedBytes": 55673256,
"domNodes": 18,
"jsHeapTotalBytes": 21360640,
"scriptDurationMs": 61.217000000000006,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "dom-widget-clipping",
"durationMs": 559.8400000000652,
"styleRecalcs": 11,
"styleRecalcDurationMs": 7.497,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 367.166,
"heapDeltaBytes": -12076116,
"heapUsedBytes": 55875912,
"domNodes": 18,
"jsHeapTotalBytes": 21098496,
"scriptDurationMs": 57.742,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-idle",
"durationMs": 2037.8779999999779,
"styleRecalcs": 10,
"styleRecalcDurationMs": 9.319,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 686.625,
"heapDeltaBytes": 7778156,
"heapUsedBytes": 66692376,
"domNodes": -281,
"jsHeapTotalBytes": 4517888,
"scriptDurationMs": 110.74099999999999,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2034.6299999999928,
"styleRecalcs": 8,
"styleRecalcDurationMs": 7.395000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 666.8380000000001,
"heapDeltaBytes": 7716508,
"heapUsedBytes": 66440896,
"domNodes": -283,
"jsHeapTotalBytes": 4517888,
"scriptDurationMs": 103.075,
"eventListeners": -142,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2144.5249999999874,
"styleRecalcs": 68,
"styleRecalcDurationMs": 12.232,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1227.393,
"heapDeltaBytes": 4607216,
"heapUsedBytes": 65079976,
"domNodes": -284,
"jsHeapTotalBytes": 4218880,
"scriptDurationMs": 414.494,
"eventListeners": -142,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2161.473000000001,
"styleRecalcs": 69,
"styleRecalcDurationMs": 14.641000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1253.069,
"heapDeltaBytes": 6050300,
"heapUsedBytes": 65861876,
"domNodes": -283,
"jsHeapTotalBytes": 4743168,
"scriptDurationMs": 418.329,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3197.624000000019,
"styleRecalcs": 65,
"styleRecalcDurationMs": 13.711,
"layouts": 60,
"layoutDurationMs": 6.844000000000001,
"taskDurationMs": 1486.459,
"heapDeltaBytes": -1132168,
"heapUsedBytes": 60385916,
"domNodes": -286,
"jsHeapTotalBytes": 8187904,
"scriptDurationMs": 525.5070000000001,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-zoom",
"durationMs": 3181.197999999995,
"styleRecalcs": 65,
"styleRecalcDurationMs": 14.645999999999995,
"layouts": 60,
"layoutDurationMs": 7.003,
"taskDurationMs": 1472.31,
"heapDeltaBytes": 23472768,
"heapUsedBytes": 85007500,
"domNodes": 12,
"jsHeapTotalBytes": 8912896,
"scriptDurationMs": 528.535,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "minimap-idle",
"durationMs": 2025.1710000000003,
"styleRecalcs": 7,
"styleRecalcDurationMs": 6.411,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 671.209,
"heapDeltaBytes": 6518516,
"heapUsedBytes": 67375200,
"domNodes": -282,
"jsHeapTotalBytes": 4780032,
"scriptDurationMs": 104.568,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2045.1559999999063,
"styleRecalcs": 7,
"styleRecalcDurationMs": 7.120000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 692.0619999999999,
"heapDeltaBytes": 7975680,
"heapUsedBytes": 68626700,
"domNodes": -284,
"jsHeapTotalBytes": 4255744,
"scriptDurationMs": 108.02899999999998,
"eventListeners": -144,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 597.5670000000264,
"styleRecalcs": 47,
"styleRecalcDurationMs": 10.613000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 401.79499999999996,
"heapDeltaBytes": -10854328,
"heapUsedBytes": 57152184,
"domNodes": 20,
"jsHeapTotalBytes": 21360640,
"scriptDurationMs": 116.33100000000002,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 562.7230000000054,
"styleRecalcs": 47,
"styleRecalcDurationMs": 9.954,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 394.39599999999996,
"heapDeltaBytes": -11980524,
"heapUsedBytes": 55996724,
"domNodes": 20,
"jsHeapTotalBytes": 22933504,
"scriptDurationMs": 117.865,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2028.519000000017,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.619,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 511.04099999999994,
"heapDeltaBytes": -20901992,
"heapUsedBytes": 47109068,
"domNodes": -278,
"jsHeapTotalBytes": 20439040,
"scriptDurationMs": 14.954000000000002,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2009.9079999999958,
"styleRecalcs": 11,
"styleRecalcDurationMs": 9.727,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 451.35999999999996,
"heapDeltaBytes": 4404436,
"heapUsedBytes": 72309620,
"domNodes": 22,
"jsHeapTotalBytes": 21360640,
"scriptDurationMs": 12.762999999999998,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1685.594999999978,
"styleRecalcs": 75,
"styleRecalcDurationMs": 34.884,
"layouts": 16,
"layoutDurationMs": 4.434,
"taskDurationMs": 729.382,
"heapDeltaBytes": -4672048,
"heapUsedBytes": 63075900,
"domNodes": 63,
"jsHeapTotalBytes": 21360640,
"scriptDurationMs": 86.448,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1712.1960000000627,
"styleRecalcs": 76,
"styleRecalcDurationMs": 34.629,
"layouts": 16,
"layoutDurationMs": 3.82,
"taskDurationMs": 788.385,
"heapDeltaBytes": -19716312,
"heapUsedBytes": 48277152,
"domNodes": -277,
"jsHeapTotalBytes": 20963328,
"scriptDurationMs": 88.66,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-transition-enter",
"durationMs": 1383.76999999997,
"styleRecalcs": 19,
"styleRecalcDurationMs": 31.11,
"layouts": 15,
"layoutDurationMs": 12.778,
"taskDurationMs": 907.6209999999998,
"heapDeltaBytes": 31056040,
"heapUsedBytes": 99376464,
"domNodes": 13673,
"jsHeapTotalBytes": 14417920,
"scriptDurationMs": 32.01399999999999,
"eventListeners": 2371,
"totalBlockingTimeMs": 132,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "viewport-pan-sweep",
"durationMs": 8322.722999999996,
"styleRecalcs": 249,
"styleRecalcDurationMs": 35.66899999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4412.685,
"heapDeltaBytes": 10503544,
"heapUsedBytes": 69273120,
"domNodes": -284,
"jsHeapTotalBytes": 6283264,
"scriptDurationMs": 1383.865,
"eventListeners": -126,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.80000000000109
},
{
"name": "viewport-pan-sweep",
"durationMs": 8436.271000000033,
"styleRecalcs": 249,
"styleRecalcDurationMs": 36.254000000000005,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4542.283,
"heapDeltaBytes": 14171208,
"heapUsedBytes": 72926348,
"domNodes": -281,
"jsHeapTotalBytes": 7069696,
"scriptDurationMs": 1398.0249999999999,
"eventListeners": -128,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 16351.616999999977,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 16312.998,
"heapDeltaBytes": -40803376,
"heapUsedBytes": 165987188,
"domNodes": -8312,
"jsHeapTotalBytes": -16719872,
"scriptDurationMs": 541.08,
"eventListeners": -16385,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-idle",
"durationMs": 16938.71899999999,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 16908.231,
"heapDeltaBytes": -45865160,
"heapUsedBytes": 155925132,
"domNodes": -8312,
"jsHeapTotalBytes": -14360576,
"scriptDurationMs": 569.662,
"eventListeners": -16387,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666763,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 20279.871000000014,
"styleRecalcs": 138,
"styleRecalcDurationMs": 16.32100000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 20250.717,
"heapDeltaBytes": -28520316,
"heapUsedBytes": 179982412,
"domNodes": -8312,
"jsHeapTotalBytes": -13905920,
"scriptDurationMs": 905.0189999999999,
"eventListeners": -16379,
"totalBlockingTimeMs": 166,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-pan",
"durationMs": 20175.386000000002,
"styleRecalcs": 133,
"styleRecalcDurationMs": 15.573999999999977,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 20119.769,
"heapDeltaBytes": -60800736,
"heapUsedBytes": 167123572,
"domNodes": -8312,
"jsHeapTotalBytes": -16719872,
"scriptDurationMs": 881.408,
"eventListeners": -16385,
"totalBlockingTimeMs": 94,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "workflow-execution",
"durationMs": 465.5819999999835,
"styleRecalcs": 12,
"styleRecalcDurationMs": 19.149,
"layouts": 3,
"layoutDurationMs": 0.6169999999999999,
"taskDurationMs": 116.92800000000001,
"heapDeltaBytes": -15686424,
"heapUsedBytes": 51330872,
"domNodes": 130,
"jsHeapTotalBytes": 7204864,
"scriptDurationMs": 12.714999999999998,
"eventListeners": 67,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "workflow-execution",
"durationMs": 476.0680000000548,
"styleRecalcs": 18,
"styleRecalcDurationMs": 19.445999999999998,
"layouts": 2,
"layoutDurationMs": 0.9910000000000001,
"taskDurationMs": 116.96500000000002,
"heapDeltaBytes": -16012984,
"heapUsedBytes": 50919292,
"domNodes": 143,
"jsHeapTotalBytes": 7729152,
"scriptDurationMs": 9.697000000000001,
"eventListeners": 65,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
}
]
} |
📝 WalkthroughWalkthroughChangesThe PR adds a weekly and manually triggered ComfyUI release workflow. It resolves release metadata, publishes the frontend package to PyPI, updates ComfyUI requirements, and creates or refreshes a draft pull request. Existing workflow comments and documentation now use the weekly workflow name. Weekly ComfyUI release automation
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant Scheduler
participant ReleaseWorkflow
participant VersionResolver
participant PyPI
participant ComfyUIRepository
participant DraftPR
Scheduler->>ReleaseWorkflow: start weekly or manual release
ReleaseWorkflow->>VersionResolver: resolve version and branch
VersionResolver-->>ReleaseWorkflow: return release metadata
ReleaseWorkflow->>PyPI: publish and verify frontend package
ReleaseWorkflow->>ComfyUIRepository: update frontend requirement
ReleaseWorkflow->>DraftPR: create or refresh draft PR
DraftPR-->>ReleaseWorkflow: return PR status
Possibly related PRs
Suggested labels: Suggested reviewers: Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 inconclusive)
✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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/release-weekly-comfyui.yaml:
- Around line 404-409: Update the PR creation/update step around the git commit
branch to expose a step output identifying whether a PR was created or updated,
setting pr_action only on paths that invoke gh pr create or gh pr edit and
leaving it unset when no changes are committed. Give the step an id, then update
the Summary step to branch on that output so it reports the actual outcome and
does not claim a PR was created when the workflow exited early; apply the same
change to the corresponding flow around the later PR handling block.
- Around line 274-281: Update the PyPI polling loop in the release workflow to
add a curl timeout and neutralize non-zero curl exit statuses so transient DNS,
TLS, or network failures do not terminate the step under set -e. Preserve the
existing HTTP 200 success check and retry behavior in the loop.
🪄 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: ASSERTIVE
Plan: Pro Plus
Run ID: 570b1fdc-c7a5-4162-a25c-650218849d49
📒 Files selected for processing (3)
.github/workflows/release-version-bump.yaml.github/workflows/release-weekly-comfyui.yamldocs/release-process.md
There was a problem hiding this comment.
Caution
Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.
Actionable comments posted: 2
🤖 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/release-weekly-comfyui.yaml:
- Around line 404-409: Update the PR creation/update step around the git commit
branch to expose a step output identifying whether a PR was created or updated,
setting pr_action only on paths that invoke gh pr create or gh pr edit and
leaving it unset when no changes are committed. Give the step an id, then update
the Summary step to branch on that output so it reports the actual outcome and
does not claim a PR was created when the workflow exited early; apply the same
change to the corresponding flow around the later PR handling block.
- Around line 274-281: Update the PyPI polling loop in the release workflow to
add a curl timeout and neutralize non-zero curl exit statuses so transient DNS,
TLS, or network failures do not terminate the step under set -e. Preserve the
existing HTTP 200 success check and retry behavior in the loop.
🪄 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: ASSERTIVE
Plan: Pro Plus
Run ID: 570b1fdc-c7a5-4162-a25c-650218849d49
📒 Files selected for processing (3)
.github/workflows/release-version-bump.yaml.github/workflows/release-weekly-comfyui.yamldocs/release-process.md
🛑 Comments failed to post (2)
.github/workflows/release-weekly-comfyui.yaml (2)
274-281: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
Make the PyPI poll tolerant of transient curl failures.
set -eis active. Ifcurlexits non-zero, for example on a DNS or TLS error, the step fails immediately. The package is already published at this point, so a single transient network error aborts the release job instead of retrying. Add a timeout and neutralize the curl exit status.🛠️ Proposed fix
for i in $(seq 1 30); do - HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" "https://pypi.org/pypi/${PACKAGE}/${TARGET_VERSION}/json") + HTTP_CODE=$(curl -s -o /dev/null --max-time 30 -w "%{http_code}" \ + "https://pypi.org/pypi/${PACKAGE}/${TARGET_VERSION}/json" || echo "000") if [ "$HTTP_CODE" = "200" ]; then echo "✅ ${PACKAGE}==${TARGET_VERSION} is available on PyPI" exit 0 fi📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.for i in $(seq 1 30); do HTTP_CODE=$(curl -s -o /dev/null --max-time 30 -w "%{http_code}" \ "https://pypi.org/pypi/${PACKAGE}/${TARGET_VERSION}/json" || echo "000") if [ "$HTTP_CODE" = "200" ]; then echo "✅ ${PACKAGE}==${TARGET_VERSION} is available on PyPI" exit 0 fi echo "Attempt $i/30: PyPI returned HTTP ${HTTP_CODE}, waiting 30s..." sleep 30🤖 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/release-weekly-comfyui.yaml around lines 274 - 281, Update the PyPI polling loop in the release workflow to add a curl timeout and neutralize non-zero curl exit statuses so transient DNS, TLS, or network failures do not terminate the step under set -e. Preserve the existing HTTP 200 success check and retry behavior in the loop.
404-409: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Report the actual PR outcome in the summary.
If
requirements.txtis unchanged, line 408 exits the step before any PR is created or refreshed. TheSummarystep still runs and reports "Draft PR created in Comfy-Org/ComfyUI". The summary then states an action that did not happen. Set a step output and branch the summary on it.🛠️ Proposed fix
if ! git diff --cached --quiet; then git commit -m "Bump comfyui-frontend-package to ${{ needs.resolve-version.outputs.target_version }}" else echo "No changes to commit" + echo "pr_action=none" >> "$GITHUB_OUTPUT" exit 0 fiAdd an
idto the PR step and setpr_action=createdorpr_action=updatedon the paths that reachgh pr create/gh pr edit, then gate the summary:- name: Summary run: | echo "## ComfyUI PR Created" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY - echo "Draft PR created in Comfy-Org/ComfyUI" >> $GITHUB_STEP_SUMMARY + if [ "${{ steps.create-pr.outputs.pr_action }}" = "none" ]; then + echo "No requirements.txt change — no PR created or updated." >> $GITHUB_STEP_SUMMARY + exit 0 + fi + echo "Draft PR created or updated in Comfy-Org/ComfyUI" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "### PR Body:" >> $GITHUB_STEP_SUMMARY cat pr-body.txt >> $GITHUB_STEP_SUMMARYAlso applies to: 454-461
🤖 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/release-weekly-comfyui.yaml around lines 404 - 409, Update the PR creation/update step around the git commit branch to expose a step output identifying whether a PR was created or updated, setting pr_action only on paths that invoke gh pr create or gh pr edit and leaving it unset when no changes are committed. Give the step an id, then update the Summary step to branch on that output so it reports the actual outcome and does not claim a PR was created when the workflow exited early; apply the same change to the corresponding flow around the later PR handling block.
📄 Knowledge reviewDosu skipped reviewing this PR because your organization has used its |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #14598 +/- ##
==========================================
- Coverage 79.10% 78.15% -0.95%
==========================================
Files 1769 1769
Lines 118915 110714 -8201
Branches 37501 35040 -2461
==========================================
- Hits 94062 86529 -7533
+ Misses 24228 23630 -598
+ Partials 625 555 -70
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
|
@coderabbitai approve |
✅ Action performedComments resolved and changes approved. |
Summary
Rename the weekly ComfyUI release workflow so its filename matches its existing weekly cadence.
Changes
release-biweekly-comfyui.yamltorelease-weekly-comfyui.yamland updates references in the version-bump workflow and release-process documentation.Review Focus
Confirm there are no external callers that still invoke the workflow by its old filename. The workflow content and behavior are unchanged.
Screenshots (if applicable)
Not applicable.