mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-01-07 18:03:49 -05:00
fix(GHA): update environment validation (#60011)
This commit is contained in:
committed by
GitHub
parent
3e9c13bb43
commit
e5051d472e
56
.github/workflows/deploy.yml
vendored
56
.github/workflows/deploy.yml
vendored
@@ -91,7 +91,7 @@ jobs:
|
||||
env:
|
||||
AGE_ENCRYPTED_ASC_SECRETS: ${{ secrets.AGE_ENCRYPTED_ASC_SECRETS }}
|
||||
AGE_SECRET_KEY: ${{ secrets.AGE_SECRET_KEY }}
|
||||
# These are set in the "Environment" specifc secrets
|
||||
# Variable set from GitHub "Environment" secrets (AGE encrypted)
|
||||
# DOCKER_REGISTRY
|
||||
# MONGOHQ_URL
|
||||
# SENTRY_DSN
|
||||
@@ -109,11 +109,13 @@ jobs:
|
||||
# HOME_LOCATION
|
||||
# API_LOCATION
|
||||
# STRIPE_SECRET_KEY
|
||||
# These are set in the static job above
|
||||
STACK_NAME: ${{ needs.setup-jobs.outputs.tgt_env_short }}-api
|
||||
# LOKI_URL
|
||||
# Variables set from SetupJob
|
||||
DEPLOYMENT_VERSION: ${{ needs.build.outputs.tagname }}
|
||||
DEPLOYMENT_ENV: ${{ needs.setup-jobs.outputs.site_tld }}
|
||||
FCC_API_LOG_LEVEL: ${{ needs.setup-jobs.outputs.api_log_lvl }}
|
||||
# Stack name
|
||||
STACK_NAME: ${{ needs.setup-jobs.outputs.tgt_env_short }}-api
|
||||
run: |
|
||||
REMOTE_SCRIPT="
|
||||
set -e
|
||||
@@ -151,29 +153,65 @@ jobs:
|
||||
} >> .env
|
||||
|
||||
echo -e '\nLOG:Sourcing environment...'
|
||||
REQUIRED_VARS=(
|
||||
\"DOCKER_REGISTRY\"
|
||||
\"MONGOHQ_URL\"
|
||||
\"SENTRY_DSN\"
|
||||
\"SENTRY_ENVIRONMENT\"
|
||||
\"AUTH0_CLIENT_ID\"
|
||||
\"AUTH0_CLIENT_SECRET\"
|
||||
\"AUTH0_DOMAIN\"
|
||||
\"JWT_SECRET\"
|
||||
\"COOKIE_SECRET\"
|
||||
\"COOKIE_DOMAIN\"
|
||||
\"SES_ID\"
|
||||
\"SES_SECRET\"
|
||||
\"GROWTHBOOK_FASTIFY_API_HOST\"
|
||||
\"GROWTHBOOK_FASTIFY_CLIENT_KEY\"
|
||||
\"HOME_LOCATION\"
|
||||
\"API_LOCATION\"
|
||||
\"STRIPE_SECRET_KEY\"
|
||||
\"LOKI_URL\"
|
||||
\"DEPLOYMENT_VERSION\"
|
||||
\"DEPLOYMENT_ENV\"
|
||||
\"FCC_API_LOG_LEVEL\"
|
||||
)
|
||||
|
||||
while IFS='=' read -r key value; do
|
||||
if [[ -n \"\$key\" && ! \"\$key\" =~ ^# ]]; then
|
||||
export \"\${key}=\${value}\"
|
||||
fi
|
||||
done < .env
|
||||
rm -rf .env
|
||||
|
||||
echo -e '\nLOG:Validating environment...'
|
||||
if [[ -z \"\$DOCKER_REGISTRY\" || -z \"\$DEPLOYMENT_ENV\" || -z \"\$DEPLOYMENT_VERSION\" || -z \"\$MONGOHQ_URL\" || -z \"\$FCC_API_LOG_LEVEL\" ]]; then
|
||||
echo \"Error: Missing required environment variables\"
|
||||
MISSING_VARS=()
|
||||
for var in \"\${REQUIRED_VARS[@]}\"; do
|
||||
if [[ -z \"\${!var}\" ]]; then
|
||||
MISSING_VARS+=(\"\$var\")
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ \${#MISSING_VARS[@]} -gt 0 ]]; then
|
||||
echo \"ERROR: The following required environment variables are missing or empty:\"
|
||||
for var in \"\${MISSING_VARS[@]}\"; do
|
||||
echo \" - \$var\"
|
||||
done
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -rf .env
|
||||
|
||||
echo -e '\nLOG:Validating deployment version...'
|
||||
if [[ \"\$DEPLOYMENT_VERSION\" != \"$DEPLOYMENT_VERSION\" ]]; then
|
||||
echo \"Error: Version mismatch. Expected: $DEPLOYMENT_VERSION, Got: \$DEPLOYMENT_VERSION\"
|
||||
exit 1
|
||||
fi
|
||||
env | grep -E 'DOMAIN|DEPLOYMENT'
|
||||
env | grep -E 'DEPLOYMENT_VERSION'
|
||||
|
||||
echo -e '\nLOG:Checking stack configuration...'
|
||||
CONFIG_OUTPUT=\"/dev/null\"
|
||||
if [[ \"\$FCC_API_LOG_LEVEL\" == \"debug\" ]]; then
|
||||
CONFIG_FILENAME=\"debug-docker-stack-config-\${DEPLOYMENT_VERSION}.yml\"
|
||||
echo -e '\nLOG:Saving stack configuration to \$CONFIG_FILENAME for debugging...'
|
||||
echo -e '\nLOG:Saving stack configuration for debugging...'
|
||||
CONFIG_OUTPUT=\"\$CONFIG_FILENAME\"
|
||||
fi
|
||||
docker stack config -c stack-api.yml > \$CONFIG_OUTPUT
|
||||
|
||||
Reference in New Issue
Block a user