From ea548581653affa0d57eeed486f101ec2377a45d Mon Sep 17 00:00:00 2001 From: Gabriel Sancho Date: Sat, 28 Mar 2026 15:01:07 -0300 Subject: [PATCH] feat: add required environment variable checks for stack deployment --- .gitea/workflows/deploy.yml | 21 +++++++++++++++++++++ docker-compose.prod.yml | 1 + 2 files changed, 22 insertions(+) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 23653fd..1e937e0 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -77,6 +77,27 @@ jobs: echo "Loaded $(printf '%s' "${ENV_JSON}" | jq 'length') env entries from ENV_VARS" echo "ENV names preview:" printf '%s' "${ENV_JSON}" | jq -r '.[0:10][]?.name' || true + + REQUIRED_ENV_KEYS=( + APP_PASSWORD + JWT_SECRET + SPRING_DATASOURCE_USERNAME + SPRING_DATASOURCE_PASSWORD + APP_RECIPIENTS + ) + + MISSING_KEYS=() + for REQUIRED_KEY in "${REQUIRED_ENV_KEYS[@]}"; do + if ! printf '%s' "${ENV_JSON}" | jq -e --arg required_key "${REQUIRED_KEY}" 'map(.name) | index($required_key) != null' >/dev/null; then + MISSING_KEYS+=("${REQUIRED_KEY}") + fi + done + + if [ "${#MISSING_KEYS[@]}" -gt 0 ]; then + echo "ENV_VARS is missing required keys: ${MISSING_KEYS[*]}" + exit 1 + fi + echo "Portainer base URL: ${PORTAINER_BASE_URL}" echo "Target stack: ${STACK_NAME}" echo "Endpoint id set: $([ -n "${PORTAINER_ENDPOINT_ID}" ] && echo yes || echo no)" diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 13a04a6..12bba3c 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -34,6 +34,7 @@ services: SPRING_DATASOURCE_URL: jdbc:postgresql://condado-newsletter-postgres:5432/${APP_DB_NAME:-condado} SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME:-condado} SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD:-condado} + APP_PASSWORD: ${APP_PASSWORD} JWT_SECRET: ${JWT_SECRET} JWT_EXPIRATION_MS: ${JWT_EXPIRATION_MS:-86400000} MAIL_HOST: ${MAIL_HOST}