Skip to content
This repository was archived by the owner on Sep 19, 2025. It is now read-only.

CD - Deploy to Server via SSH #44

CD - Deploy to Server via SSH

CD - Deploy to Server via SSH #44

Workflow file for this run

name: CD - Deploy to Server via SSH
on:
workflow_dispatch: # ✅ 수동 실행 지원
workflow_run:
workflows: ["CI - Upload Compose & Traefik Files"] # CI 워크플로우 이름
types:
- completed
jobs:
deploy:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
environment: production
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Connect & Deploy via SSH
uses: appleboy/[email protected]
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SERVER_PEM_KEY }}
script: |
export SECRET_KEY="${{ secrets.SECRET_KEY }}"
export DJANGO_SETTINGS_MODULE="${{ secrets.DJANGO_SETTINGS_MODULE }}"
export MYSQL_USER="${{ secrets.MYSQL_USER }}"
export MYSQL_PASSWORD="${{ secrets.MYSQL_PASSWORD }}"
export MYSQL_DATABASE="${{ secrets.MYSQL_DATABASE }}"
export MYSQL_ROOT_PASSWORD="${{ secrets.MYSQL_ROOT_PASSWORD }}"
export AWS_ACCESS_KEY="${{ secrets.AWS_ACCESS_KEY }}"
export AWS_SECRET_KEY="${{ secrets.AWS_SECRET_KEY }}"
export AWS_S3_BUCKET_NAME="${{ secrets.AWS_S3_BUCKET_NAME }}"
export AWS_S3_REGION="${{ secrets.AWS_S3_REGION }}"
export GOOGLE_APPLICATION_CREDENTIALS="${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}"
export RABBITMQ_USER="${{ secrets.RABBITMQ_USER }}"
export RABBITMQ_PASSWORD="${{ secrets.RABBITMQ_PASSWORD }}"
export DOCKER_USERNAME="${{ secrets.DOCKER_USERNAME }}"
export DOCKER_IMAGE_NAME="${{ secrets.DOCKER_IMAGE_NAME }}"
export TRAEFIK_DASHBOARD_AUTH="${{ secrets.TRAEFIK_DASHBOARD_AUTH }}"
cd /home/ubuntu/app
docker compose \
-f docker-compose.backend.yml \
-f docker-compose.portainer.yml \
-f docker-compose.traefik.yml \
pull
docker compose \
-f docker-compose.backend.yml \
-f docker-compose.portainer.yml \
-f docker-compose.traefik.yml \
down
docker image prune -f
docker volume prune -f
docker compose \
-f docker-compose.backend.yml \
-f docker-compose.portainer.yml \
-f docker-compose.traefik.yml \
up -d --build