Files
apairon e76ebb32ab
deploy to production / deploy (push) Successful in 43s
fix(ci): Starter-Defaults patchen auch api/config.yml Namespace
2026-10-05 17:13:10 +00:00

76 lines
2.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# CI helper: resolve starter placeholders for staging.
# Called from .gitea/workflows/deploy.yml (before validate/build).
# Keeps placeholders in git (template), patches CI workspace only (.env + api/config.yml).
#
# Detection: PROJECT_NAME=__PROJECT_NAME__ or TIBI_NAMESPACE=__TIBI_NAMESPACE__
# Real projects: no-op (already concrete values).
# shellcheck disable=SC1091
set -o allexport
# shellcheck disable=SC1091
. ./.env 2>/dev/null || true
set +o allexport
is_starter="false"
if [ "${PROJECT_NAME:-}" = "__PROJECT_NAME__" ]; then
is_starter="true"
fi
if [ "${TIBI_NAMESPACE:-}" = "__TIBI_NAMESPACE__" ]; then
is_starter="true"
fi
if [ "${is_starter}" != "true" ]; then
echo "ci-starter-defaults: real project (PROJECT_NAME=${PROJECT_NAME:-?}), nothing to do."
exit 0
fi
echo "ci-starter-defaults: starter detected, patching CI workspace only (.env + api/config.yml)."
PROJECT_NAME="tibi-svelte-starter"
TIBI_NAMESPACE="tibi-svelte-starter"
SENTRY_PROJECT="tibi-svelte-starter"
STAGING_URL="https://dev-tibi-svelte-starter.staging.testversion.online"
CODING_URL="https://tibi-svelte-starter.code.testversion.online"
CODING_TIBIADMIN_URL="https://tibi-svelte-starter-tibiadmin.code.testversion.online"
# Build uses LIVE_URL as originURL/PREVIEW_URL base — point it at staging for the starter
LIVE_URL="${STAGING_URL}"
# Staging never runs with mock data (build-time flag __MOCK__)
MOCK="0"
patch_env() {
key="$1"
val="$2"
if grep -q "^${key}=" .env; then
sed -i 's#^'"${key}"'=.*#'"${key}"'='"${val}"'#g' .env
else
printf '%s=%s\n' "${key}" "${val}" >> .env
fi
}
patch_env "PROJECT_NAME" "${PROJECT_NAME}"
patch_env "TIBI_NAMESPACE" "${TIBI_NAMESPACE}"
patch_env "SENTRY_PROJECT" "${SENTRY_PROJECT}"
patch_env "STAGING_URL" "${STAGING_URL}"
patch_env "CODING_URL" "${CODING_URL}"
patch_env "CODING_TIBIADMIN_URL" "${CODING_TIBIADMIN_URL}"
patch_env "LIVE_URL" "${LIVE_URL}"
patch_env "MOCK" "${MOCK}"
# tibi-server reads the namespace from api/config.yml (not .env) —
# without this the staged api/ still carries __TIBI_NAMESPACE__ and staging reports "project not found".
if [ -f api/config.yml ]; then
sed -i 's#^namespace:.*#namespace: '"${TIBI_NAMESPACE}"'#g' api/config.yml
echo "______ api/config.yml (namespace) ______"
head -3 api/config.yml
fi
# Apache fallback (unused in staging docker setup, kept consistent)
if [ -f frontend/.htaccess ]; then
sed -i 's#__TIBI_NAMESPACE__#'"${TIBI_NAMESPACE}"'#g' frontend/.htaccess || true
fi
echo "______ .env (starter-resolved) ______"
cat .env