From cca9dcef7c3b8ae49492884c310bca032b6849fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=88=98=ED=99=98?= <101265039+genius00hwan@users.noreply.github.com> Date: Wed, 27 Nov 2024 18:43:03 +0900 Subject: [PATCH] Update icurri_deploy.yml --- .github/workflows/icurri_deploy.yml | 52 ++++++++++++++++++----------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/.github/workflows/icurri_deploy.yml b/.github/workflows/icurri_deploy.yml index ba9ffa8..73a3797 100644 --- a/.github/workflows/icurri_deploy.yml +++ b/.github/workflows/icurri_deploy.yml @@ -2,7 +2,7 @@ name: ICURRI_DEPLOY on: push: - branches: [ "release" ] + branches: [ "main", "release" ] jobs: ci: @@ -19,7 +19,7 @@ jobs: steps: #체크아웃 - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 # JDK 설치 - name: Set up JDK 17 @@ -69,7 +69,8 @@ jobs: ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} if: github.ref == 'refs/heads/main' run: | - docker build --build-arg SPRING_PROFILE=dev -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG . + docker build --build-arg SPRING_PROFILE=prod -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG . + - name: AWS ECR Push env: ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} @@ -90,28 +91,41 @@ jobs: - name: Deploy to EC2 (Release Branch) if: github.ref == 'refs/heads/release' uses: appleboy/ssh-action@master + env: + ENV_FILE: "/home/ubuntu/.env" + COMPOSE: "/home/ubuntu/docker-compose.yml" with: host: ${{ secrets.RELEASE_EC2_HOST }} username: ubuntu key: ${{ secrets.RELEASE_SSH_KEY }} script: | - # Stop and remove all containers except MongoDB + echo "ECR_URI=${{ secrets.ECR_URI }}" > /home/ubuntu/.env + echo "GITHUB_SHA=${{ github.sha }}" >> /home/ubuntu/.env + echo "SPRING_PROFILES=dev" >> /home/ubuntu/.env + + sudo docker stop $(sudo docker ps -a -q) || true + sudo docker rm $(sudo docker ps -a -q) || true + sudo docker images -q | xargs -r docker rmi || true + sudo docker system prune -af + aws ecr get-login-password --region ap-northeast-2 | sudo docker login --username AWS --password-stdin ${{ secrets.ECR_URI }} && sudo docker pull ${{ secrets.ECR_URI }}:${{ github.sha }} + sudo -E docker-compose up -d + + # Deploy to EC2 (Main Branch) + - name: Deploy to EC2 (Main Branch) + if: github.ref == 'refs/heads/main' + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.MAIN_EC2_HOST }} + username: ubuntu + key: ${{ secrets.MAIN_SSH_KEY }} + script: | + echo "ECR_URI=${{ secrets.ECR_URI }}" > /home/ubuntu/.env + echo "GITHUB_SHA=${{ github.sha }}" >> /home/ubuntu/.env + echo "SPRING_PROFILES=prod" >> /home/ubuntu/.env + sudo docker stop $(sudo docker ps -a -q) | true sudo docker rm $(sudo docker ps -a -q) | true sudo docker images -q | xargs -r docker rmi sudo docker system prune -af - - # Docker login and pull new image from ECR - aws ecr get-login-password --region ap-northeast-2 | sudo docker login --username AWS --password-stdin ${{ secrets.ECR_URI }} - sudo docker pull ${{ secrets.ECR_URI }}:${{ github.sha }} - - # Run the new container - sudo docker run --name dotflow-dev-repo -d \ - -e SPRING_PROFILE=dev \ - -e TZ=Asia/Seoul \ - -e SERVER=true \ - -p 8080:8080 \ - -p 6379:6379 \ - -p 3306:3306 \ # MySQL 포트 매핑 - -p 27017:27017 \ # MongoDB 포트 매핑 - ${{ secrets.ECR_URI }}:${{ github.sha }} + aws ecr get-login-password --region ap-northeast-2 | sudo docker login --username AWS --password-stdin ${{ secrets.ECR_URI }} && sudo docker pull ${{ secrets.ECR_URI }}:${{ github.sha }} + sudo -E docker-compose up -d