Files
proxmox/scripts/deployment/run-before-deploy-checks.sh

86 lines
3.3 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
# Run all checkable "before deploy" items from RECOMMENDATIONS_AND_FIXES_BEFORE_DEPLOY.md.
# Usage: ./scripts/deployment/run-before-deploy-checks.sh [--cost] [--alltra] [--on-chain] [--skip-build]
# --cost Run preflight with --cost (gas estimate).
# --alltra Include alltra-lifi-settlement in contract tests (slower).
# --on-chain Run check-contracts-on-chain-138.sh (requires RPC).
# --skip-build Skip forge build; use existing artifacts (step 3 and test script both skip build).
#
# Requires: run from repo root; forge in PATH.
# See: docs/03-deployment/RECOMMENDATIONS_AND_FIXES_BEFORE_DEPLOY.md
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
RUN_COST=""
RUN_ALLTRA=""
RUN_ONCHAIN=""
SKIP_BUILD=""
FAILED=0
for a in "$@"; do
case "$a" in
--cost) RUN_COST=1 ;;
--alltra) RUN_ALLTRA=1 ;;
--on-chain) RUN_ONCHAIN=1 ;;
--skip-build) SKIP_BUILD=1 ;;
esac
done
echo "=== Before-deploy checks (recommendations and fixes) ==="
echo ""
# 1) Preflight
echo "--- 1. Preflight (RPC, dotenv, nonce) ---"
if [[ -n "$RUN_COST" ]]; then
if "$SCRIPT_DIR/preflight-chain138-deploy.sh" --cost; then echo " PASS"; else echo " FAIL"; FAILED=$((FAILED+1)); fi
else
if "$SCRIPT_DIR/preflight-chain138-deploy.sh"; then echo " PASS"; else echo " FAIL"; FAILED=$((FAILED+1)); fi
fi
echo ""
# 2) Env check (smom-dbis-138)
echo "--- 2. Env check (smom-dbis-138) ---"
if (cd "$PROJECT_ROOT/smom-dbis-138" && ./scripts/deployment/check-env-required.sh) >/dev/null 2>&1; then echo " PASS"; else echo " FAIL"; FAILED=$((FAILED+1)); fi
echo ""
# 3) Forge build (skip if --skip-build)
echo "--- 3. Forge build (smom-dbis-138) ---"
if [[ -n "$SKIP_BUILD" ]]; then
echo " SKIP (--skip-build)"
else
if (cd "$PROJECT_ROOT/smom-dbis-138" && forge build) >/dev/null 2>&1; then echo " PASS"; else echo " FAIL"; FAILED=$((FAILED+1)); fi
fi
echo ""
# 4) Contract tests (skip build here; use step 3 build or existing artifacts)
echo "--- 4. Contract tests (unit; use --alltra for e2e) ---"
if [[ -n "$RUN_ALLTRA" ]]; then
if "$SCRIPT_DIR/test-all-contracts-before-deploy.sh" --alltra --skip-build 2>/dev/null; then echo " PASS"; else echo " FAIL"; FAILED=$((FAILED+1)); fi
else
if "$SCRIPT_DIR/test-all-contracts-before-deploy.sh" --no-match "Fork|Mainnet|Integration|e2e" --skip-build 2>/dev/null; then echo " PASS"; else echo " FAIL"; FAILED=$((FAILED+1)); fi
fi
echo ""
# 5) Config validation
echo "--- 5. Config validation ---"
if (cd "$PROJECT_ROOT" && bash scripts/validation/validate-config-files.sh) >/dev/null 2>&1; then echo " PASS"; else echo " FAIL"; FAILED=$((FAILED+1)); fi
echo ""
# 6) On-chain verification (optional)
if [[ -n "$RUN_ONCHAIN" ]]; then
echo "--- 6. On-chain verification (Chain 138) ---"
if (cd "$PROJECT_ROOT" && ./scripts/verify/check-contracts-on-chain-138.sh) >/dev/null 2>&1; then echo " PASS"; else echo " FAIL"; FAILED=$((FAILED+1)); fi
echo ""
fi
echo "=== Summary ==="
if [[ $FAILED -eq 0 ]]; then
echo "All checkable items passed. Complete remaining operator items (gas, POOL_MANAGER_ROLE, RPC writable if needed) per RECOMMENDATIONS_AND_FIXES_BEFORE_DEPLOY.md."
exit 0
else
echo "$FAILED check(s) failed. Fix and re-run."
exit 1
fi