# R14: Config and validation in pipeline. Run when config/ or scripts/validation/ or scripts/verify/ change. name: Validate Config on: pull_request: paths: - 'config/**' - 'scripts/validation/**' - 'scripts/jvmtm/**' - 'scripts/omnl/build-omnl-e2e-settlement-audit-archive.sh' - 'scripts/verify/sync-blockscout-address-labels-from-registry.sh' - 'explorer-monorepo/scripts/generate-topology-graph.sh' - 'explorer-monorepo/frontend/public/config/topology-graph.json' - 'scripts/verify/run-all-validation.sh' - 'scripts/verify/verify-end-to-end-routing.sh' - 'scripts/run-completable-tasks-from-anywhere.sh' - 'scripts/run-operator-tasks-from-lan.sh' - 'scripts/run-all-operator-tasks-from-lan.sh' - 'scripts/run-full-operator-completion-from-lan.sh' - 'scripts/verify/check-info-defi-oracle-public.sh' - 'scripts/verify/check-completion-status.sh' - 'scripts/verify/check-chain138-rpc-health.sh' - 'scripts/verify/check-chain138-rpc-nonce-gas-parity.sh' - 'scripts/verify/self-test-chain138-rpc-verify.sh' - 'scripts/lib/chain138-lan-rpc-inventory.sh' - 'scripts/monitoring/monitor-blockchain-health.sh' - 'scripts/clear-all-transaction-pools.sh' - '.github/workflows/validate-config.yml' - '.github/workflows/verify-info-defi-oracle-public.yml' - 'token-lists/**' - 'explorer-monorepo/backend/api/rest/config/metamask/**' - 'docs/03-deployment/OMNL_DBIS_CORE_CHAIN138_SMART_VAULT_RTGS_RUNBOOK.md' - 'docs/03-deployment/OJK_BI_AUDIT_JVMTM_REMEDIATION_AND_UETR_POLICY.md' - 'config/jvmtm-regulatory-closure/INAAUDJVMTM_2025_AUDIT_CLOSURE_MATRIX.md' - 'docs/04-configuration/SMART_CONTRACTS_ISO20022_FIN_METHODOLOGY.md' - 'docs/dbis-rail/ISO_GATEWAY_AND_RELAYER_SPEC.md' - 'scripts/deployment/pmm-soak*.sh' - 'scripts/deployment/chain138-pmm*.sh' - 'scripts/lib/pmm-soak*.sh' - 'scripts/deployment/pmm-soak-export-wallet-grid.py' - '.github/workflows/pmm-soak-grid-smoke.yml' - 'docs/11-references/CHAIN138_GRID_6534_WALLET_FUNDING_PLAN.md' - 'docs/04-configuration/GRU_REFERENCE_PRIMACY_AND_MESH_EXECUTION_MODEL.md' - 'docs/04-configuration/GRU_C_STAR_V2_STANDARDS_MATRIX_AND_IMPLEMENTATION_PLAN.md' - 'scripts/verify/check-gru-reference-primacy-integration.sh' - 'cross-chain-pmm-lps/config/peg-bands.json' - 'cross-chain-pmm-lps/docs/04-bot-policy.md' - 'cross-chain-pmm-lps/docs/05-oracles.md' - 'docs/00-meta/SUBMODULE_HYGIENE.md' - 'docs/00-meta/NEXT_STEPS_LIST.md' - 'docs/00-meta/OPERATOR_READY_CHECKLIST.md' - 'docs/11-references/GRU_V2_PUBLIC_PROTOCOL_DEPLOYMENT_STATUS.md' - '.cursor/rules/chain138-tokens-and-pmm.mdc' - 'scripts/run-completable-tasks-from-anywhere.sh' push: branches: [master, main] paths: - 'config/**' - 'scripts/validation/**' - 'scripts/jvmtm/**' - 'scripts/omnl/build-omnl-e2e-settlement-audit-archive.sh' - 'scripts/verify/sync-blockscout-address-labels-from-registry.sh' - 'explorer-monorepo/scripts/generate-topology-graph.sh' - 'explorer-monorepo/frontend/public/config/topology-graph.json' - 'scripts/verify/run-all-validation.sh' - 'scripts/verify/verify-end-to-end-routing.sh' - 'scripts/run-completable-tasks-from-anywhere.sh' - 'scripts/run-operator-tasks-from-lan.sh' - 'scripts/run-all-operator-tasks-from-lan.sh' - 'scripts/run-full-operator-completion-from-lan.sh' - 'scripts/verify/check-info-defi-oracle-public.sh' - 'scripts/verify/check-completion-status.sh' - 'scripts/verify/check-chain138-rpc-health.sh' - 'scripts/verify/check-chain138-rpc-nonce-gas-parity.sh' - 'scripts/verify/self-test-chain138-rpc-verify.sh' - 'scripts/lib/chain138-lan-rpc-inventory.sh' - 'scripts/monitoring/monitor-blockchain-health.sh' - 'scripts/clear-all-transaction-pools.sh' - '.github/workflows/validate-config.yml' - '.github/workflows/verify-info-defi-oracle-public.yml' - 'token-lists/**' - 'explorer-monorepo/backend/api/rest/config/metamask/**' - 'docs/03-deployment/OMNL_DBIS_CORE_CHAIN138_SMART_VAULT_RTGS_RUNBOOK.md' - 'docs/03-deployment/OJK_BI_AUDIT_JVMTM_REMEDIATION_AND_UETR_POLICY.md' - 'config/jvmtm-regulatory-closure/INAAUDJVMTM_2025_AUDIT_CLOSURE_MATRIX.md' - 'docs/04-configuration/SMART_CONTRACTS_ISO20022_FIN_METHODOLOGY.md' - 'docs/dbis-rail/ISO_GATEWAY_AND_RELAYER_SPEC.md' - 'scripts/deployment/pmm-soak*.sh' - 'scripts/deployment/chain138-pmm*.sh' - 'scripts/lib/pmm-soak*.sh' - 'scripts/deployment/pmm-soak-export-wallet-grid.py' - '.github/workflows/pmm-soak-grid-smoke.yml' - 'docs/11-references/CHAIN138_GRID_6534_WALLET_FUNDING_PLAN.md' - 'docs/04-configuration/GRU_REFERENCE_PRIMACY_AND_MESH_EXECUTION_MODEL.md' - 'docs/04-configuration/GRU_C_STAR_V2_STANDARDS_MATRIX_AND_IMPLEMENTATION_PLAN.md' - 'scripts/verify/check-gru-reference-primacy-integration.sh' - 'cross-chain-pmm-lps/config/peg-bands.json' - 'cross-chain-pmm-lps/docs/04-bot-policy.md' - 'cross-chain-pmm-lps/docs/05-oracles.md' - 'docs/00-meta/SUBMODULE_HYGIENE.md' - 'docs/00-meta/NEXT_STEPS_LIST.md' - 'docs/00-meta/OPERATOR_READY_CHECKLIST.md' - 'docs/11-references/GRU_V2_PUBLIC_PROTOCOL_DEPLOYMENT_STATUS.md' - '.cursor/rules/chain138-tokens-and-pmm.mdc' - 'scripts/run-completable-tasks-from-anywhere.sh' jobs: validate: name: Config & validation runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: 9 - uses: actions/setup-node@v4 with: node-version: '20' cache: 'pnpm' - name: Install workspace dependencies run: pnpm install --frozen-lockfile - name: Config validation run: bash scripts/validation/validate-config-files.sh - name: DBIS institutional JSON Schemas run: | python3 -m pip install check-jsonschema SCHEMA_STRICT=1 bash scripts/validation/validate-dbis-institutional-schemas.sh - name: JVMTM regulatory closure JSON Schemas run: | python3 -m pip install check-jsonschema SCHEMA_STRICT=1 bash scripts/validation/validate-jvmtm-regulatory-closure-schemas.sh - name: Reserve provenance package (3FR attestation JSON) run: | python3 -m pip install check-jsonschema SCHEMA_STRICT=1 bash scripts/validation/validate-reserve-provenance-package.sh - name: Completable tasks (dry-run) run: bash scripts/run-completable-tasks-from-anywhere.sh --dry-run - name: Chain 138 RPC verify scripts (syntax + offline parity) run: bash scripts/verify/self-test-chain138-rpc-verify.sh - name: Explorer topology graph (regenerate + diff check) run: | bash explorer-monorepo/scripts/generate-topology-graph.sh git diff --exit-code explorer-monorepo/frontend/public/config/topology-graph.json - name: ShellCheck (PMM soak grid scripts) run: | sudo apt-get update -qq sudo apt-get install -y shellcheck set -euo pipefail shells=( scripts/deployment/pmm-soak-operator-fund-grid.sh scripts/deployment/pmm-soak-complete-grid-funding-operator.sh scripts/deployment/pmm-soak-operator-fund-full-grid-tranches.sh scripts/deployment/pmm-soak-mint-mirror-usdc-deployer-shortfall.sh scripts/deployment/pmm-soak-complete-operator-bootstrap.sh scripts/deployment/pmm-soak-grid-smoke-check.sh scripts/lib/pmm-soak-dotenv-override.sh scripts/lib/pmm-soak-pools.sh scripts/lib/pmm-soak-chain138-tick.sh scripts/deployment/chain138-pmm-random-soak-swaps.sh scripts/deployment/chain138-pmm-soak-grid-bot.sh scripts/verify/check-gru-reference-primacy-integration.sh ) shellcheck -x "${shells[@]}" - name: Shellcheck (optional) run: bash scripts/verify/run-shellcheck.sh --optional