fix: 补齐候选诊断环境与证据保护(09-06-release-gate-integrity)

这个提交包含在:
2026-09-08 07:21:19 +08:00
父节点 66f25b1fa8
当前提交 99167127b5
共修改 33 个文件,包含 2915 行新增和 67 行删除
+5 -44
查看文件
@@ -3,61 +3,22 @@ set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
CLIENT_DIR="$ROOT_DIR/client"
TEMP_ROOT="$(mktemp -d "${TMPDIR:-/tmp}/hyb-pwa-cross-version.XXXXXX")"
BUILD_A_DIR="$TEMP_ROOT/build-a"
BUILD_B_DIR="$TEMP_ROOT/build-b"
BUILD_A_LOG="$TEMP_ROOT/build-a.log"
BUILD_B_LOG="$TEMP_ROOT/build-b.log"
BUILD_A_SHA="111111111111"
BUILD_B_SHA="222222222222"
source "$ROOT_DIR/scripts/qa/pwa-cross-version-fixture.sh"
REPORT_DIR="${PWA_REPORT_DIR:-$ROOT_DIR/artifacts/qa-flow/pwa-cross-version/$(date +%Y%m%d%H%M%S)_$$_$RANDOM}"
cleanup() {
local original_status="$?"
trap - EXIT
if [[ -d "$TEMP_ROOT" ]]; then
find "$TEMP_ROOT" -depth -delete
fi
pwa_cleanup_fixture || { [[ "$original_status" -ne 0 ]] || original_status=1; }
exit "$original_status"
}
trap cleanup EXIT
build_candidate() {
local label="$1"
local build_sha="$2"
local output_dir="$3"
local log_file="$4"
local build_status=0
(
cd "$CLIENT_DIR"
VITE_BUILD_SHA="$build_sha" npx vite build --outDir "$output_dir" --emptyOutDir
) >"$log_file" 2>&1 || build_status="$?"
if [[ "$build_status" -ne 0 ]]; then
local log_lines=0
log_lines="$(wc -l <"$log_file" | tr -d ' ')"
echo "[pwa-cross-version][ERROR] build=${label} exit=${build_status} log_lines=${log_lines}" >&2
exit "$build_status"
fi
if [[ ! -f "$output_dir/index.html" || ! -f "$output_dir/sw.js" ]]; then
echo "[pwa-cross-version][ERROR] build=${label} required_artifact_missing" >&2
exit 1
fi
echo "[pwa-cross-version] build=${label} status=PASS"
}
build_candidate "A" "$BUILD_A_SHA" "$BUILD_A_DIR" "$BUILD_A_LOG"
build_candidate "B" "$BUILD_B_SHA" "$BUILD_B_DIR" "$BUILD_B_LOG"
pwa_prepare_fixture "$CLIENT_DIR" "$REPORT_DIR"
(
cd "$CLIENT_DIR"
PWA_BUILD_A_DIR="$BUILD_A_DIR" \
PWA_BUILD_B_DIR="$BUILD_B_DIR" \
PWA_BUILD_A_SHA="$BUILD_A_SHA" \
PWA_BUILD_B_SHA="$BUILD_B_SHA" \
npx playwright test tests/e2e/pwa-cross-version-upgrade.spec.ts \
pwa_with_fixture npx playwright test tests/e2e/pwa-cross-version-upgrade.spec.ts \
--workers=1 \
--retries=0 \
--reporter=list