From 556b98f9658a334d833d743a1b055a5d2549de43 Mon Sep 17 00:00:00 2001 From: sm4640 Date: Sat, 12 Apr 2025 14:43:22 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20Settings:=20[#24]=20CI=20/=20CD?= =?UTF-8?q?=20=EA=B5=AC=EC=B6=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/workflow.yml | 52 ++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 .github/workflows/workflow.yml diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml new file mode 100644 index 0000000..a2ef272 --- /dev/null +++ b/.github/workflows/workflow.yml @@ -0,0 +1,52 @@ +name: CI/CD Pipeline + +on: + push: + branches: + - dev + +jobs: + build: + runs-on: ubuntu-latest + + steps: + # 코드 체크아웃 + - name: Checkout code + uses: actions/checkout@v2 + + # 더 나은 도커 빌드 환경 세팅 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + # DockerHub 로그인 + - 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 + uses: docker/build-push-action@v2 + with: + context: . + file: Dockerfile + push: true + tags: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ secrets.DOCKER_HUB_REPO }}:latest + + deploy: + runs-on: ubuntu-latest + needs: build + + steps: + # AWS 배포 + - name: SSH to EC2 and deploy + uses: appleboy/ssh-action@v0.1.3 + with: + host: ${{ secrets.EC2_HOST }} + username: ${{ secrets.EC2_USER }} + key: ${{ secrets.EC2_SSH_KEY }} + script: | + docker compose stop ${{ secrets.DOCKER_HUB_REPO }} + docker compose rm ${{ secrets.DOCKER_HUB_REPO }} + docker rmi ${{ secrets.DOCKER_HUB_USERNAME }}/${{ secrets.DOCKER_HUB_REPO }}:latest + docker compose up -d