50 lines
2.5 KiB
Bash
Executable File
50 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
SCRIPT="$ROOT_DIR/scripts/release-preflight.sh"
|
|
DEV_SETUP="$ROOT_DIR/docs/DEV_SETUP.md"
|
|
|
|
bash -n "$SCRIPT"
|
|
|
|
backend_without_url="$(
|
|
RELEASE_VERIFY_REMOTE_BACKEND=true bash "$SCRIPT" 2>&1 || true
|
|
)"
|
|
grep -Fq 'remote verification flags require RELEASE_REMOTE_URL' <<<"$backend_without_url"
|
|
|
|
schema_without_url="$(
|
|
RELEASE_VERIFY_REMOTE_SCHEMA=true bash "$SCRIPT" 2>&1 || true
|
|
)"
|
|
grep -Fq 'remote verification flags require RELEASE_REMOTE_URL' <<<"$schema_without_url"
|
|
|
|
aug1_readiness_without_url="$(
|
|
RELEASE_VERIFY_AUG1_READINESS=true bash "$SCRIPT" 2>&1 || true
|
|
)"
|
|
grep -Fq 'remote verification flags require RELEASE_REMOTE_URL' <<<"$aug1_readiness_without_url"
|
|
|
|
if grep -Fq 'RELEASE_VERIFY_REMOTE_BACKEND=true requires RELEASE_VERIFY_REMOTE_MATCH=true' "$SCRIPT"; then
|
|
echo 'FAIL: backend-only verification is still coupled to static resource matching' >&2
|
|
exit 1
|
|
fi
|
|
if grep -Fq 'RELEASE_VERIFY_REMOTE_SCHEMA=true requires RELEASE_VERIFY_REMOTE_MATCH=true' "$SCRIPT"; then
|
|
echo 'FAIL: schema-only verification is still coupled to static resource matching' >&2
|
|
exit 1
|
|
fi
|
|
|
|
backend_call_line="$(grep -n '^[[:space:]]*require_remote_backend_match$' "$SCRIPT" | cut -d: -f1)"
|
|
static_scope_line="$(grep -n '^[[:space:]]*if \[\[ "\$verify_remote_match" == "true" \]\]; then$' "$SCRIPT" | cut -d: -f1)"
|
|
[[ -n "$backend_call_line" && -n "$static_scope_line" && "$backend_call_line" -lt "$static_scope_line" ]]
|
|
|
|
grep -Fq 'require_static_artifacts="$verify_remote_match"' "$SCRIPT"
|
|
grep -Fq 'require_backend_artifact="$verify_remote_backend"' "$SCRIPT"
|
|
grep -Fq 'verify_aug1_readiness="${RELEASE_VERIFY_AUG1_READINESS:-false}"' "$SCRIPT"
|
|
grep -Fq 'verify-aug1-release-readiness.sh" --execute' "$SCRIPT"
|
|
grep -Fq 'backend_jar="${RELEASE_LOCAL_BACKEND_PATH:-backend/ruoyi-admin/target/ruoyi-admin.jar}"' "$SCRIPT"
|
|
grep -Fq 'artifact_commit="${RELEASE_ARTIFACT_COMMIT:-HEAD}"' "$SCRIPT"
|
|
grep -Fq 'git merge-base --is-ancestor "$artifact_commit_sha" HEAD' "$SCRIPT"
|
|
grep -Fq 'RELEASE_VERIFY_REMOTE_BACKEND=true RELEASE_VERIFY_REMOTE_SCHEMA=true ./scripts/release-preflight.sh' "$DEV_SETUP"
|
|
grep -Fq 'RELEASE_VERIFY_AUG1_READINESS=true ./scripts/release-preflight.sh' "$DEV_SETUP"
|
|
grep -Fq 'RELEASE_VERIFY_REMOTE_MATCH=true RELEASE_VERIFY_REMOTE_BACKEND=true RELEASE_VERIFY_REMOTE_SCHEMA=true RELEASE_VERIFY_AUG1_READINESS=true ./scripts/release-preflight.sh' "$DEV_SETUP"
|
|
|
|
echo 'PASS: release preflight supports scoped artifact checks and a strict August 1 business-readiness mode'
|