testsAndMisc/.github/workflows
Krzysztof kuhy Rudnicki 170f843481
Some checks are pending
Pre-commit checks / pre-commit (push) Waiting to run
Shell tests / shell-tests (push) Waiting to run
Shell tests / arch-tests (push) Waiting to run
Make the jailed lib/tests gate able to fail, without breaking measurement
The jail recorded each case's exit code but reported only timeouts,
discarding every other non-zero status. A suite with a failing assertion
exited 0 through the push gate -- the same blind spot that let an earlier
session ship 2 failing assertions in the nc_php suite. Found by negative
control, not by reading: a deliberately failing assertion still exited 0.

Propagating that status unconditionally was wrong, and caught before landing:
the jail's own usage example passes a `bogus` case that exits non-zero to
cover an error path, so a clean 5/5 = 100.00% run started failing. That is
the mode the 105-lib campaign runs in.

So the behaviour sits behind --fail-on-case-error, default off, passed only
by ci_mirror.sh and shell-tests.yml. Verified in all four quadrants:
measurement + error case = 0, gate + error case = 1, gate + clean suite = 0,
gate + broken assertion = 1.

Both gates also pass --min 0: with no --measure the jail was measuring
run_all.sh itself against its default --min 100 and failing the push at
54.55%, a coverage verdict neither gate asked for. ci_mirror.sh now prints
the jail's output on failure, so a red gate can be diagnosed.

The added flag pushed the jail over the 250-line cap, so the in-namespace
case runner moved to lib/shell_coverage_case_runner.sh, following the
existing lib/shell_coverage_jail_setup.sh split. All four quadrants were
re-run after the extraction.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016sxxsDHWgdRhmdmzNMA6XM
2026-08-22 12:16:18 +02:00
..
billsplit-ci.yml Move billsplit Flutter app into the monorepo 2026-08-03 12:22:22 +02:00
claude-code-review.yml Fix prettier formatting in claude-code-review.yml 2026-06-22 07:54:32 +02:00
claude.yml Fix CI pipeline and clear the lint backlog it had been hiding 2026-06-22 07:52:44 +02:00
poker-stakes-ci.yml Track poker-stakes so the file-length cap can reach it 2026-08-16 15:19:07 +02:00
pre-commit.yml CI: install rsvg-convert on GitHub Actions runners (Phase 0 fix) 2026-08-18 23:10:38 +02:00
python-tests.yml CI: make python-tests.yml self-triggering + add workflow_dispatch 2026-08-18 23:19:43 +02:00
reverse-survivors-ci.yml feat(reverse_survivors): migrate Reverse Survivors game into the monorepo 2026-08-03 10:45:12 +02:00
shell-tests.yml Make the jailed lib/tests gate able to fail, without breaking measurement 2026-08-22 12:16:18 +02:00