Files
proxmox/scripts/verify/ura-ops-readiness.sh

64 lines
2.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# URA — repo-level readiness: manifest, profiles, mapping schema, merge, non-strict closure, optional forge test.
# Does not substitute staging/prod E2E or live Fineract/sidecar (see URA_OPERATIONAL_READINESS_CHECKLIST.md).
#
# Usage (repo root):
# bash scripts/verify/ura-ops-readiness.sh
# URA_READINESS_MAP=config/universal-resource-activation/integration/omnl-ledger-mapping.v1.json \
# bash scripts/verify/ura-ops-readiness.sh
# URA_READINESS_FORGE=1 bash scripts/verify/ura-ops-readiness.sh # also runs PolicyProfileRegistry unit test in smom-dbis-138
# URA_READINESS_CONFIG=1 bash scripts/verify/ura-ops-readiness.sh # also runs validate-config-files.sh
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$ROOT"
log() { echo "[ura-ops-readiness] $*"; }
log_err() { echo "[ura-ops-readiness] ERROR: $*" >&2; }
if ! command -v pnpm &>/dev/null; then
log_err "pnpm not found"
exit 1
fi
log "1/7 pnpm ura:validate"
pnpm ura:validate
log "2/7 pnpm ura:validate-profiles"
pnpm ura:validate-profiles
MAP_FILE="${URA_READINESS_MAP:-$ROOT/config/universal-resource-activation/integration/omnl-ledger-mapping.v1.example.json}"
if [[ -f "$MAP_FILE" ]]; then
log "3/7 validate-omnl-ledger-mapping.mjs $MAP_FILE"
node "$ROOT/scripts/validate/validate-omnl-ledger-mapping.mjs" "$MAP_FILE"
else
log "3/7 skip (mapping file not found: $MAP_FILE)"
fi
log "4/7 pnpm ura:validate-closure (warn mode)"
pnpm ura:validate-closure || true
log "5/7 pnpm ura:merge-manifest"
pnpm ura:merge-manifest
if [[ "${URA_READINESS_FORGE:-}" == "1" ]]; then
if [[ -d "$ROOT/smom-dbis-138" && -f "$ROOT/smom-dbis-138/scripts/forge/scope.sh" ]]; then
log "6/7 FORGE_SCOPE=universal-resource forge test (PolicyProfileRegistry)"
(cd "$ROOT/smom-dbis-138" && FORGE_SCOPE=universal-resource bash scripts/forge/scope.sh test --match-contract PolicyProfileRegistryTest) || {
log_err "Forge test failed"
exit 1
}
else
log "6/7 skip (smom-dbis-138 or scope.sh not present)"
fi
else
log "6/7 skip forge (set URA_READINESS_FORGE=1 to run PolicyProfileRegistryTest)"
fi
if [[ "${URA_READINESS_CONFIG:-}" == "1" ]]; then
log "7/7 validate-config-files.sh"
bash "$ROOT/scripts/validation/validate-config-files.sh"
else
log "7/7 skip validate-config-files (set URA_READINESS_CONFIG=1 for full project config gate)"
fi
log "OK: repo URA gates passed (see docs/.../URA_OPERATIONAL_READINESS_CHECKLIST.md for runtime steps)."
exit 0