From bd6fcb885081200d0b89eed1101594deb6663e67 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Wed, 7 Oct 2026 14:06:53 +0000 Subject: [PATCH] Gate: the box lock self-tests skip with an ok line under --ci on a runner with no box (GitHub's hosted runner has no BUILD_HOST and no box file; master went red the moment the check landed, 7 Oct 2026); the Mac hook and the box runners still run them live Co-Authored-By: Claude Fable 5.1 --- tools/ci/box-locks-check.sh | 5 +++++ tools/ci/pre-push.sh | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/ci/box-locks-check.sh b/tools/ci/box-locks-check.sh index 897cbafc3..227695c9e 100755 --- a/tools/ci/box-locks-check.sh +++ b/tools/ci/box-locks-check.sh @@ -6,9 +6,14 @@ # infra/build-server/remote-run.sh --self-test-slots (slots, jobs, quiet beside builds and suites, leased cores excluded). # # tools/ci/box-locks-check.sh # exit 1 when either self-test fails or the box cannot be reached +# tools/ci/box-locks-check.sh --ci # the same, but a runner with no box (no BUILD_HOST, no ~/.config/igneum/build-server) prints +# # "ok (no box from this runner)" and exits 0: GitHub's hosted runner cannot reach the box +# # (master went red on 7 Oct 2026 the moment this check landed); the Mac hook and the +# # self-hosted runners that carry the box file run it live set -euo pipefail cd "$(dirname "$0")/../.." . infra/build-server/lib.sh +if [ "${1:-}" = --ci ] && [ -z "${BUILD_HOST:-}" ] && [ ! -s "$BS_HOST_FILE" ]; then echo "box-locks: ok (no box from this runner: no BUILD_HOST and no $BS_HOST_FILE; the Mac hook and the box runners run the lock self-tests)"; exit 0; fi bs_host 1 stamp="ci-$$-$(date +%s)" scp -q "${BS_SSH_OPTS[@]}" infra/build-server/lease.sh "$BS_HOST:/tmp/lease-$stamp.sh" diff --git a/tools/ci/pre-push.sh b/tools/ci/pre-push.sh index d3e337e2e..a8e2e8bc1 100755 --- a/tools/ci/pre-push.sh +++ b/tools/ci/pre-push.sh @@ -88,7 +88,7 @@ tree_checks() { run "long-running tools keep their body in one parsed block (the edited-while-running class)" bash -c 'bash tools/ci/whole-body-check.sh --self-test && bash tools/ci/whole-body-check.sh' run "build-remote without a priority flag bounds suites and benches (nice 10, 32 cores); a gate runs unbounded" bash tools/ci/build-kind-default-check.sh run "the class router is a preference with spill-over (a held or overloaded box hands the job to the other one)" bash tools/ci/route-spill-check.sh - run "per-core leases, the quiet class and the reaper pass on the box (lease.sh and remote-run.sh self-tests over ssh)" bash tools/ci/box-locks-check.sh + run "per-core leases, the quiet class and the reaper pass on the box (lease.sh and remote-run.sh self-tests over ssh)" bash tools/ci/box-locks-check.sh $( [ "$MODE" = ci ] && echo --ci ) run "the simulators job runs on master and release-* pushes and pull requests into them only" bash tools/ci/sims-branch-check.sh run "no shell assignment hides behind a trailing comment (the swallowed-defaults class)" bash -c 'bash tools/ci/defaults-line-check.sh --self-test && bash tools/ci/defaults-line-check.sh' run "no script kills or finds a process by a plain name or a file name (pgrep/pkill -f literals, ps | grep)" bash -c 'bash tools/ci/kill-by-name-check.sh --self-test && bash tools/ci/kill-by-name-check.sh'