Skip to content

branch update : deploy -> deployment #1

branch update : deploy -> deployment

branch update : deploy -> deployment #1

Workflow file for this run

name: Deploy to AWS
on:
push:
branches: [ "deployment" ] # deploy 브랜치에 푸시될 때만 작동합니다!
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Django
uses: docker/build-push-action@v4
with:
context: .
push: true
# 시현님의 도커 허브 아이디로 이미지를 만듭니다.
tags: ${{ secrets.DOCKER_USERNAME }}/custom-economy:latest
- name: Deploy to EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }}
script: |
# 서버(AWS)에 접속해서 실행할 명령어들입니다.
cd /home/ubuntu/CustomEconomy
echo "GEMINI_API_KEY=${{ secrets.GEMINI_API_KEY }}" > .env
echo "KAKAO_CLIENT_ID=${{ secrets.KAKAO_CLIENT_ID }}" >> .env
echo "GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID }}" >> .env
echo "GOOGLE_SECRET=${{ secrets.GOOGLE_SECRET }}" >> .env
echo "NAVER_CLIENT_ID=${{ secrets.NAVER_CLIENT_ID }}" >> .env
echo "NAVER_SECRET=${{ secrets.NAVER_SECRET }}" >> .env
echo "BOK_API_KEY=${{ secrets.BOK_API_KEY }}" >> .env
echo "AIRFLOW_SECRET_KEY=${{ secrets.AIRFLOW_SECRET_KEY }}" >> .env
echo "DB_HOST=postgres" >> .env
echo "DB_NAME=myproject_db" >> .env
echo "DB_USER=${{ secrets.DB_USER }}" >> .env
echo "DB_PASSWORD=${{ secrets.DB_PASSWORD }}" >> .env
git pull origin deploy
# 1. 최신 이미지 가져오기
sudo ~/.docker/cli-plugins/docker-compose pull
# 2. 컨테이너 띄우기 (이미 켜져있으면 업데이트된 이미지만 반영해서 재시작됨)
sudo ~/.docker/cli-plugins/docker-compose up -d
# 3. DB 마이그레이션 실행 (exec 명령어 사용)
sudo ~/.docker/cli-plugins/docker-compose exec -T django-app python manage.py migrate