Skip to content

Commit 4986451

Browse files
committed
Fix GitHub workflow to use vars instead of env for GitHub Variables
- Fixed deploy.yml to properly reference GitHub Variables - Updated README.md to clarify distinction between GitHub Variables and Secrets - This fixes deployment issues where AWS_REGION and other config values were not being read
1 parent 04694b8 commit 4986451

File tree

2 files changed

+33
-23
lines changed

2 files changed

+33
-23
lines changed

.github/workflows/deploy.yml

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -73,42 +73,42 @@ jobs:
7373
with:
7474
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
7575
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
76-
aws-region: ${{ env.AWS_REGION }}
76+
aws-region: ${{ vars.AWS_REGION }}
7777

7878
- name: Set up environment
7979
run: |
8080
# App Runner deployment will be handled in separate step
8181
8282
# Create config file for App Runner deployment script
83-
echo "AWS_ACCOUNT_ID=${{ env.AWS_ACCOUNT_ID }}" > .github/config.env
84-
echo "AWS_REGION=${{ env.AWS_REGION }}" >> .github/config.env
85-
echo "SERVICE_NAME=${{ env.APP_RUNNER_SERVICE }}" >> .github/config.env
86-
echo "ECR_REPOSITORY=${{ env.ECR_REPOSITORY }}" >> .github/config.env
83+
echo "AWS_ACCOUNT_ID=${{ vars.AWS_ACCOUNT_ID }}" > .github/config.env
84+
echo "AWS_REGION=${{ vars.AWS_REGION }}" >> .github/config.env
85+
echo "SERVICE_NAME=${{ vars.APP_RUNNER_SERVICE }}" >> .github/config.env
86+
echo "ECR_REPOSITORY=${{ vars.ECR_REPOSITORY }}" >> .github/config.env
8787
8888

