ci(simulation): carry results as annotations, not artifacts - #23
Open
Julian Gruber (juliangruber) wants to merge 2 commits into
Open
Julian Gruber (juliangruber) wants to merge 2 commits into
Julian Gruber (juliangruber) wants to merge 2 commits into
Conversation
The fleet's upload-artifact and download-artifact composites are hydrated payload, so on the bare bootstrap checkout this workflow uses they have no action.yml and every install job failed at the upload step (run 36721798455, 51 of 52 jobs). The installs themselves completed and classified fine. Emit each result as a `sim-result` notice annotation instead, and have the report job read the install jobs' annotations back through the checks API, which it already does for the download-failure breakdown.
Julian Gruber (juliangruber)
force-pushed
the
ci/simulation-results-via-annotations
branch
from
September 30, 2026 13:42
f706ec9 to
64040f1
Compare
Julian Gruber (juliangruber)
marked this pull request as ready for review
October 1, 2026 10:00
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.
Why
The first dispatch of the simulation on
main(run 36721798455) lost all 50 install results: every job failed at the upload step because.github/actions/fleet/upload-artifacthas noaction.ymlon a bare checkout. The fleet's artifact composites are hydrated payload, not tracked files. The installs themselves completed and classified correctly; the results were only recoverable by reading each job's log by hand.What
Each install job emits its result as a
::notice title=sim-result::{json}annotation. The report job lists the run's install jobs and reads those annotations back through the checks API, which is how it already counts binary download failures. No artifacts, no third-party actions.🤖 Generated with Claude Code
Note
Low Risk
CI workflow-only change to how simulation results are collected; no runtime product or auth logic is touched.
Overview
Fixes lost simulation metrics when install jobs completed but artifact upload failed on a bare checkout (fleet upload/download composites are not present in that shape).
Each Install job now publishes its classification JSON via a
::notice title=sim-result::workflow annotation instead of writingresults/install-*.jsonand callingfleet/upload-artifact. The Report job gathers those rows withgh apion each install job’s check-run annotations (same pattern already used for binary-download failure counts), buildsresults.jsonl, and feeds the existingjqflake table from that file. Summary output usestee -aon the step summary for the table and download-failure breakdown.Reviewed by Cursor Bugbot for commit 188601c. Configure here.