#!/usr/bin/env bash # Row 150 (#1644) builder round: the touched and adjacent test files, each run singly. # Not the full gate; Sage's gate at landing runs the cli, bus and webui suites and every # scripts/test-*.sh. Usage: gate.sh set -uo pipefail WT=$(cd "$1" && pwd -P); LOGS=$(mkdir -p "$2" && cd "$2" && pwd -P) export TMPDIR="$HOME/darkwing-scratch/r150/tmp"; mkdir -p "$TMPDIR" echo "base $(git -C "$WT" rev-parse --short HEAD) start $(date -u +%H:%M:%S)" for f in packages/cli/tests/mark-read.test.mjs packages/cli/tests/follow.test.mjs packages/cli/tests/cli.test.mjs \ packages/cli/tests/tester.test.mjs packages/cli/tests/app.test.mjs packages/cli/tests/format.test.mjs \ packages/webui/tests/send-browser.test.mjs; do d=${f%%/tests/*}; name=$(basename "$d")-$(basename "$f" .test.mjs); log="$LOGS/$name.log" start=$(date -u +%H:%M:%S) (cd "$WT/$d" && timeout 600 node --test "tests/$(basename "$f")") > "$log" 2>&1 rc=$? echo "$name rc=$rc $start-$(date -u +%H:%M:%S) $(grep -E 'ℹ (pass|fail|skipped) ' "$log" | tr '\n' ' ')" if [ $rc -ne 0 ]; then echo "STOP $name"; exit 1; fi done echo "ROUND_PASSED $(date -u +%H:%M:%S)"