#!/bin/bash set -o pipefail # Darkwing targeted builder gate, row 117 (#1611), candidate in the r117 # worktree on base 559ef2287 (Sage's sage-0180 rule: the changed packages, # their importers, and every scripts/test-*.sh that reads a changed path). # seat, cli and harness; no other package imports checkout.mjs, launcher.mjs # or bundle.mjs. No test-*.sh reads a changed path; test-conductor.sh and # test-extension-package.sh match the basename README.md for their own # sandbox files and run anyway. Sequential, each teed; stops at the first failure. G=$HOME/darkwing-scratch/r117/wt OUT=$HOME/darkwing-scratch/r117/gate export TMPDIR=$HOME/darkwing-scratch/r117/tmp mkdir -p "$OUT" "$TMPDIR" cd "$G" || exit 9 [ -e "$G/node_modules" ] || { echo "STOP no node_modules in $G"; exit 8; } echo "base $(git rev-parse --short HEAD) start $(date -u +%H:%M:%S)" run() { local name="$1" dir="$2" cmd="$3" t0; t0=$(date -u +%H:%M:%S) (cd "$G/$dir" && bash -c "$cmd") 2>&1 | tee "$OUT/$name.log" > /dev/null; local rc=$? echo "$name rc=$rc $t0-$(date -u +%H:%M:%S) $(grep -E '^ℹ (pass|fail|skipped) [0-9]+' "$OUT/$name.log" | tr '\n' ' ') | $(tail -n1 "$OUT/$name.log")" [ $rc -eq 0 ] || { echo "STOP $name"; exit $rc; }; } for p in seat cli harness; do run "pkg-$p" "packages/$p" 'node --test tests/*.test.mjs'; done for n in conductor extension-package; do run "script-$n" . "bash scripts/test-$n.sh"; done echo "GATE_PASSED $(date -u +%H:%M:%S)"