Skip to content

CD - Deploy to Production #28

CD - Deploy to Production

CD - Deploy to Production #28

Workflow file for this run

# .github/workflows/cd.yml
name: CD - Deploy to Production
on:
workflow_run:
workflows: ["CI - Build and Test"]
types:
- completed
jobs:
deploy:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
environment: production
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
context: .
push: true
no-cache: true
tags: ${{ secrets.DOCKER_USERNAME }}/modura-ai:latest
- name: Deploy to Server
uses: appleboy/ssh-action@v0.1.10
with:
host: ${{ secrets.EC2_HOST }}
username: ec2-user
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
docker stop modura-ai || true
docker rm modura-ai || true
docker pull ${{ secrets.DOCKER_USERNAME }}/modura-ai:latest
docker run -d -p 8000:8000 --name modura-ai \
-e DB_HOST=${{ secrets.DB_HOST }} \
-e DB_PORT=${{ secrets.DB_PORT }} \
-e DB_USER=${{ secrets.DB_USER }} \
-e DB_PASSWORD=${{ secrets.DB_PASSWORD }} \
-e DB_NAME=${{ secrets.DB_NAME }} \
${{ secrets.DOCKER_USERNAME }}/modura-ai:latest