fix(deploy): provision tenant API domains
Some checks failed
Architecture Governance / architecture (push) Failing after 6m16s

Reconcile TLS, exact CORS, and backend proxying before release activation so every storefront uses its derived API host.
This commit is contained in:
2026-08-20 15:04:03 +04:00
parent 66a0ccfdb8
commit e5949c3967
8 changed files with 315 additions and 6 deletions

View File

@@ -82,6 +82,36 @@ jobs:
printf '%s\n' "$DEPLOY_KNOWN_HOSTS" > ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
- name: Reconcile tenant API domains
env:
HOST: ${{ secrets.DEPLOY_HOST }}
USER: ${{ secrets.DEPLOY_USER }}
STOREFRONT_DOMAINS: ${{ secrets.STOREFRONT_DOMAINS }}
CERTBOT_EMAIL: ${{ secrets.CERTBOT_EMAIL }}
BACKEND_UPSTREAM: ${{ secrets.BACKEND_UPSTREAM }}
run: |
set -euo pipefail
test -n "$HOST" || { echo "secret DEPLOY_HOST is empty" >&2; exit 1; }
test -n "$USER" || { echo "secret DEPLOY_USER is empty" >&2; exit 1; }
test -n "$STOREFRONT_DOMAINS" || { echo "secret STOREFRONT_DOMAINS is empty" >&2; exit 1; }
test -n "$CERTBOT_EMAIL" || { echo "secret CERTBOT_EMAIL is empty" >&2; exit 1; }
BACKEND_UPSTREAM="${BACKEND_UPSTREAM:-https://127.0.0.1:445}"
[[ "$CERTBOT_EMAIL" =~ ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$ ]] || {
echo "CERTBOT_EMAIL is invalid" >&2; exit 1;
}
[[ "$BACKEND_UPSTREAM" =~ ^https?://[A-Za-z0-9.:-]+$ ]] || {
echo "BACKEND_UPSTREAM is invalid" >&2; exit 1;
}
SSH="ssh -i ~/.ssh/deploy_key -o BatchMode=yes"
for domain in $STOREFRONT_DOMAINS; do
[[ "$domain" =~ ^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$ ]] || {
echo "invalid storefront domain: $domain" >&2; exit 1;
}
$SSH "$USER@$HOST" sudo /usr/local/sbin/marketplaces-configure-api-domain \
--domain "$domain" --email "$CERTBOT_EMAIL" --upstream "$BACKEND_UPSTREAM"
done
- name: Upload release
env:
HOST: ${{ secrets.DEPLOY_HOST }}