feat: publish benchmark results to GitHub#7487
Closed
DennisYu07 wants to merge 7 commits into
Closed
Conversation
DennisYu07
had a problem deploying
to
production-release
July 22, 2026 06:52 — with
GitHub Actions
Failure
gwinthis
reviewed
Jul 22, 2026
gwinthis
left a comment
Collaborator
There was a problem hiding this comment.
Architecture Review — PR #7487
Verdict: ✅ Approve — clean async benchmark result publication.
Design pattern: Async result callback
The dispatch job finishes when ECS accepts the request, but the benchmark continues asynchronously. A terminal callback publishes the result back to the GitHub Release + Check Run.
Key decisions:
- Tag commit resolution via API (no full checkout on self-hosted runner) — minimizes runner I/O
- Best-effort publication with
publisher-error.jsonon API failure — publication failure doesn't block the benchmark - Failed runs reported as failed without a numerical score — distinguishes infrastructure failure from low performance
- Immutable metadata: commit SHA, Qwen Code version, ECS run ID — full provenance chain
Collaborator
Author
|
Superseded by #7583, which consolidates the trigger, ECS/Harbor worker, failure handling, and Release-only result publication into one PR based on the current |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR does
Completes the shortest release-to-score POC:
GitHub Release/manual dispatch → self-hosted ECS runner → local dispatcher → SQLite → systemd worker → Harbor SWE-bench trial → GitHub Release benchmark summaryThe runner resolves the requested release tag to an immutable commit and invokes the root-owned local dispatcher. The dispatcher validates the request and inserts it into SQLite. The worker executes the pinned Qwen Code npm release through Harbor, grades it, writes checksummed artifacts, and replaces the benchmark section on the triggering Release.
Successful runs publish dataset/revision, suite, evaluation method, completed/resolved/unresolved/infrastructure-error counts, score, exact Qwen Code version and commit, and ECS run ID. Failed terminal runs publish status and counts without a numerical score.
This refactor removes the unused public FastAPI service, shared webhook token, Nginx template, release poller, supervisor, and commit Check Run. Release is now the only public result surface.
Final end-to-end verification
v0.20.0-nightly.20260722.b98306b7e77115afed1c33baeb535adf025df378cc2f61bcde05aecd29984285727,successqwen-bench-5b351919ee5b4cf3, one attempt, no recoveryswe-bench/swe-bench-verified@2,sympy__sympy-205901.0;exception_info: nullpublisher-error.jsonGET 200,PATCH 200; no Check Run request13 passedlocally and13 passedon ECSReviewer test plan
.github/workflows/stale.ymlfrom this branch withbenchmark_poc=true, a nightly prerelease tag, suiteswebench_verified_harbor_smoke, and its Release ID.SUCCEEDEDin one attempt.summary.json, Harbor trial result, verifier reward, and artifact checksums.Qwen Code benchmarktable and the new run ID.PYTHONPATH=. pytest -qfrombenchmark-service; expected result:13 passed.Risk and scope
publisher-error.json. A durable outbox is outside this POC.中文说明
本 PR 将链路收敛为:
GitHub Release/人工触发 → ECS self-hosted runner → 本地 dispatcher → SQLite → systemd worker → Harbor SWE-bench → GitHub Release 分数回写。不再需要公网 FastAPI,也不再创建 commit Check Run,Release 是唯一公开结果入口。最终验收只使用现有 nightly 测试版本
v0.20.0-nightly.20260722.b98306b7e,没有创建或发布正式版本。Actions run29984285727创建 ECS runqwen-bench-5b351919ee5b4cf3;sympy__sympy-20590单次成功,reward1.0,Release 已展示 1/1 resolved 和 100.00%。22 个产物 checksum 全部通过,没有publisher-error.json;发布日志只有 Release GET/PATCH 200。