32 lines
1.8 KiB
Bash
Executable File
32 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Row 300 gate run 1 (brief R6-N1): npm ci (root and packages/webui), the new test file whole, the
|
|
# webui suite whole, then mutant M12. Stops at the first red. FROM=<step> resumes at a step.
|
|
set -u -o pipefail
|
|
WT=/mnt/storage/scratch/launchpad-r300/wt
|
|
OUT=$WT/agents/launchpad/work/queue-300/run1
|
|
LOG=/mnt/storage/scratch/launchpad-r300/run1
|
|
FROM=${FROM:-npm-root}; TAG=${TAG:-}
|
|
mkdir -p $LOG
|
|
export TMPDIR=$(mktemp -d /mnt/storage/scratch/tmp/gXXXXXX)
|
|
echo "start $(date -u +%H:%M:%SZ) FROM=$FROM TAG=$TAG TMPDIR $TMPDIR head $(git -C $WT rev-parse HEAD)" >> $LOG/summary.txt
|
|
[ -z "$(git -C $WT status --porcelain)" ] || { echo "STOP worktree not clean" | tee -a $LOG/summary.txt; exit 9; }
|
|
on=0
|
|
step() { # name limit dir cmd...
|
|
local name=$1 limit=$2 dir=$3; shift 3
|
|
[ $on = 1 ] || [ $name = $FROM ] || return 0; on=1
|
|
local t0=$(date +%s%N)
|
|
( cd $dir && timeout -k 10 $limit "$@" ) > $LOG/$name$TAG.log 2>&1
|
|
local rc=$?
|
|
local ms=$(( ($(date +%s%N) - t0) / 1000000 )); local dt=$((ms/1000)).$(printf %03d $((ms%1000)))
|
|
echo "$name$TAG rc=$rc seconds=$dt limit=$limit $(date -u +%H:%M:%SZ)" | tee -a $LOG/summary.txt
|
|
[ $rc -eq 0 ] || { echo "STOP at $name$TAG" | tee -a $LOG/summary.txt; exit $rc; }
|
|
}
|
|
step npm-root 900 $WT npm ci --ignore-scripts
|
|
step npm-webui 900 $WT/packages/webui npm ci --ignore-scripts
|
|
step new-file 300 $WT/packages/webui node --test tests/user-option-swap.test.mjs
|
|
step webui 600 $WT/packages/webui node --test tests/
|
|
[ -z "$(git -C $WT status --porcelain)" ] || { echo "STOP worktree dirty after the suite" | tee -a $LOG/summary.txt; git -C $WT status --porcelain >> $LOG/summary.txt; exit 9; }
|
|
echo "SUITES GREEN $(date -u +%H:%M:%SZ)" | tee -a $LOG/summary.txt
|
|
python3 -B $OUT/mutants.py
|
|
rc=$?; echo "MUTANTS rc=$rc $(date -u +%H:%M:%SZ)" | tee -a $LOG/summary.txt; exit $rc
|