@@ -162,62 +162,65 @@ jobs:
162162 env :
163163 ECR_REGISTRY : ${{ steps.images.outputs.ecr-registry }}
164164 API_IMAGE : ${{ steps.images.outputs.api-image }}
165+ SECRET_KEY : ${{ secrets.SECRET_KEY }}
166+ JWT_SECRET_KEY : ${{ secrets.JWT_SECRET_KEY }}
167+ DATABASE_URL : ${{ secrets.PRODUCTION_DATABASE_URL }}
168+ GEE_SERVICE_ACCOUNT_JSON : ${{ secrets.GEE_SERVICE_ACCOUNT_JSON }}
169+ ROLLBAR_SCRIPT_TOKEN : ${{ secrets.ROLLBAR_SCRIPT_TOKEN }}
170+ API_URL : ${{ secrets.PRODUCTION_API_URL }}
171+ S3_BUCKET_NAME : ${{ secrets.PRODUCTION_S3_BUCKET_NAME }}
172+ SPARKPOST_API_KEY : ${{ secrets.SPARKPOST_API_KEY }}
165173 run : |
166174 # Generate prod.env with secrets from GitHub
167175 # This file is included in the deployment package and copied to the server
168- # Uses prod.env to match docker-compose.prod.yml env_file reference
169- cat > prod.env << 'ENVEOF'
170- # Generated by GitHub Actions
171- # Commit: ${{ github.sha }}
172-
173- # ECR Images (pre-built in CI)
174- ENVEOF
175- # Add variables that need shell expansion
176- echo "ECR_REGISTRY=$ECR_REGISTRY" >> prod.env
177- echo "API_IMAGE=$API_IMAGE" >> prod.env
178- cat >> prod.env << 'ENVEOF'
179-
180- # Environment
181- ENVIRONMENT=production
182- DEBUG=False
183- TESTING=false
184-
185- # Flask/API Configuration
186- SECRET_KEY=${{ secrets.SECRET_KEY }}
187- JWT_SECRET_KEY=${{ secrets.JWT_SECRET_KEY }}
188-
189- # Database Configuration
190- DATABASE_URL=${{ secrets.PRODUCTION_DATABASE_URL }}
191-
192- # Redis Configuration (uses stack's Redis service)
193- REDIS_URL=redis://redis:6379/0
194-
195- # Rate Limiting (uses stack's Redis service on database 1)
196- RATE_LIMITING_ENABLED=true
197- RATE_LIMIT_STORAGE_URI=redis://redis:6379/1
198-
199- # Google Earth Engine
200- GEE_SERVICE_ACCOUNT_JSON=${{ secrets.GEE_SERVICE_ACCOUNT_JSON }}
201-
202- # Rollbar Error Tracking
203- ROLLBAR_SCRIPT_TOKEN=${{ secrets.ROLLBAR_SCRIPT_TOKEN }}
204- ROLLBAR_ENV=production
205-
206- # API URLs
207- API_URL=${{ secrets.PRODUCTION_API_URL }}
208-
209- # S3 Configuration (uses EC2 instance role for credentials)
210- S3_BUCKET_NAME=${{ secrets.PRODUCTION_S3_BUCKET_NAME }}
211-
212- # Email Configuration (SparkPost)
213- SPARKPOST_API_KEY=${{ secrets.SPARKPOST_API_KEY }}
214-
215- # Deployment info
216- GIT_REVISION=${{ github.sha }}
217- GIT_BRANCH=${{ github.ref_name }}
218- DEPLOYMENT_ENVIRONMENT=production
219- ENVEOF
220-
176+ {
177+ echo "# Generated by GitHub Actions"
178+ echo "# Commit: ${{ github.sha }}"
179+ echo ""
180+ echo "# ECR Images (pre-built in CI)"
181+ echo "ECR_REGISTRY=$ECR_REGISTRY"
182+ echo "API_IMAGE=$API_IMAGE"
183+ echo ""
184+ echo "# Environment"
185+ echo "ENVIRONMENT=production"
186+ echo "DEBUG=False"
187+ echo "TESTING=false"
188+ echo ""
189+ echo "# Flask/API Configuration"
190+ echo "SECRET_KEY=$SECRET_KEY"
191+ echo "JWT_SECRET_KEY=$JWT_SECRET_KEY"
192+ echo ""
193+ echo "# Database Configuration"
194+ echo "DATABASE_URL=$DATABASE_URL"
195+ echo ""
196+ echo "# Redis Configuration (uses stack Redis service)"
197+ echo "REDIS_URL=redis://redis:6379/0"
198+ echo ""
199+ echo "# Rate Limiting (uses stack Redis service on database 1)"
200+ echo "RATE_LIMITING_ENABLED=true"
201+ echo "RATE_LIMIT_STORAGE_URI=redis://redis:6379/1"
202+ echo ""
203+ echo "# Google Earth Engine"
204+ echo "GEE_SERVICE_ACCOUNT_JSON=$GEE_SERVICE_ACCOUNT_JSON"
205+ echo ""
206+ echo "# Rollbar Error Tracking"
207+ echo "ROLLBAR_SCRIPT_TOKEN=$ROLLBAR_SCRIPT_TOKEN"
208+ echo "ROLLBAR_ENV=production"
209+ echo ""
210+ echo "# API URLs"
211+ echo "API_URL=$API_URL"
212+ echo ""
213+ echo "# S3 Configuration (uses EC2 instance role for credentials)"
214+ echo "S3_BUCKET_NAME=$S3_BUCKET_NAME"
215+ echo ""
216+ echo "# Email Configuration (SparkPost)"
217+ echo "SPARKPOST_API_KEY=$SPARKPOST_API_KEY"
218+ echo ""
219+ echo "# Deployment info"
220+ echo "GIT_REVISION=${{ github.sha }}"
221+ echo "GIT_BRANCH=${{ github.ref_name }}"
222+ echo "DEPLOYMENT_ENVIRONMENT=production"
223+ } > prod.env
221224 echo "✅ Created prod.env with $(wc -l < prod.env) lines"
222225
223226 - name : Update appspec.yml for production
0 commit comments