forked from baron/baron-sso
76 lines
3.1 KiB
Bash
76 lines
3.1 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
|
|
fail() {
|
|
echo "ERROR: $*" >&2
|
|
exit 1
|
|
}
|
|
|
|
assert_contains() {
|
|
local file="$1"
|
|
local pattern="$2"
|
|
grep -Fq -- "$pattern" "$file" || fail "$file must contain: $pattern"
|
|
}
|
|
|
|
assert_not_contains() {
|
|
local file="$1"
|
|
local pattern="$2"
|
|
if grep -Fq -- "$pattern" "$file"; then
|
|
fail "$file must not contain stale devfront port pattern: $pattern"
|
|
fi
|
|
}
|
|
|
|
assert_root_service_contains() {
|
|
local service="$1"
|
|
local pattern="$2"
|
|
awk -v service=" $service:" '
|
|
$0 == service { in_service = 1; next }
|
|
in_service && /^ [[:alnum:]_-]+:/ { in_service = 0 }
|
|
in_service { print }
|
|
' "$ROOT_DIR/docker-compose.yaml" | grep -Fq -- "$pattern" || fail "docker-compose.yaml $service service must contain: $pattern"
|
|
}
|
|
|
|
DEVFRONT_DOCKERFILE="$ROOT_DIR/devfront/Dockerfile"
|
|
DEVFRONT_VITE_CONFIG="$ROOT_DIR/devfront/vite.config.ts"
|
|
DEVFRONT_RUNTIME="$ROOT_DIR/devfront/scripts/runtime-mode.sh"
|
|
DEVFRONT_DEPLOY_VITE_CONFIG="$ROOT_DIR/deploy/templates/devfront/vite.config.ts"
|
|
|
|
assert_contains "$DEVFRONT_DOCKERFILE" "EXPOSE 5174"
|
|
assert_contains "$DEVFRONT_DOCKERFILE" 'CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0", "--port", "5174"]'
|
|
assert_contains "$DEVFRONT_DOCKERFILE" "ENV PORT=5174"
|
|
assert_not_contains "$DEVFRONT_DOCKERFILE" "EXPOSE 5173"
|
|
assert_not_contains "$DEVFRONT_DOCKERFILE" '"--port", "5173"'
|
|
assert_not_contains "$DEVFRONT_DOCKERFILE" "ENV PORT=5173"
|
|
|
|
assert_contains "$DEVFRONT_VITE_CONFIG" "port: 5174"
|
|
assert_contains "$DEVFRONT_RUNTIME" "npm run preview -- --host 0.0.0.0 --port 5174"
|
|
assert_contains "$DEVFRONT_RUNTIME" "npm run dev -- --host 0.0.0.0 --port 5174"
|
|
assert_contains "$DEVFRONT_DEPLOY_VITE_CONFIG" "port: 5174"
|
|
|
|
assert_root_service_contains "devfront" 'command: ["npm", "run", "dev", "--", "--host", "0.0.0.0", "--port", "5174"]'
|
|
assert_root_service_contains "devfront" '- "${DEVFRONT_PORT:-5174}:5174"'
|
|
assert_root_service_contains "orgfront" '- "${ORGFRONT_PORT:-5175}:5175"'
|
|
|
|
for file in \
|
|
"$ROOT_DIR/docker/docker-compose.template.yaml" \
|
|
"$ROOT_DIR/docker/docker-compose.staging.template.yaml" \
|
|
"$ROOT_DIR/docker/staging_pull_compose.template.yaml" \
|
|
"$ROOT_DIR/deploy/templates/docker-compose.yaml"
|
|
do
|
|
assert_contains "$file" "devfront:"
|
|
assert_not_contains "$file" '${DEVFRONT_PORT:-5174}:5173'
|
|
assert_not_contains "$file" '${DEVFRONT_PORT}:5173'
|
|
done
|
|
|
|
assert_contains "$ROOT_DIR/docker/docker-compose.template.yaml" '${DEVFRONT_PORT:-5174}:5174'
|
|
assert_contains "$ROOT_DIR/docker/docker-compose.staging.template.yaml" '${DEVFRONT_PORT:-5174}:5174'
|
|
assert_contains "$ROOT_DIR/docker/staging_pull_compose.template.yaml" '${DEVFRONT_PORT:-5174}:5174'
|
|
assert_contains "$ROOT_DIR/deploy/templates/docker-compose.yaml" '${DEVFRONT_PORT}:5174'
|
|
|
|
assert_contains "$ROOT_DIR/docker/staging_pull_compose.template.yaml" "fetch('http://127.0.0.1:5174/')"
|
|
assert_contains "$ROOT_DIR/deploy/templates/docker-compose.yaml" "traefik.http.services.\${COMPOSE_PROJECT_NAME}-devfront.loadbalancer.server.port=5174"
|
|
|
|
echo "OK: DevFront Docker internal port is aligned to 5174"
|