8989
- name: Build and push Docker image
9090
run: |
9191
# Login to ECR
92-
aws ecr get-login-password --region ${{ env.AWS_REGION }} | \
93-
docker login --username AWS --password-stdin ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com
92+
aws ecr get-login-password --region ${{ vars.AWS_REGION }} | \
93+
docker login --username AWS --password-stdin ${{ vars.AWS_ACCOUNT_ID }}.dkr.ecr.${{ vars.AWS_REGION }}.amazonaws.com
9494
9595
# Create ECR repository if it doesn't exist
96-
aws ecr describe-repositories --repository-names ${{ env.ECR_REPOSITORY }} --region ${{ env.AWS_REGION }} || \
97-
aws ecr create-repository --repository-name ${{ env.ECR_REPOSITORY }} --region ${{ env.AWS_REGION }} --image-scanning-configuration scanOnPush=true
96+
aws ecr describe-repositories --repository-names ${{ vars.ECR_REPOSITORY }} --region ${{ vars.AWS_REGION }} || \
97+
aws ecr create-repository --repository-name ${{ vars.ECR_REPOSITORY }} --region ${{ vars.AWS_REGION }} --image-scanning-configuration scanOnPush=true
9898
9999
# Build from project root with deployment/Dockerfile and data credentials
100100
docker build -f deployment/Dockerfile \
101101
--build-arg MXCP_DATA_ACCESS_KEY_ID=${{ secrets.MXCP_DATA_ACCESS_KEY_ID }} \
102102
--build-arg MXCP_DATA_SECRET_ACCESS_KEY=${{ secrets.MXCP_DATA_SECRET_ACCESS_KEY }} \
103-
-t ${{ env.ECR_REPOSITORY }}:${{ github.sha }} .
103+
-t ${{ vars.ECR_REPOSITORY }}:${{ github.sha }} .
104104
105105
# Tag for ECR
106-
docker tag ${{ env.ECR_REPOSITORY }}:${{ github.sha }} ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/${{ env.ECR_REPOSITORY }}:${{ github.sha }}
107-
docker tag ${{ env.ECR_REPOSITORY }}:${{ github.sha }} ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/${{ env.ECR_REPOSITORY }}:latest
106+
docker tag ${{ vars.ECR_REPOSITORY }}:${{ github.sha }} ${{ vars.AWS_ACCOUNT_ID }}.dkr.ecr.${{ vars.AWS_REGION }}.amazonaws.com/${{ vars.ECR_REPOSITORY }}:${{ github.sha }}
107+
docker tag ${{ vars.ECR_REPOSITORY }}:${{ github.sha }} ${{ vars.AWS_ACCOUNT_ID }}.dkr.ecr.${{ vars.AWS_REGION }}.amazonaws.com/${{ vars.ECR_REPOSITORY }}:latest
108108
109109
# Push to ECR
110-
docker push ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/${{ env.ECR_REPOSITORY }}:${{ github.sha }}
111-
docker push ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/${{ env.ECR_REPOSITORY }}:latest
110+
docker push ${{ vars.AWS_ACCOUNT_ID }}.dkr.ecr.${{ vars.AWS_REGION }}.amazonaws.com/${{ vars.ECR_REPOSITORY }}:${{ github.sha }}
111+
docker push ${{ vars.AWS_ACCOUNT_ID }}.dkr.ecr.${{ vars.AWS_REGION }}.amazonaws.com/${{ vars.ECR_REPOSITORY }}:latest
112112
113113
- name: Deploy to AWS App Runner
114114
run: |
@@ -120,9 +120,9 @@ jobs:
120120
echo "📊 Monitoring App Runner service creation/update..."
121121
122122
# Discover service ARN dynamically by name (ARN changes when service is recreated)
123-
echo "🔍 Finding service ARN for: ${{ env.APP_RUNNER_SERVICE }}"
124-
SERVICE_ARN=$(aws apprunner list-services --region ${{ env.AWS_REGION }} \
125-
--query "ServiceSummaryList[?ServiceName=='${{ env.APP_RUNNER_SERVICE }}'].ServiceArn | [0]" \
123+
echo "🔍 Finding service ARN for: ${{ vars.APP_RUNNER_SERVICE }}"
124+
SERVICE_ARN=$(aws apprunner list-services --region ${{ vars.AWS_REGION }} \
125+
--query "ServiceSummaryList[?ServiceName=='${{ vars.APP_RUNNER_SERVICE }}'].ServiceArn | [0]" \
126126
--output text)
127127
128128
if [ "$SERVICE_ARN" == "None" ] || [ -z "$SERVICE_ARN" ]; then
@@ -176,7 +176,7 @@ jobs:
176176
177177
# Get service URL
178178
SERVICE_URL=$(aws apprunner describe-service \
179-
--service-arn "arn:aws:apprunner:${{ env.AWS_REGION }}:${{ env.AWS_ACCOUNT_ID }}:service/${{ env.APP_RUNNER_SERVICE }}" \
179+
--service-arn "arn:aws:apprunner:${{ vars.AWS_REGION }}:${{ vars.AWS_ACCOUNT_ID }}:service/${{ vars.APP_RUNNER_SERVICE }}" \
180180
--query 'Service.ServiceUrl' --output text)
181181
182182
echo "🌐 Service URL: https://$SERVICE_URL"
@@ -216,15 +216,15 @@ jobs:
216216
- name: Deployment summary
217217
if: always()
218218
run: |
219-
# Configuration is now in workflow env vars
219+
# Configuration from GitHub variables
220220
221221
echo "## 🚀 Deployment Summary" >> $GITHUB_STEP_SUMMARY
222-
echo "- **Service**: $SERVICE_NAME" >> $GITHUB_STEP_SUMMARY
223-
echo "- **Region**: $AWS_REGION" >> $GITHUB_STEP_SUMMARY
222+
echo "- **Service**: ${{ vars.APP_RUNNER_SERVICE }}" >> $GITHUB_STEP_SUMMARY
223+
echo "- **Region**: ${{ vars.AWS_REGION }}" >> $GITHUB_STEP_SUMMARY
224224
echo "- **Environment**: ${{ github.event.inputs.environment || 'production' }}" >> $GITHUB_STEP_SUMMARY
225225
226226
# Get service URL if deployment succeeded
227-
if SERVICE_URL=$(aws apprunner describe-service --service-arn "arn:aws:apprunner:${AWS_REGION}:${AWS_ACCOUNT_ID}:service/${SERVICE_NAME}" --query 'Service.ServiceUrl' --output text 2>/dev/null); then
227+
if SERVICE_URL=$(aws apprunner describe-service --service-arn "arn:aws:apprunner:${{ vars.AWS_REGION }}:${{ vars.AWS_ACCOUNT_ID }}:service/${{ vars.APP_RUNNER_SERVICE }}" --query 'Service.ServiceUrl' --output text 2>/dev/null); then
228228
echo "- **Service URL**: https://$SERVICE_URL" >> $GITHUB_STEP_SUMMARY
229229
echo "- **MCP Endpoint**: https://$SERVICE_URL/mcp" >> $GITHUB_STEP_SUMMARY
230230
fi

README.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,18 @@ mxcp-project-deployment-template/
217217
| **GitHub Account** | CI/CD and version control | [GitHub Signup](https://github.com/join) |
218218
| **IAM Role** | `AppRunnerECRAccessRole` | See ENVIRONMENT.md |
219219

220-
### 🔑 GitHub Secrets Required
220+
### 🔑 GitHub Configuration Required
221221

222+
**GitHub Variables** (Settings → Secrets and variables → Actions → Variables):
223+
```bash
224+
# AWS deployment configuration
225+
gh variable set AWS_ACCOUNT_ID --body "684130658470" # Your AWS account ID
226+
gh variable set AWS_REGION --body "eu-west-1" # Your AWS region
227+
gh variable set ECR_REPOSITORY --body "your-project-mxcp-server"
228+
gh variable set APP_RUNNER_SERVICE --body "your-project-mxcp-server"
229+
```
230+
231+
**GitHub Secrets** (Settings → Secrets and variables → Actions → Secrets):
222232
```bash
223233
# Deployment credentials
224234
gh secret set AWS_ACCESS_KEY_ID

0 commit comments

Comments
 (0)