Files
homelab/tests/e2e/run-and-upload.sh
T

27 lines
1.2 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# Run the WebKit smoke suite, upload artifacts (video/trace/screenshots/report)
# to MinIO, then exit with the suite's real result so a CD gate can act on it.
set -uo pipefail
STAMP="${RUN_ID:-$(date +%Y%m%d-%H%M%S)}"
DEST="e2e/${STAMP}"
echo "▶ Playwright WebKit smoke — BASE_DOMAIN=${BASE_DOMAIN:-riotpiao.com}"
npm test
RESULT=$?
echo "▶ suite exit=${RESULT}"
# Upload artifacts even on failure — a failed deploy is exactly when you want the video.
if [[ -n "${MINIO_ENDPOINT:-}" && -n "${MINIO_ACCESS_KEY:-}" ]]; then
echo "▶ uploading artifacts → ${MINIO_ENDPOINT}/${MINIO_BUCKET:-e2e-artifacts}/${DEST}"
mc alias set store "${MINIO_ENDPOINT}" "${MINIO_ACCESS_KEY}" "${MINIO_SECRET_KEY}" >/dev/null 2>&1
mc mb --ignore-existing "store/${MINIO_BUCKET:-e2e-artifacts}" >/dev/null 2>&1
mc cp --recursive test-results/ "store/${MINIO_BUCKET:-e2e-artifacts}/${DEST}/test-results/" >/dev/null 2>&1 || true
mc cp --recursive playwright-report/ "store/${MINIO_BUCKET:-e2e-artifacts}/${DEST}/playwright-report/" >/dev/null 2>&1 || true
echo "▶ artifacts uploaded under ${DEST}/"
else
echo "▶ MINIO_ENDPOINT unset — skipping upload (artifacts in ./test-results)"
fi
exit ${RESULT}