The review of 2026-10-09: the build seat runs the lab's merge-check.sh in the TypeScript toolchain, which holds no Go, so the proof never ran there. It is now a declared part of its own (mesh-check-also), run against the controller, runtime and catalogue cloned beside the lab; a missing clone or a controller without the proof's fixture is said NOT RUN in capitals instead of failing every lab change.
38 lines
1.5 KiB
Bash
38 lines
1.5 KiB
Bash
#!/bin/sh
|
|
# mesh-check-toolchain: go
|
|
#
|
|
# The proof of the operator's answers (novox/hq ADR 0259), the Go part of the lab's own check: run by the
|
|
# build seat in the mesh's Go toolchain, its own container, because the lab's merge-check.sh declares it
|
|
# (`# mesh-check-also: go asks/merge-check.sh`) — and by hand: `sh asks/merge-check.sh`.
|
|
#
|
|
# Formatted, vetted, and run against the clones beside the lab: on the build seat those are the controller,
|
|
# the runtime and the catalogue **the mesh runs**, so every pull request of the lab proves the answers the
|
|
# operator would get today. By hand, MESH_LAB_REPOS, or MESH_LAB_CONTROLLER, MESH_LAB_TOOLS and
|
|
# MESH_LAB_CATALOGUE, point it at branches under review. It takes about four minutes when it runs.
|
|
#
|
|
# **Said, never passed silently**: where a clone is missing, or the controller predates the proof's fixture,
|
|
# it says NOT RUN and why, in capitals, and passes; a proof that runs and fails, fails the check.
|
|
set -eu
|
|
cd "$(dirname "$0")"
|
|
export GOPRIVATE=git.novox.be
|
|
|
|
unformatted=$(gofmt -l .)
|
|
if [ -n "$unformatted" ]; then
|
|
echo "not gofmt'd:"
|
|
echo "$unformatted"
|
|
exit 1
|
|
fi
|
|
sh -n live-acceptance.sh
|
|
go vet ./...
|
|
out=$(mktemp)
|
|
status=0
|
|
go test -count=1 -timeout 25m -v -run '^TestTheOperatorsAnswerEndToEnd$' . >"$out" 2>&1 || status=$?
|
|
grep -E '^(--- | --- |ok|FAIL|PASS)' "$out" || true
|
|
if grep -q 'NOT RUN' "$out"; then
|
|
echo "NOT RUN: THE PROOF OF THE OPERATOR'S ANSWERS DID NOT RUN HERE:"
|
|
grep -o 'NOT RUN: .*' "$out" | head -3
|
|
fi
|
|
[ "$status" -eq 0 ] || tail -60 "$out"
|
|
rm -f "$out"
|
|
exit "$status"
|