Files
sendico/ci/scripts/check-config-coherence.sh
2026-03-17 15:30:21 +01:00

89 lines
2.7 KiB
Bash
Executable File

#!/bin/sh
set -eu
REPO_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
cd "${REPO_ROOT}"
fail() {
echo "[config-coherence] $*" >&2
exit 1
}
check_absent() {
pattern="$1"
shift
if rg -n "${pattern}" "$@" >/tmp/sendico-config-check.out 2>/dev/null; then
cat /tmp/sendico-config-check.out >&2
fail "unexpected match for pattern: ${pattern}"
fi
}
check_present() {
pattern="$1"
file="$2"
if ! rg -n "${pattern}" "${file}" >/tmp/sendico-config-check.out 2>/dev/null; then
fail "missing required pattern '${pattern}' in ${file}"
fi
}
check_absent 'config\.dev\.yml:/app/config\.yml' docker-compose.dev.yml
check_absent 'advertise_host: "dev-|address: dev-[^"]*:[0-9]+' api/**/config.dev.yml
check_absent 'advertise_host: "sendico_|address: sendico_[^"]*:[0-9]+' api/**/config.local.yml
while IFS= read -r script; do
[ -n "${script}" ] || continue
check_present 'resolve_app_config_path' "${script}"
sh -n "${script}"
done <<'EOF'
ci/scripts/aurora/build-image.sh
ci/scripts/bff/build-image.sh
ci/scripts/billing_documents/build-image.sh
ci/scripts/billing_fees/build-image.sh
ci/scripts/callbacks/build-image.sh
ci/scripts/chain_gateway/build-image.sh
ci/scripts/chsettle/build-image.sh
ci/scripts/discovery/build-image.sh
ci/scripts/fx/build-image.sh
ci/scripts/ledger/build-image.sh
ci/scripts/mntx/build-image.sh
ci/scripts/notification/build-image.sh
ci/scripts/payments_methods/build-image.sh
ci/scripts/payments_orchestrator/build-image.sh
ci/scripts/payments_quotation/build-image.sh
ci/scripts/tgsettle/build-image.sh
ci/scripts/tron_gateway/build-image.sh
EOF
sh -n ci/scripts/common/runtime_env.sh
while IFS= read -r dockerfile; do
[ -n "${dockerfile}" ] || continue
check_present 'ARG APP_CONFIG_PATH=' "${dockerfile}"
check_present 'COPY \$\{APP_CONFIG_PATH\} /app/config.yml' "${dockerfile}"
done <<'EOF'
ci/prod/compose/aurora_gateway.dockerfile
ci/prod/compose/bff.dockerfile
ci/prod/compose/billing_documents.dockerfile
ci/prod/compose/billing_fees.dockerfile
ci/prod/compose/callbacks.dockerfile
ci/prod/compose/chain_gateway.dockerfile
ci/prod/compose/chsettle_gateway.dockerfile
ci/prod/compose/discovery.dockerfile
ci/prod/compose/fx_ingestor.dockerfile
ci/prod/compose/fx_oracle.dockerfile
ci/prod/compose/ledger.dockerfile
ci/prod/compose/mntx_gateway.dockerfile
ci/prod/compose/notification.dockerfile
ci/prod/compose/payments_methods.dockerfile
ci/prod/compose/payments_orchestrator.dockerfile
ci/prod/compose/payments_quotation.dockerfile
ci/prod/compose/tgsettle_gateway.dockerfile
ci/prod/compose/tron_gateway.dockerfile
EOF
if command -v docker >/dev/null 2>&1 && [ -f .env.dev ]; then
docker compose -f docker-compose.dev.yml --env-file .env.dev config >/tmp/sendico-config-check-compose.out
fi
echo "[config-coherence] OK"