Skip to content

Commit a54e7be

Browse files
committed
Use echo instead of heredoc
1 parent f9030c5 commit a54e7be

File tree

2 files changed

+112
-106
lines changed

2 files changed

+112
-106
lines changed

.github/workflows/codedeploy_production.yml

Lines changed: 56 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -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

.github/workflows/codedeploy_staging.yml

Lines changed: 56 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -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.STAGING_DATABASE_URL }}
168+
GEE_SERVICE_ACCOUNT_JSON: ${{ secrets.GEE_SERVICE_ACCOUNT_JSON }}
169+
ROLLBAR_SCRIPT_TOKEN: ${{ secrets.ROLLBAR_SCRIPT_TOKEN }}
170+
API_URL: ${{ secrets.STAGING_API_URL }}
171+
S3_BUCKET_NAME: ${{ secrets.STAGING_S3_BUCKET_NAME }}
172+
SPARKPOST_API_KEY: ${{ secrets.SPARKPOST_API_KEY }}
165173
run: |
166174
# Generate staging.env with secrets from GitHub
167175
# This file is included in the deployment package and copied to the server
168-
# Uses staging.env to match docker-compose.staging.yml env_file reference
169-
cat > staging.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" >> staging.env
177-
echo "API_IMAGE=$API_IMAGE" >> staging.env
178-
cat >> staging.env << 'ENVEOF'
179-
180-
# Environment
181-
ENVIRONMENT=staging
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.STAGING_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=staging
205-
206-
# API URLs
207-
API_URL=${{ secrets.STAGING_API_URL }}
208-
209-
# S3 Configuration (uses EC2 instance role for credentials)
210-
S3_BUCKET_NAME=${{ secrets.STAGING_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=staging
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=staging"
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=staging"
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=staging"
223+
} > staging.env
221224
echo "✅ Created staging.env with $(wc -l < staging.env) lines"
222225
223226
- name: Update appspec.yml for staging

0 commit comments

Comments
 (0)