feat: publish HoloLake model-native living system source
This commit is contained in:
parent
6ad10edde1
commit
c395dd3a99
2467 changed files with 615073 additions and 0 deletions
115
product-source/hololake-platform/.chunk/run-sidecar-gates.sh
Normal file
115
product-source/hololake-platform/.chunk/run-sidecar-gates.sh
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
start_time=$(date +%s)
|
||||
log_dir="${TMPDIR:-/tmp}/tolaria-sidecar-gates-$$"
|
||||
rust_changed="${RUST_CHANGED:-true}"
|
||||
rust_phase="${SIDECAR_RUST_PHASE:-after-coverage}"
|
||||
playwright_phase="${SIDECAR_PLAYWRIGHT_PHASE:-after}"
|
||||
playwright_shards="${PLAYWRIGHT_SHARDS:-8}"
|
||||
|
||||
mkdir -p "$log_dir"
|
||||
|
||||
if [[ -z "${VITEST_COVERAGE_MAX_WORKERS:-}" ]]; then
|
||||
if [[ "$playwright_phase" == "early" ]]; then
|
||||
export VITEST_COVERAGE_MAX_WORKERS="${SIDECAR_EARLY_VITEST_MAX_WORKERS:-2}"
|
||||
else
|
||||
export VITEST_COVERAGE_MAX_WORKERS="${SIDECAR_VITEST_MAX_WORKERS:-3}"
|
||||
fi
|
||||
fi
|
||||
|
||||
elapsed_seconds() {
|
||||
printf '%s' "$(($(date +%s) - start_time))"
|
||||
}
|
||||
|
||||
log_gate() {
|
||||
printf '[sidecar-gates +%ss] %s\n' "$(elapsed_seconds)" "$*"
|
||||
}
|
||||
|
||||
run_job() {
|
||||
local name="$1"
|
||||
shift
|
||||
local log_file="${log_dir}/${name}.log"
|
||||
|
||||
(
|
||||
set +e
|
||||
log_gate "${name} started"
|
||||
"$@" 2>&1 | tee "$log_file"
|
||||
local status=${PIPESTATUS[0]}
|
||||
log_gate "${name} exited with status ${status}"
|
||||
exit "$status"
|
||||
) &
|
||||
printf '%s:%s\n' "$name" "$!" >> "$jobs_file"
|
||||
}
|
||||
|
||||
terminate_jobs() {
|
||||
local pids
|
||||
pids="$(jobs -pr || true)"
|
||||
if [[ -n "$pids" ]]; then
|
||||
kill $pids 2>/dev/null || true
|
||||
sleep 2
|
||||
kill -KILL $pids 2>/dev/null || true
|
||||
fi
|
||||
}
|
||||
|
||||
jobs_file="${log_dir}/jobs"
|
||||
: > "$jobs_file"
|
||||
trap terminate_jobs INT TERM
|
||||
|
||||
wait_for_jobs() {
|
||||
local failures=0
|
||||
|
||||
while IFS=: read -r name pid; do
|
||||
if wait "$pid"; then
|
||||
printf '[sidecar-gates] %s passed\n' "$name"
|
||||
else
|
||||
failures=1
|
||||
printf '[sidecar-gates] %s failed\n' "$name"
|
||||
fi
|
||||
done < "$jobs_file"
|
||||
|
||||
return "$failures"
|
||||
}
|
||||
|
||||
log_gate "rust phase=${rust_phase}; playwright phase=${playwright_phase}; shards=${playwright_shards}; concurrency=${PLAYWRIGHT_CONCURRENCY:-${playwright_shards}}; vitest workers=${VITEST_COVERAGE_MAX_WORKERS:-4}"
|
||||
|
||||
run_job frontend-lint pnpm lint
|
||||
run_job frontend-build pnpm build
|
||||
run_job frontend-coverage pnpm test:coverage --silent
|
||||
|
||||
if [[ "$rust_changed" == "true" && "$rust_phase" == "early" ]]; then
|
||||
run_job rust bash .chunk/run-rust-gate.sh
|
||||
elif [[ "$rust_changed" != "true" ]]; then
|
||||
log_gate 'rust skipped because RUST_CHANGED=false'
|
||||
fi
|
||||
|
||||
if [[ "$playwright_phase" == "early" ]]; then
|
||||
run_job playwright-smoke bash .chunk/run-playwright-shards.sh "$playwright_shards"
|
||||
fi
|
||||
|
||||
if ! wait_for_jobs; then
|
||||
if [[ "$playwright_phase" == "early" ]]; then
|
||||
log_gate 'one or more sidecar gates failed'
|
||||
else
|
||||
log_gate 'stopping before Playwright because a prerequisite gate failed'
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$playwright_phase" != "early" || ( "$rust_changed" == "true" && "$rust_phase" != "early" ) ]]; then
|
||||
: > "$jobs_file"
|
||||
if [[ "$rust_changed" == "true" && "$rust_phase" != "early" ]]; then
|
||||
run_job rust bash .chunk/run-rust-gate.sh
|
||||
fi
|
||||
if [[ "$playwright_phase" != "early" ]]; then
|
||||
run_job playwright-smoke bash .chunk/run-playwright-shards.sh "$playwright_shards"
|
||||
fi
|
||||
|
||||
if ! wait_for_jobs; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
log_gate "completed in $(elapsed_seconds)s"
|
||||
|
||||
exit 0
|
||||
Loading…
Reference in a new issue