64 lines
2.5 KiB
Bash
Executable File
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
|