ci(l1): make the daily reports fail loudly and attribute honestly - #7252
ci(l1): make the daily reports fail loudly and attribute honestly#7252ilitteri wants to merge 3 commits into
Conversation
The report job downloaded every results artifact into one merged directory and generated the report from whatever arrived. A simulator whose job ended without uploading anything therefore showed up as 0/0 on a green job: on 2026-09-03 the consume-engine-rest artifact was missing and 20,347 tests dropped out of the totals with nothing flagged. Download each artifact into its own directory, check the set against the workflow's own matrix, prepend a warning to the report and the Slack blocks when any are missing, and fail the job last so the report still goes out.
Scheduled runs stamped `github.sha` on the alert as "Commit:", which on a schedule is just whatever main pointed at when the run started. The same commit had passed the previous seven runs, but the alert read as "this commit broke snapsync" and triggered a revert investigation. Label the SHA as the head of main on scheduled runs, show how old the commit is, and list this workflow's earlier conclusions on the same commit so a same-SHA pass/fail flip reads as a flaky run at a glance. The history lookup needs actions:read on the token and is omitted when no token is provided.
|
🤖 Kimi Code ReviewI'll review this PR which contains GitHub workflow and shell script changes for CI/CD notifications and Hive test reporting. File:
|
| Priority | Item | Location |
|---|---|---|
| Medium | Bash 5.0 EPOCHSECONDS compatibility |
notify_snapsync_run.sh:99 |
| Medium | Fragile regex for simulator names | daily_hive_report.yaml:238 |
| Medium | Silent file collision on mv |
daily_hive_report.yaml:254 |
| Low | nullglob not restored |
daily_hive_report.yaml:250 |
| Low | always() vs !cancelled() consideration |
daily_hive_report.yaml:316 |
The changes are generally well-structured with good comments explaining the rationale. The commit age labeling and run history features are useful for distinguishing flaky failures from regressions.
Automated review by Kimi (Moonshot AI) · kimi-k2.6 · custom prompt
🤖 Claude Code ReviewReview: PR 7252 — "make the daily reports fail loudly and attribute honestly"This is a CI/tooling-only change (no Rust/EVM/consensus code), so the usual EVM/consensus checklist doesn't apply. The scripts are written defensively ( 1. Flatten step narrowed from recursive to fixed depth-1 (
|
🤖 Codex Code ReviewAutomated review by OpenAI Codex |
Motivation
The 2026-09-03 daily report looked like a regression on the head of main and led to a revert evaluation. It was not one: the same commit had passed the previous seven snapsync runs and a 100% P2P day, the P2P collapse came from an unpinned go-ethereum checkout inside hive's devp2p simulator, and 20k tests had silently dropped out of the totals. Two reporting defects made that harder to see than it needed to be.
Description
0/0line on a green job.success ×6, failure ×1). The history lookup needsactions: readon the token.The geth pin for the devp2p simulator is handled separately: it needs a hive fork or an upstream change, since the simulator's Dockerfile clones geth master at build time.
Checklist
Storechanges.Testing
Hive - Devp2p testsand its aggregator. They fail identically onmain: hive's devp2p simulator clones go-ethereum master at build time and geth moved on 2026-09-02. Pinning geth is a separate change (needs a hive repo we control).ethrex-sync-serverconcurrency queue by the scheduled run before it started, so the new alert text has not run in CI yet.