chore: import upstream snapshot with attribution
This commit is contained in:
Executable
+112
@@ -0,0 +1,112 @@
|
||||
#!/usr/bin/env bash
|
||||
# Local CI — test all platforms before pushing.
|
||||
#
|
||||
# Coverage:
|
||||
# Linux arm64: test (ASan+LeakSan) + build (-O2) [native, fast]
|
||||
# Linux amd64: test + build [QEMU, slower]
|
||||
# Linux portable: Alpine musl static build + smoke [portable binary]
|
||||
# Windows: cross-compile with mingw-w64 [compile-check]
|
||||
# macOS: run natively (not in Docker)
|
||||
#
|
||||
# Usage:
|
||||
# ./test-infrastructure/run.sh # arm64 test+build + portable + Windows
|
||||
# ./test-infrastructure/run.sh all # above + amd64
|
||||
# ./test-infrastructure/run.sh portable # Alpine portable build + smoke only
|
||||
# ./test-infrastructure/run.sh windows # Windows cross-compile only
|
||||
# ./test-infrastructure/run.sh test # Linux arm64 test only (no perf)
|
||||
# ./test-infrastructure/run.sh perf # Linux arm64 perf/incremental only
|
||||
# ./test-infrastructure/run.sh build # Linux arm64 build only
|
||||
# ./test-infrastructure/run.sh lint # clang-format + cppcheck
|
||||
# ./test-infrastructure/run.sh shell # debug shell
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
COMPOSE="docker compose -f $ROOT/test-infrastructure/docker-compose.yml"
|
||||
|
||||
case "${1:-full}" in
|
||||
full)
|
||||
echo "=== Linux arm64: test + build ==="
|
||||
$COMPOSE run --rm -e CBM_SKIP_PERF=1 test
|
||||
$COMPOSE run --rm build
|
||||
echo "=== Linux arm64: smoke test ==="
|
||||
$COMPOSE run --rm smoke
|
||||
echo "=== Linux portable: Alpine static build + smoke ==="
|
||||
$COMPOSE run --rm smoke-portable
|
||||
echo "=== Windows: cross-compile ==="
|
||||
$COMPOSE run --rm build-windows
|
||||
echo "=== All passed ==="
|
||||
;;
|
||||
test)
|
||||
echo "=== Linux arm64: test (ASan + LeakSanitizer, no perf) ==="
|
||||
$COMPOSE run --rm -e CBM_SKIP_PERF=1 test
|
||||
;;
|
||||
perf)
|
||||
echo "=== Linux arm64: perf/incremental tests ==="
|
||||
$COMPOSE run --rm test
|
||||
;;
|
||||
build)
|
||||
echo "=== Linux arm64: production build (-O2 -Werror) ==="
|
||||
$COMPOSE run --rm build
|
||||
;;
|
||||
smoke)
|
||||
echo "=== Linux arm64: smoke test (build + run all phases) ==="
|
||||
$COMPOSE run --rm smoke
|
||||
;;
|
||||
portable)
|
||||
echo "=== Linux portable: Alpine static build + smoke ==="
|
||||
$COMPOSE run --rm smoke-portable
|
||||
;;
|
||||
portable-test)
|
||||
echo "=== Linux portable: Alpine test (ASan + LeakSan) ==="
|
||||
$COMPOSE run --rm -e CBM_SKIP_PERF=1 test-portable
|
||||
;;
|
||||
windows)
|
||||
echo "=== Windows: cross-compile + smoke (Wine) ==="
|
||||
$COMPOSE run --rm smoke-windows
|
||||
;;
|
||||
smoke-windows)
|
||||
echo "=== Windows: smoke test (cross-compile + Wine) ==="
|
||||
$COMPOSE run --rm smoke-windows
|
||||
;;
|
||||
soak-windows)
|
||||
echo "=== Windows: soak test (cross-compile + Wine, 10 min) ==="
|
||||
$COMPOSE run --rm soak-windows
|
||||
;;
|
||||
amd64)
|
||||
echo "=== Linux amd64: test + build ==="
|
||||
$COMPOSE run --rm -e CBM_SKIP_PERF=1 test-amd64
|
||||
$COMPOSE run --rm build-amd64
|
||||
;;
|
||||
all)
|
||||
echo "=== Linux arm64: test + build + smoke ==="
|
||||
$COMPOSE run --rm -e CBM_SKIP_PERF=1 test
|
||||
$COMPOSE run --rm build
|
||||
$COMPOSE run --rm smoke
|
||||
echo "=== Linux portable: Alpine static build + smoke ==="
|
||||
$COMPOSE run --rm smoke-portable
|
||||
echo "=== Linux amd64: test + build + smoke ==="
|
||||
$COMPOSE run --rm -e CBM_SKIP_PERF=1 test-amd64
|
||||
$COMPOSE run --rm build-amd64
|
||||
$COMPOSE run --rm smoke-amd64
|
||||
echo "=== Windows: cross-compile + smoke (Wine) ==="
|
||||
$COMPOSE run --rm smoke-windows
|
||||
echo "=== All platforms passed ==="
|
||||
;;
|
||||
lint)
|
||||
echo "=== Linters (clang-format-20 + cppcheck 2.20.0) ==="
|
||||
$COMPOSE run --rm lint
|
||||
;;
|
||||
shell)
|
||||
echo "=== Debug shell (Linux arm64) ==="
|
||||
$COMPOSE run --rm --entrypoint bash test
|
||||
;;
|
||||
shell-alpine)
|
||||
echo "=== Debug shell (Alpine) ==="
|
||||
$COMPOSE run --rm --entrypoint bash test-portable
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {full|test|build|smoke|portable|portable-test|windows|amd64|all|lint|shell|shell-alpine}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user