mirror of
https://github.com/Comfy-Org/comfyci-runpod-worker.git
synced 2026-11-04 23:47:32 +00:00
[PR #12] [MERGED] Publish a frontend CI index for the dashboard's Frontend tab #13
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/comfyci-runpod-worker#13
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/comfyci-runpod-worker/pull/12
Author: @marawan206
Created: 10/19/2026
Status: ✅ Merged
Merged: 10/19/2026
Merged by: @marawan206
Base:
main← Head:frontend-index📝 Commits (2)
bdaace3Publish a frontend CI index for the dashboard's Frontend tab25a2602frontend-index: split a backfill window that holds over a thousand runs📊 Changes
14 files changed (+5139 additions, -11 deletions)
View changed files
➕
.github/workflows/frontend-index.yml(+43 -0)📝
README.md(+88 -0)📝
scripts/commit_meta.py(+8 -6)➕
scripts/frontend_index.py(+1208 -0)📝
scripts/storage.py(+8 -5)➕
scripts/tests/fixtures/frontend/README.md(+33 -0)➕
scripts/tests/fixtures/frontend/entries.json(+1 -0)➕
scripts/tests/fixtures/frontend/expected_latest_cmp.json(+2576 -0)➕
scripts/tests/fixtures/frontend/perf-20261019T103805Z-17b0d4e4.json(+1 -0)➕
scripts/tests/fixtures/frontend/perf-20261019T105541Z-e38b73dd.json(+1 -0)➕
scripts/tests/fixtures/frontend/perf-20261019T130522Z-dd678395.json(+1 -0)📝
scripts/tests/test_commit_meta.py(+13 -0)➕
scripts/tests/test_frontend_index.py(+1142 -0)📝
scripts/tests/test_storage.py(+16 -0)📄 Description
What
A cron publisher that gives ci.comfy.org a Frontend tab without any token or server code:
scripts/frontend_index.py(run byfrontend-index.ymlevery 30 minutes, cron13,43 * * * *) reads three public sources ofComfy-Org/ComfyUI_frontendwith the ActionsGITHUB_TOKENand publishes compact static JSON underfrontend/on theresultsbranch, next toregression/:perf-databranch (the frontend keeps only the last 20) is stored as per-scenario means for the 12 metrics its PR report reports, plus the classification the frontend's own rule gives it (scripts/perf-stats.ts: current median against the mean of the 20 preceding baselines, sample stddev, z > 2 regression / z < -2 improvement, noisy when CV > 50 %, 5-unit gate on the four count metrics). The head carries the metric list and thresholds, so the dashboard never hardcodes them.CI:workflow that ran for it, keyed by workflow path (lint on main isci-lint-format-queue.yaml). Fifteen known columns in groups core / website / billing / validation; any otherCI:workflow seen on a main push is appended as groupother. Commit metadata comes fromcommit_meta(now with abaseparameter: the frontend merges intomain, andmerged_prwas hardcoded tomaster).shard x proof_rowjob, the failed step, the verdict job, andCOMFYUI_PINread from the workflow file at the run's head sha. Proof rows 1/2/3/9/15 are detection proofs (planted break + independence assertion), so the streak is computed over the clean shards (row 0) of pinned runs only; dispatch runs test an unknown ref until phase 2 and neither start nor break it.Behaviour
register_derived), so a push retry re-merges on the fresh tree and a concurrent regression publish is never clobbered. Every file is compared ignoringupdated_ts: a tick with nothing new pushes nothing (exactly 3 API calls).workflow_dispatchwithbackfill_dayswalks day windows back from the covered range. Reruns override by attempt. Commit-meta upgrades are capped at 25 per tick and drawn from every stored entry.storage.upload_json(..., compact=True)writes the files without indentation (perf entries would otherwise double in size).Verification
python -m pytest scripts/tests -q: 253 passed (217 existing, 34 new for the publisher, 1 each forcommit_metaandstorage).perf-stats.tson the 20 real baselines: the publisher reproduces every one of the 312 scenario x metric verdicts for the newest baseline (scripts/tests/fixtures/frontend/expected_latest_cmp.jsonwas produced by running the frontend's functions; the fixtures README says how).--skip-publish):ci/main.jsonlatest commit equalsmain's HEAD with all 15 known columns populated (plus fourotherones),perf/head.jsonhas 20 baselines with the latest comparison,ci/custom-nodes.jsonhas 90 runs, pinb08e6cf3, and a fail streak since 5 Sep 2026.Notes
FRONTEND_GH_TOKEN): read run logs for a dispatch run'scomfyui_ref, Playwright result artifacts, and dispatching the gate against a core release candidate. The script already prefers that token when set.frontend/is on the results branch now (2,591 main commits back to 21 Jul (the full 90 days), 20 baselines, 90 gate runs), and the dashboard PR's preview already renders it. After merge the cron keeps it fresh; abackfill_days=Ndispatch extends the CI coverage further back if ever wanted (each run continues from where the previous one stopped).🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.