feat: add ops center and node onboarding flow
This commit is contained in:
55
prepare_final_release.sh
Executable file
55
prepare_final_release.sh
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
RELEASE_ROOT="${DOMAINCHECK_RELEASE_ROOT:-${ROOT_DIR}/release}"
|
||||
REPORT_PATH="${RELEASE_ROOT}/final_release_report.json"
|
||||
|
||||
mkdir -p "${RELEASE_ROOT}"
|
||||
|
||||
bash "${ROOT_DIR}/package_domain_release.sh"
|
||||
|
||||
LATEST_JSON_PATH="${RELEASE_ROOT}/latest_release.json"
|
||||
if [[ ! -f "${LATEST_JSON_PATH}" ]]; then
|
||||
echo "latest_release.json not found" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
VERIFY_OUTPUT="$(bash "${ROOT_DIR}/verify_domain_release.sh")"
|
||||
|
||||
python3 - "${LATEST_JSON_PATH}" "${REPORT_PATH}" "${VERIFY_OUTPUT}" <<'PY'
|
||||
import json
|
||||
import sys
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
latest_json_path = Path(sys.argv[1])
|
||||
report_path = Path(sys.argv[2])
|
||||
verify_payload = json.loads(sys.argv[3])
|
||||
latest_payload = json.loads(latest_json_path.read_text(encoding="utf-8"))
|
||||
verify_ok = bool(verify_payload.get("ok", False))
|
||||
smoke_ok = bool(latest_payload.get("smoke_test_ok", False))
|
||||
blocked_reasons = []
|
||||
if not verify_ok:
|
||||
blocked_reasons.append("verify_failed")
|
||||
if not smoke_ok:
|
||||
blocked_reasons.append("smoke_test_failed_or_skipped")
|
||||
|
||||
report = {
|
||||
"generated_at": datetime.now().isoformat(timespec="seconds"),
|
||||
"ok": verify_ok and smoke_ok,
|
||||
"latest_release": latest_payload,
|
||||
"verify": verify_payload,
|
||||
"release_gate": {
|
||||
"verify_ok": verify_ok,
|
||||
"smoke_test_ok": smoke_ok,
|
||||
"blocked_reasons": blocked_reasons,
|
||||
"decision": "ready" if not blocked_reasons else "blocked",
|
||||
},
|
||||
}
|
||||
report_path.write_text(json.dumps(report, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
print(json.dumps({"report": str(report_path), "ok": report["ok"]}, ensure_ascii=False, indent=2))
|
||||
PY
|
||||
|
||||
printf 'final release prepared\n'
|
||||
printf 'report: %s\n' "${REPORT_PATH}"
|
||||
Reference in New Issue
Block a user