86 lines
3.3 KiB
Bash
86 lines
3.3 KiB
Bash
|
|
#!/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
|