The validate job in deploy-to-phoenix.yml (and validate-on-pr.yml) relies on cross-chain-pmm-lps/config/*.json for the cW* mesh matrix and deployment rules checks, but actions/checkout@v4 does not initialize submodules. .gitmodules mixes Gitea HTTPS and git@github.com: SSH URLs, so blanket 'submodules: recursive' isn't safe on the runner either. - Add a pre-step to each validate job that shallow-clones https://gitea.d-bis.org/d-bis/cross-chain-pmm-lps.git into ./cross-chain-pmm-lps/ when deployment-status.json isn't present. Idempotent: no-op on hosts that already have the submodule. - Harden run-all-validation.sh step 3/3b to degrade gracefully with a clear skip message when deployment-status.json is absent, so local runs without the submodule don't false-fail. Fixes the pre-existing validation failure (runs 132-137) that was blocking the new deploy-atomic-swap-dapp job from triggering.
82 lines
3.1 KiB
Bash
82 lines
3.1 KiB
Bash
#!/usr/bin/env bash
|
|
# Run all validation checks that do not require LAN/SSH/credentials.
|
|
# Use for CI or pre-deploy: dependencies, config files, optional genesis.
|
|
# Usage: bash scripts/verify/run-all-validation.sh [--skip-genesis]
|
|
# --skip-genesis: do not run validate-genesis.sh (default: run if smom-dbis-138 present).
|
|
# Steps: dependencies, config files, cW* mesh matrix (if pair-discovery JSON exists), genesis.
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
cd "$PROJECT_ROOT"
|
|
|
|
SKIP_GENESIS=false
|
|
[[ "${1:-}" == "--skip-genesis" ]] && SKIP_GENESIS=true
|
|
|
|
log_ok() { echo -e "\033[0;32m[✓]\033[0m $1"; }
|
|
log_err() { echo -e "\033[0;31m[✗]\033[0m $1"; exit 1; }
|
|
|
|
echo "=== Run all validation (no LAN/SSH) ==="
|
|
echo ""
|
|
|
|
echo "1. Dependencies..."
|
|
bash "$SCRIPT_DIR/check-dependencies.sh" || log_err "check-dependencies failed"
|
|
log_ok "Dependencies OK"
|
|
echo ""
|
|
|
|
echo "1b. pnpm workspace vs lockfile..."
|
|
if [[ -f "$PROJECT_ROOT/pnpm-workspace.yaml" ]]; then
|
|
bash "$SCRIPT_DIR/check-pnpm-workspace-lockfile.sh" || log_err "pnpm lockfile / workspace drift"
|
|
log_ok "pnpm lockfile aligned with workspace"
|
|
else
|
|
echo " (no pnpm-workspace.yaml at root — skip)"
|
|
fi
|
|
echo ""
|
|
|
|
echo "2. Config files..."
|
|
bash "$SCRIPT_DIR/../validation/validate-config-files.sh" || log_err "validate-config-files failed"
|
|
log_ok "Config validation OK"
|
|
echo ""
|
|
|
|
echo "3. cW* mesh matrix (deployment-status + Uni V2 pair-discovery)..."
|
|
DISCOVERY_JSON="$PROJECT_ROOT/reports/extraction/promod-uniswap-v2-live-pair-discovery-latest.json"
|
|
PMM_STATUS="$PROJECT_ROOT/cross-chain-pmm-lps/config/deployment-status.json"
|
|
if [[ -f "$DISCOVERY_JSON" && -f "$PMM_STATUS" ]]; then
|
|
MATRIX_JSON="$PROJECT_ROOT/reports/status/cw-mesh-deployment-matrix-latest.json"
|
|
bash "$SCRIPT_DIR/build-cw-mesh-deployment-matrix.sh" --no-markdown --json-out "$MATRIX_JSON" || log_err "cw mesh matrix merge failed"
|
|
log_ok "cW mesh matrix OK (also wrote $MATRIX_JSON)"
|
|
elif [[ ! -f "$DISCOVERY_JSON" ]]; then
|
|
echo " ($DISCOVERY_JSON missing — run: bash scripts/verify/build-promod-uniswap-v2-live-pair-discovery.sh)"
|
|
else
|
|
echo " ($PMM_STATUS missing — cross-chain-pmm-lps submodule not initialized; skip)"
|
|
fi
|
|
echo ""
|
|
|
|
echo "3b. deployment-status graph (cross-chain-pmm-lps)..."
|
|
PMM_VALIDATE="$PROJECT_ROOT/cross-chain-pmm-lps/scripts/validate-deployment-status.cjs"
|
|
if [[ -f "$PMM_VALIDATE" && -f "$PMM_STATUS" ]] && command -v node &>/dev/null; then
|
|
node "$PMM_VALIDATE" || log_err "validate-deployment-status.cjs failed"
|
|
log_ok "deployment-status.json rules OK"
|
|
else
|
|
echo " (skip: node, $PMM_VALIDATE, or $PMM_STATUS missing)"
|
|
fi
|
|
echo ""
|
|
|
|
if [[ "$SKIP_GENESIS" == true ]]; then
|
|
echo "4. Genesis — skipped (--skip-genesis)"
|
|
else
|
|
echo "4. Genesis (smom-dbis-138)..."
|
|
GENESIS_SCRIPT="$PROJECT_ROOT/smom-dbis-138/scripts/validation/validate-genesis.sh"
|
|
if [[ -x "$GENESIS_SCRIPT" ]]; then
|
|
bash "$GENESIS_SCRIPT" || log_err "validate-genesis failed"
|
|
log_ok "Genesis OK"
|
|
else
|
|
echo " (smom-dbis-138/scripts/validation/validate-genesis.sh not found, skipping)"
|
|
fi
|
|
fi
|
|
echo ""
|
|
|
|
log_ok "All validation passed."
|
|
exit 0
|