Skip to content

Merge pull request #29 from PU-Track/main #9

Merge pull request #29 from PU-Track/main

Merge pull request #29 from PU-Track/main #9

Workflow file for this run

name: Build and Deploy Backend Server
on:
push:
branches:
- deploy
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Log in to DockerHub
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
- name: Build Docker image
run: docker build -t 13155a1/putrack-server:latest .
- name: Push Docker image to DockerHub
run: docker push 13155a1/putrack-server:latest
- name: Set up SSH access to EC2
uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.EC2_PRIVATE_KEY }}
- name: Decode and copy Firebase credentials to EC2
run: |
echo "${{ secrets.FIREBASE_CREDENTIALS_BASE64 }}" | base64 -d > firebase-key.json
ssh -o StrictHostKeyChecking=no ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} "mkdir -p /home/ubuntu/secrets"
scp -o StrictHostKeyChecking=no firebase-key.json ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:/home/ubuntu/secrets/firebase-key.json
- name: Connect to EC2 and run new image
run: |
ssh -o StrictHostKeyChecking=no ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} << EOF
echo "🛑 Stopping existing container..."
sudo docker stop putrack-container || true
sudo docker rm putrack-container || true
echo "🐳 Pulling latest image..."
sudo docker pull 13155a1/putrack-server:latest
echo "🚀 Running new container..."
sudo docker run -d \
--name putrack-container \
-p 8080:8080 \
-e FIREBASE_CREDENTIALS_PATH=/app/credentials/firebase-key.json \
-e FIREBASE_DB_URL=${{ secrets.FIREBASE_DB_URL }} \
-e RDS_ENDPOINT=${{ secrets.RDS_ENDPOINT }} \
-e RDS_DB_NAME=${{ secrets.RDS_DB_NAME }} \
-e RDS_USERNAME=${{ secrets.RDS_USERNAME }} \
-e RDS_PASSWORD=${{ secrets.RDS_PASSWORD }} \
-v /home/ubuntu/secrets/firebase-key.json:/app/credentials/firebase-key.json \
13155a1/putrack-server:latest
echo "✅ Deployment completed!"
EOF