Repository navigation
ci(fpga): print nextpnr's log when a seed search finds no clean seed - #857
Merged
Merged
Conversation
38 of the 39 AX7203 workflows that search nextpnr seeds send each attempt to /tmp/np_*.log and, when every seed fails, print only "::error::no clean seed" and exit. The upload step is skipped on failure, so the run keeps no record of why routing failed. ax7203-format-cost.yml already tails the logs before exiting; this applies the same idiom to the other 38. The rewrite was gated per file: exactly one matching line outside a comment, the parsed YAML unchanged except for that one run string, which differs by exactly the inserted text and still passes bash -n. Five corrupted rewrites were refused by the gate. actionlint reports nothing on the 38 files, and tools/check_run_syntax.py reads 120 of 120 workflows with no unparseable step. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
X Brain Health CheckScore: 100.0/100 X Brain is above merge threshold |
🧪 Brain Stress Test ResultsScore: not measured (no stress test prints a Score: line) X Stress test passed |
This was referenced Oct 4, 2026
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.
Closes #856.
Change
In each of 38 workflows, the seed search's failure branch goes from
to
This is the idiom
ax7203-format-cost.ymlalready uses. 38 insertions, 38 deletions, nothing else.How it was applied
A script rewrote the files behind a per-file gate. A file was refused unless:
run:string;bash -n(with${{ … }}replaced by a placeholder).The result was 38 rewritten and 2 refused: format-cost already prints the logs, and build-timing has the phrase only in a comment. A second pass rewrites 0.
Negative controls. Five corrupted rewrites, all refused by the gate: the text inserted twice, an unbalanced quote, the seed loop altered, another step altered, and the
exit 1dropped.The logs are on the host. All 38
> /tmp/np_*.logredirects are in the runner's shell, not inside a quoteddocker … bash -c "…". So a host-sidetailcan read them (checked by parsing everyrun:string).Checks
actionlinton the 38 files: no findings.tools/check_run_syntax.py: 120 of 120 workflows read, 0 steps that do not parse.Not measured
ax7203-gf10-sub. It fails onmaintoday (run 37198621522) and on fix(ci): key the chipdb cache on the openXC7 image so it can hit #852 with the bare "no clean seed". A dispatch on this branch is running, and its output will go on ci(fpga): seed searches hide nextpnr's log when every seed fails #856.🤖 Generated with Claude Code