30 lines
2.2 KiB
Bash
Executable File
30 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
||
set -o pipefail
|
||
# Landing gate template (2026-10-14): sed the G= and OUT= lines and this comment.
|
||
# Sequential suites, each teed to its own log; stops at the first failure.
|
||
G=/mnt/storage/scratch/SET-ME-wt
|
||
OUT=/mnt/storage/scratch/SET-ME-out
|
||
cd "$G" || exit 9
|
||
mkdir -p "$OUT" || exit 9 # a missing OUT failed the row 142 gate at step 1 (2026-10-15)
|
||
# test-task.sh live cases run `docker compose` from $G, so without a name the project is "wt"
|
||
# and leaves wt_default behind (row 142 gate, 2026-10-15). Name it per gate dir and remove it on exit.
|
||
export COMPOSE_PROJECT_NAME="$(basename "$(dirname "$G")")"
|
||
trap 'docker network rm "${COMPOSE_PROJECT_NAME}_default" >/dev/null 2>&1 && echo "removed network ${COMPOSE_PROJECT_NAME}_default"' EXIT
|
||
# A gate tree without the node_modules link fails cli tests with ENOENT (2026-10-13).
|
||
[ -d "$G/node_modules" ] || { echo "STOP no node_modules in $G"; exit 8; }
|
||
# Gate rule (mos-1455 item 4, 2026-10-23): every landing gate runs the bus, cli, plugins, webui and business
|
||
# suites whatever the row touches. The 270+271 gate skipped plugins, and its red sat on refactor unseen.
|
||
for p in bus cli plugins webui business; do [ -d "$G/packages/$p/tests" ] || { echo "STOP no packages/$p/tests"; exit 8; }; done
|
||
# mos-1453: a gate on the canonical node_modules must not let the webui editor rebuild test skip (Vikunja 597).
|
||
export MOSAIC_REQUIRE_EDITOR_BUILD=1
|
||
echo "base $(git rev-parse --short HEAD) dirty $(git status --short | grep -vc node_modules) DOCKER_HOST=${DOCKER_HOST:-unset}"
|
||
run() { local name="$1" dir="$2" cmd="$3"
|
||
(cd "$G/$dir" && bash -c "$cmd") > "$OUT/$name.log" 2>&1; local rc=$?
|
||
echo "$name rc=$rc $(grep -E '^ℹ (pass|fail) [0-9]+' "$OUT/$name.log" | tr '\n' ' ') | $(tail -n1 "$OUT/$name.log")"
|
||
[ $rc -eq 0 ] || { echo "STOP $name"; exit $rc; }; }
|
||
# No pkg-queue step: scripts/test-queue.sh runs packages/queue/tests/ itself (same 156 tests; CI debate item 2a, Vikunja #274).
|
||
for d in packages/*/; do p=$(basename "$d"); [ -d "$d/tests" ] || continue; [ "$p" = queue ] && continue
|
||
run "pkg-$p" "packages/$p" 'node --test tests/*.test.mjs'; done
|
||
for s in scripts/test-*.sh; do n=$(basename "$s" .sh); run "script-${n#test-}" . "bash $s"; done
|
||
echo GATE_PASSED
|