41 lines
1.1 KiB
Bash
Executable File
41 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
|
|
cd "$ROOT"
|
|
mkdir -p docs/generated
|
|
mapfile -t COMPOSE_FILES < <(scripts/docs/list-compose-files.sh)
|
|
if [ "${#COMPOSE_FILES[@]}" -eq 0 ]; then
|
|
echo "No compose files found" >&2
|
|
exit 1
|
|
fi
|
|
printf '%s\n' "${COMPOSE_FILES[@]}" > docs/generated/compose-files.txt
|
|
ARGS=()
|
|
for file in "${COMPOSE_FILES[@]}"; do ARGS+=("-f" "$file"); done
|
|
ENV_FILE=""
|
|
if [ -f default-environment.env ]; then
|
|
ENV_FILE="default-environment.env"
|
|
else
|
|
ENV_FILE="scripts/docs/ci-default.env"
|
|
fi
|
|
if [ ! -f "$ENV_FILE" ]; then
|
|
echo "Environment file not found: $ENV_FILE" >&2
|
|
exit 1
|
|
fi
|
|
|
|
docker compose -p core --env-file "$ENV_FILE" --profile all "${ARGS[@]}" config > docs/generated/docker-compose.resolved.yml
|
|
|
|
service_count="$(
|
|
python3 - <<'PY'
|
|
import yaml
|
|
from pathlib import Path
|
|
|
|
data = yaml.safe_load(Path("docs/generated/docker-compose.resolved.yml").read_text()) or {}
|
|
print(len(data.get("services") or {}))
|
|
PY
|
|
)"
|
|
|
|
if [ "$service_count" -eq 0 ]; then
|
|
echo "ERROR: rendered compose config contains zero services; check --profile all / COMPOSE_PROFILES." >&2
|
|
exit 1
|
|
fi
|