Skip to content

Commit 77d4c7a

Browse files
committed
Added github action for CI using github secrets
1 parent f27ab5f commit 77d4c7a

File tree

1 file changed

+36
-26
lines changed

1 file changed

+36
-26
lines changed

.github/workflows/deploy.yml

Lines changed: 36 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -47,32 +47,42 @@ jobs:
4747
4848
- name: Deploy to EC2
4949
run: |
50-
ssh ec2-user@${{ secrets.EC2_HOST }} << 'EOF'
51-
# Navigate to project directory
52-
cd mosaic-project-cs4800 || cd mosaic-project-cs4800-main
53-
54-
# Pull latest changes
55-
git pull origin main || git pull origin master
56-
57-
# Make deployment script executable
58-
chmod +x deploy-ip.sh
59-
60-
# Run deployment script
61-
./deploy-ip.sh ${{ secrets.EC2_HOST }}
62-
63-
# Deploy with Docker Compose
64-
docker compose -f docker-compose.production.yml down
65-
docker compose -f docker-compose.production.yml up -d --build
66-
67-
# Wait for services to be healthy
68-
sleep 30
69-
70-
# Check if services are running
71-
docker compose -f docker-compose.production.yml ps
72-
73-
# Test backend health
74-
curl -f http://localhost:8000/api/v1/utils/health-check/ || echo "Backend health check failed"
75-
EOF
50+
ssh ec2-user@${{ secrets.EC2_HOST }} 'bash -s' << 'ENDSSH'
51+
cd mosaic-project-cs4800 || cd mosaic-project-cs4800-main
52+
git pull origin main || git pull origin master
53+
chmod +x deploy-ip.sh
54+
./deploy-ip.sh ${{ secrets.EC2_HOST }}
55+
cat > .env << 'ENVEOF'
56+
ENVIRONMENT=production
57+
DOMAIN=${{ secrets.EC2_HOST }}
58+
PROJECT_NAME=Mosaic Project
59+
STACK_NAME=mosaic-project-production
60+
BACKEND_CORS_ORIGINS=http://${{ secrets.EC2_HOST }}:5173,http://${{ secrets.EC2_HOST }}:80,http://${{ secrets.EC2_HOST }}
61+
FRONTEND_HOST=http://${{ secrets.EC2_HOST }}:5173
62+
SECRET_KEY=${{ secrets.SECRET_KEY }}
63+
FIRST_SUPERUSER=${{ secrets.FIRST_SUPERUSER }}
64+
FIRST_SUPERUSER_PASSWORD=${{ secrets.FIRST_SUPERUSER_PASSWORD }}
65+
POSTGRES_SERVER=db
66+
POSTGRES_PORT=5432
67+
POSTGRES_USER=postgres
68+
POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}
69+
POSTGRES_DB=app
70+
SMTP_HOST=
71+
SMTP_USER=
72+
SMTP_PASSWORD=
73+
EMAILS_FROM_EMAIL=
74+
DOCKER_IMAGE_BACKEND=mosaic-backend
75+
DOCKER_IMAGE_FRONTEND=mosaic-frontend
76+
TAG=latest
77+
ENVEOF
78+
export DOCKER_BUILDKIT=1
79+
export COMPOSE_DOCKER_CLI_BUILD=1
80+
docker compose -f docker-compose.production.yml down
81+
docker compose -f docker-compose.production.yml up -d --build
82+
sleep 30
83+
docker compose -f docker-compose.production.yml ps
84+
curl -f http://localhost:8000/api/v1/utils/health-check/ || echo "Backend health check failed"
85+
ENDSSH
7686
7787
- name: Verify deployment
7888
run: |

0 commit comments

Comments
 (0)