branch update : deploy -> deployment #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |