Skip to content

Deploy to Production #65

Deploy to Production

Deploy to Production #65

Workflow file for this run

name: Deploy to Production
on:
workflow_run:
workflows: ["FastAPI CI"]
types:
- completed
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }} # CI 성공 시에만 실행
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and Push Docker image
run: |
docker build -t ${{ secrets.DOCKER_HUB_USERNAME }}/asset_management:test .
docker push ${{ secrets.DOCKER_HUB_USERNAME }}/asset_management:test
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- name: SSH to EC2 and deploy
uses: appleboy/ssh-action@v1.2.3
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
script: |
cd /home/ubuntu/23-5-team6-server
git pull origin main
sudo docker-compose pull
sudo docker-compose stop
sudo docker-compose rm -f
sudo docker-compose up -d
sudo docker image prune -f