From 9561b62f49d2f3700abc03dd956e62bebc7c1cd5 Mon Sep 17 00:00:00 2001 From: Dmitrii Vasilev Date: Sun, 4 Oct 2026 18:49:25 +0700 Subject: [PATCH] ci(fpga): print nextpnr's log when a seed search finds no clean seed 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 --- .github/workflows/ax7203-corona-decode.yml | 2 +- .github/workflows/ax7203-gf10-add.yml | 2 +- .github/workflows/ax7203-gf10-mul.yml | 2 +- .github/workflows/ax7203-gf10-sub.yml | 2 +- .github/workflows/ax7203-gf12-clean.yml | 2 +- .github/workflows/ax7203-gf12-mul-clean.yml | 2 +- .github/workflows/ax7203-gf12-sub.yml | 2 +- .github/workflows/ax7203-gf14-add.yml | 2 +- .github/workflows/ax7203-gf14-mul.yml | 2 +- .github/workflows/ax7203-gf14-sub.yml | 2 +- .github/workflows/ax7203-gf16-clean.yml | 2 +- .github/workflows/ax7203-gf16-mul-clean.yml | 2 +- .github/workflows/ax7203-gf16-sub.yml | 2 +- .github/workflows/ax7203-gf20-clean.yml | 2 +- .github/workflows/ax7203-gf20-mul-clean.yml | 2 +- .github/workflows/ax7203-gf20-sub.yml | 2 +- .github/workflows/ax7203-gf24-clean.yml | 2 +- .github/workflows/ax7203-gf24-mul-clean.yml | 2 +- .github/workflows/ax7203-gf24-sub.yml | 2 +- .github/workflows/ax7203-gf32-add.yml | 2 +- .github/workflows/ax7203-gf32-mul.yml | 2 +- .github/workflows/ax7203-gf32-sub.yml | 2 +- .github/workflows/ax7203-gf4-clean.yml | 2 +- .github/workflows/ax7203-gf4-mul-clean.yml | 2 +- .github/workflows/ax7203-gf4-sub.yml | 2 +- .github/workflows/ax7203-gf6-clean.yml | 2 +- .github/workflows/ax7203-gf6-mul-clean.yml | 2 +- .github/workflows/ax7203-gf6-sub.yml | 2 +- .github/workflows/ax7203-gf8-clean.yml | 2 +- .github/workflows/ax7203-gf8-mul-clean.yml | 2 +- .github/workflows/ax7203-gf8-sub.yml | 2 +- .github/workflows/ax7203-gfternary-mul.yml | 2 +- .github/workflows/ax7203-identity-echo.yml | 2 +- .github/workflows/ax7203-trinet-baud.yml | 2 +- .github/workflows/ax7203-trinet-dna-probe.yml | 2 +- .github/workflows/ax7203-trinet-fleet.yml | 2 +- .github/workflows/ax7203-trinet-mac32.yml | 2 +- .github/workflows/ax7203-trinet-node-v2.yml | 2 +- 38 files changed, 38 insertions(+), 38 deletions(-) diff --git a/.github/workflows/ax7203-corona-decode.yml b/.github/workflows/ax7203-corona-decode.yml index 5c4e97de1a..94810fb721 100644 --- a/.github/workflows/ax7203-corona-decode.yml +++ b/.github/workflows/ax7203-corona-decode.yml @@ -90,7 +90,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/corona_decode/corona_decode_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf10-add.yml b/.github/workflows/ax7203-gf10-add.yml index b4d239c532..524a818b64 100644 --- a/.github/workflows/ax7203-gf10-add.yml +++ b/.github/workflows/ax7203-gf10-add.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf10_add/gf10_add_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf10-mul.yml b/.github/workflows/ax7203-gf10-mul.yml index fa0b8e75db..0179caa2ef 100644 --- a/.github/workflows/ax7203-gf10-mul.yml +++ b/.github/workflows/ax7203-gf10-mul.yml @@ -50,7 +50,7 @@ jobs: --seed $s --placer $PLACER --router router1 --timing-allow-fail > /tmp/np_$trial.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$trial.log || [ ! -f build/gf10_mul/gf10_mul_ax7203.fasm ]; then continue; fi cp /tmp/np_$trial.log /tmp/np.log; CLEAN="$trial($PLACER,s$s)"; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed (16 heap+sa)"; exit 1; }; echo "clean=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed (16 heap+sa)"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "clean=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf10-sub.yml b/.github/workflows/ax7203-gf10-sub.yml index 8cb8dfd2f9..a90fe7ab7b 100644 --- a/.github/workflows/ax7203-gf10-sub.yml +++ b/.github/workflows/ax7203-gf10-sub.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf10_sub/gf10_sub_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf12-clean.yml b/.github/workflows/ax7203-gf12-clean.yml index 96791df5e0..44e4d1ae8d 100644 --- a/.github/workflows/ax7203-gf12-clean.yml +++ b/.github/workflows/ax7203-gf12-clean.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf12_clean/gf12_clean_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf12-mul-clean.yml b/.github/workflows/ax7203-gf12-mul-clean.yml index f2cbe10b5b..5adf1e9c46 100644 --- a/.github/workflows/ax7203-gf12-mul-clean.yml +++ b/.github/workflows/ax7203-gf12-mul-clean.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf12_mul/gf12_mul_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf12-sub.yml b/.github/workflows/ax7203-gf12-sub.yml index fc6ceb949a..adc5d95e3d 100644 --- a/.github/workflows/ax7203-gf12-sub.yml +++ b/.github/workflows/ax7203-gf12-sub.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf12_sub/gf12_sub_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf14-add.yml b/.github/workflows/ax7203-gf14-add.yml index 54037e87bc..c0163d3361 100644 --- a/.github/workflows/ax7203-gf14-add.yml +++ b/.github/workflows/ax7203-gf14-add.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf14_add/gf14_add_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf14-mul.yml b/.github/workflows/ax7203-gf14-mul.yml index 78222e3346..b9d147eeb2 100644 --- a/.github/workflows/ax7203-gf14-mul.yml +++ b/.github/workflows/ax7203-gf14-mul.yml @@ -50,7 +50,7 @@ jobs: --seed $s --placer $PLACER --router router1 --timing-allow-fail > /tmp/np_$trial.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$trial.log || [ ! -f build/gf14_mul/gf14_mul_ax7203.fasm ]; then continue; fi cp /tmp/np_$trial.log /tmp/np.log; CLEAN="$trial($PLACER,s$s)"; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed (16 heap+sa)"; exit 1; }; echo "clean=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed (16 heap+sa)"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "clean=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf14-sub.yml b/.github/workflows/ax7203-gf14-sub.yml index 8dab954f9b..e4dc0b3f31 100644 --- a/.github/workflows/ax7203-gf14-sub.yml +++ b/.github/workflows/ax7203-gf14-sub.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf14_sub/gf14_sub_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf16-clean.yml b/.github/workflows/ax7203-gf16-clean.yml index 4897261b13..b9ec4217cf 100644 --- a/.github/workflows/ax7203-gf16-clean.yml +++ b/.github/workflows/ax7203-gf16-clean.yml @@ -59,7 +59,7 @@ jobs: if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf16_clean/gf16_clean_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break done - [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; } + [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; } echo "seed=$CLEAN" - name: fasm2frames + xc7frames2bit run: | diff --git a/.github/workflows/ax7203-gf16-mul-clean.yml b/.github/workflows/ax7203-gf16-mul-clean.yml index 57f7733f30..5b1a00114e 100644 --- a/.github/workflows/ax7203-gf16-mul-clean.yml +++ b/.github/workflows/ax7203-gf16-mul-clean.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf16_mul/gf16_mul_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf16-sub.yml b/.github/workflows/ax7203-gf16-sub.yml index 8f83a6ca55..ed1bb1017e 100644 --- a/.github/workflows/ax7203-gf16-sub.yml +++ b/.github/workflows/ax7203-gf16-sub.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf16_sub/gf16_sub_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf20-clean.yml b/.github/workflows/ax7203-gf20-clean.yml index 6ed7cb1ff7..38ca7f9e74 100644 --- a/.github/workflows/ax7203-gf20-clean.yml +++ b/.github/workflows/ax7203-gf20-clean.yml @@ -66,7 +66,7 @@ jobs: if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf20_clean/gf20_clean_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break done - [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; } + [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; } echo "seed=$CLEAN" - name: fasm2frames + xc7frames2bit run: | diff --git a/.github/workflows/ax7203-gf20-mul-clean.yml b/.github/workflows/ax7203-gf20-mul-clean.yml index 58c8454374..20dccea086 100644 --- a/.github/workflows/ax7203-gf20-mul-clean.yml +++ b/.github/workflows/ax7203-gf20-mul-clean.yml @@ -48,7 +48,7 @@ jobs: --seed $s --placer heap --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf20_mul/gf20_mul_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf20-sub.yml b/.github/workflows/ax7203-gf20-sub.yml index b828e4a7fc..b1cceb5bc2 100644 --- a/.github/workflows/ax7203-gf20-sub.yml +++ b/.github/workflows/ax7203-gf20-sub.yml @@ -48,7 +48,7 @@ jobs: --seed $s --placer heap --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf20_sub/gf20_sub_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf24-clean.yml b/.github/workflows/ax7203-gf24-clean.yml index 010c039f62..eeb64cc8ba 100644 --- a/.github/workflows/ax7203-gf24-clean.yml +++ b/.github/workflows/ax7203-gf24-clean.yml @@ -59,7 +59,7 @@ jobs: if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf24_clean/gf24_clean_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break done - [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; } + [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; } echo "seed=$CLEAN" - name: fasm2frames + xc7frames2bit run: | diff --git a/.github/workflows/ax7203-gf24-mul-clean.yml b/.github/workflows/ax7203-gf24-mul-clean.yml index 631c4ce52f..41cc5c7a99 100644 --- a/.github/workflows/ax7203-gf24-mul-clean.yml +++ b/.github/workflows/ax7203-gf24-mul-clean.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf24_mul/gf24_mul_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf24-sub.yml b/.github/workflows/ax7203-gf24-sub.yml index dbf617cfe2..70d816085c 100644 --- a/.github/workflows/ax7203-gf24-sub.yml +++ b/.github/workflows/ax7203-gf24-sub.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf24_sub/gf24_sub_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf32-add.yml b/.github/workflows/ax7203-gf32-add.yml index d1d3c77a3f..4983aecd03 100644 --- a/.github/workflows/ax7203-gf32-add.yml +++ b/.github/workflows/ax7203-gf32-add.yml @@ -48,7 +48,7 @@ jobs: --seed $s --placer heap --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf32_add/gf32_add_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf32-mul.yml b/.github/workflows/ax7203-gf32-mul.yml index 286e7e90c6..cc07fa6f16 100644 --- a/.github/workflows/ax7203-gf32-mul.yml +++ b/.github/workflows/ax7203-gf32-mul.yml @@ -50,7 +50,7 @@ jobs: --seed $s --placer $PLACER --router router2 --timing-allow-fail > /tmp/np_$trial.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$trial.log || [ ! -f build/gf32_mul/gf32_mul_ax7203.fasm ]; then continue; fi cp /tmp/np_$trial.log /tmp/np.log; CLEAN="$trial($PLACER,seed=$s)"; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed (16 attempts, heap+sa)"; exit 1; }; echo "clean=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed (16 attempts, heap+sa)"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "clean=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf32-sub.yml b/.github/workflows/ax7203-gf32-sub.yml index 1ae1e7ab2a..717d00c540 100644 --- a/.github/workflows/ax7203-gf32-sub.yml +++ b/.github/workflows/ax7203-gf32-sub.yml @@ -48,7 +48,7 @@ jobs: --seed $s --placer heap --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf32_sub/gf32_sub_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf4-clean.yml b/.github/workflows/ax7203-gf4-clean.yml index a7a084808e..d7bcd43558 100644 --- a/.github/workflows/ax7203-gf4-clean.yml +++ b/.github/workflows/ax7203-gf4-clean.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf4_clean/gf4_clean_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf4-mul-clean.yml b/.github/workflows/ax7203-gf4-mul-clean.yml index 87fd2e4c0b..b10b581ebd 100644 --- a/.github/workflows/ax7203-gf4-mul-clean.yml +++ b/.github/workflows/ax7203-gf4-mul-clean.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf4_mul/gf4_mul_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf4-sub.yml b/.github/workflows/ax7203-gf4-sub.yml index 8030fd6b90..d582851a47 100644 --- a/.github/workflows/ax7203-gf4-sub.yml +++ b/.github/workflows/ax7203-gf4-sub.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf4_sub/gf4_sub_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf6-clean.yml b/.github/workflows/ax7203-gf6-clean.yml index 2c8550a5fc..ff6b791bbf 100644 --- a/.github/workflows/ax7203-gf6-clean.yml +++ b/.github/workflows/ax7203-gf6-clean.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf6_clean/gf6_clean_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf6-mul-clean.yml b/.github/workflows/ax7203-gf6-mul-clean.yml index 9c8445b9ad..5828869eaf 100644 --- a/.github/workflows/ax7203-gf6-mul-clean.yml +++ b/.github/workflows/ax7203-gf6-mul-clean.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf6_mul/gf6_mul_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf6-sub.yml b/.github/workflows/ax7203-gf6-sub.yml index 0bf57e0889..668678cf91 100644 --- a/.github/workflows/ax7203-gf6-sub.yml +++ b/.github/workflows/ax7203-gf6-sub.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf6_sub/gf6_sub_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf8-clean.yml b/.github/workflows/ax7203-gf8-clean.yml index f51923e21b..35ddd7fceb 100644 --- a/.github/workflows/ax7203-gf8-clean.yml +++ b/.github/workflows/ax7203-gf8-clean.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf8_clean/gf8_clean_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf8-mul-clean.yml b/.github/workflows/ax7203-gf8-mul-clean.yml index 50c37fec90..9a9f88a083 100644 --- a/.github/workflows/ax7203-gf8-mul-clean.yml +++ b/.github/workflows/ax7203-gf8-mul-clean.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf8_mul/gf8_mul_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gf8-sub.yml b/.github/workflows/ax7203-gf8-sub.yml index 8b3d3f02c8..15ead84de8 100644 --- a/.github/workflows/ax7203-gf8-sub.yml +++ b/.github/workflows/ax7203-gf8-sub.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/gf8_sub/gf8_sub_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-gfternary-mul.yml b/.github/workflows/ax7203-gfternary-mul.yml index b076fc05f4..4a8894b62a 100644 --- a/.github/workflows/ax7203-gfternary-mul.yml +++ b/.github/workflows/ax7203-gfternary-mul.yml @@ -67,7 +67,7 @@ jobs: done [ -n "$CLEAN" ] && break done - [ -z "$CLEAN" ] && { echo "::error::no clean seed across heap+sa x8"; exit 1; } + [ -z "$CLEAN" ] && { echo "::error::no clean seed across heap+sa x8"; tail -n 15 /tmp/np_*.log; exit 1; } echo "routed with placer/seed = $CLEAN" - name: fasm2bit run: | diff --git a/.github/workflows/ax7203-identity-echo.yml b/.github/workflows/ax7203-identity-echo.yml index 77cf769516..fbeb3aaef8 100644 --- a/.github/workflows/ax7203-identity-echo.yml +++ b/.github/workflows/ax7203-identity-echo.yml @@ -48,7 +48,7 @@ jobs: --freq 50.0 --seed $s --placer sa --router router1 --timing-allow-fail > /tmp/np_$s.log 2>&1 || true if grep -q "Failed to find a route" /tmp/np_$s.log || [ ! -f build/identity_echo/identity_echo_ax7203.fasm ]; then continue; fi cp /tmp/np_$s.log /tmp/np.log; CLEAN=$s; break - done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; exit 1; }; echo "seed=$CLEAN" + done; [ "$CLEAN" = "0" ] && { echo "::error::no clean seed"; tail -n 15 /tmp/np_*.log; exit 1; }; echo "seed=$CLEAN" - name: fasm2bit run: | docker run --rm -v "$PWD:/work" -w /work regymm/openxc7 bash -c " diff --git a/.github/workflows/ax7203-trinet-baud.yml b/.github/workflows/ax7203-trinet-baud.yml index 626677a419..d93548b09d 100644 --- a/.github/workflows/ax7203-trinet-baud.yml +++ b/.github/workflows/ax7203-trinet-baud.yml @@ -92,7 +92,7 @@ jobs: done [ -n "$CLEAN" ] && break done - [ -z "$CLEAN" ] && { echo "::error::no clean seed across heap+sa x8"; exit 1; } + [ -z "$CLEAN" ] && { echo "::error::no clean seed across heap+sa x8"; tail -n 15 /tmp/np_*.log; exit 1; } echo "routed with placer/seed = $CLEAN" - name: fasm2bit diff --git a/.github/workflows/ax7203-trinet-dna-probe.yml b/.github/workflows/ax7203-trinet-dna-probe.yml index 21d905d7ca..e932ad2441 100644 --- a/.github/workflows/ax7203-trinet-dna-probe.yml +++ b/.github/workflows/ax7203-trinet-dna-probe.yml @@ -77,7 +77,7 @@ jobs: done [ -n "$CLEAN" ] && break done - [ -z "$CLEAN" ] && { echo "::error::no clean seed across heap+sa x8"; exit 1; } + [ -z "$CLEAN" ] && { echo "::error::no clean seed across heap+sa x8"; tail -n 15 /tmp/np_*.log; exit 1; } echo "routed with placer/seed = $CLEAN" - name: fasm2bit run: | diff --git a/.github/workflows/ax7203-trinet-fleet.yml b/.github/workflows/ax7203-trinet-fleet.yml index 86b6dcf658..5d6d15dd6f 100644 --- a/.github/workflows/ax7203-trinet-fleet.yml +++ b/.github/workflows/ax7203-trinet-fleet.yml @@ -129,7 +129,7 @@ jobs: done [ -n "$CLEAN" ] && break done - [ -z "$CLEAN" ] && { echo "::error::no clean seed across heap+sa x8"; exit 1; } + [ -z "$CLEAN" ] && { echo "::error::no clean seed across heap+sa x8"; tail -n 15 /tmp/np_*.log; exit 1; } echo "routed with placer/seed = $CLEAN" - name: fasm2bit diff --git a/.github/workflows/ax7203-trinet-mac32.yml b/.github/workflows/ax7203-trinet-mac32.yml index 22c2334dc6..1570ab05f5 100644 --- a/.github/workflows/ax7203-trinet-mac32.yml +++ b/.github/workflows/ax7203-trinet-mac32.yml @@ -83,7 +83,7 @@ jobs: done [ -n "$CLEAN" ] && break done - [ -z "$CLEAN" ] && { echo "::error::no clean seed across heap+sa x8"; exit 1; } + [ -z "$CLEAN" ] && { echo "::error::no clean seed across heap+sa x8"; tail -n 15 /tmp/np_*.log; exit 1; } echo "routed with placer/seed = $CLEAN" - name: fasm2bit run: | diff --git a/.github/workflows/ax7203-trinet-node-v2.yml b/.github/workflows/ax7203-trinet-node-v2.yml index a8259ba794..e7cdf75fb1 100644 --- a/.github/workflows/ax7203-trinet-node-v2.yml +++ b/.github/workflows/ax7203-trinet-node-v2.yml @@ -90,7 +90,7 @@ jobs: done [ -n "$CLEAN" ] && break done - [ -z "$CLEAN" ] && { echo "::error::no clean seed across heap+sa x8"; exit 1; } + [ -z "$CLEAN" ] && { echo "::error::no clean seed across heap+sa x8"; tail -n 15 /tmp/np_*.log; exit 1; } echo "routed with placer/seed = $CLEAN" - name: fasm2bit run: |