From bbd4de2df750d25ea91794b60aed3f351fecf766 Mon Sep 17 00:00:00 2001 From: CHO GUNHEE Date: Fri, 30 Jan 2026 21:14:10 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20GitHub=20Actions=20CD=20=EB=B0=B0?= =?UTF-8?q?=ED=8F=AC=20=EC=9B=8C=ED=81=AC=ED=94=8C=EB=A1=9C=EC=9A=B0=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit EC2에 프론트엔드 정적 파일을 자동 배포하는 GitHub Actions 워크플로우를 추가합니다. main, dev 브랜치 push 시 pnpm 빌드 후 SCP로 EC2에 배포합니다. --- .github/workflows/deploy.yml | 55 ++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..36b27c8 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,55 @@ +name: Deploy Frontend + +on: + push: + branches: [main, dev] + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 10.28.0 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Build + run: pnpm build + env: + VITE_API_URL: ${{ secrets.VITE_API_URL }} + VITE_APP_URL: ${{ secrets.VITE_APP_URL }} + + - name: Deploy to EC2 + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ secrets.EC2_HOST }} + username: ${{ secrets.EC2_USER }} + key: ${{ secrets.EC2_SSH_KEY }} + source: "dist/*" + target: "/tmp/fe-deploy" + strip_components: 1 + + - name: Move files and set permissions + uses: appleboy/ssh-action@v1.2.0 + with: + host: ${{ secrets.EC2_HOST }} + username: ${{ secrets.EC2_USER }} + key: ${{ secrets.EC2_SSH_KEY }} + script: | + sudo rm -rf /var/www/dokdok/* + sudo mv /tmp/fe-deploy/* /var/www/dokdok/ + sudo chown -R www-data:www-data /var/www/dokdok + sudo chmod -R 755 /var/www/dokdok + rm -rf /tmp/fe-deploy \ No newline at end of file From 3a7fd752976beb764b4f83b6aa2cdc927ecccb91 Mon Sep 17 00:00:00 2001 From: CHO GUNHEE Date: Fri, 30 Jan 2026 21:17:10 +0900 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=EB=B0=B0=ED=8F=AC=20=ED=8A=B8?= =?UTF-8?q?=EB=A6=AC=EA=B1=B0=EB=A5=BC=20PR=20merge=20=EC=8B=9C=EB=A1=9C?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit push 트리거 대신 pull_request closed + merged 조건으로 변경하여 main, dev 브랜치에 PR이 merge될 때만 배포가 실행되도록 수정합니다. --- .github/workflows/deploy.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 36b27c8..da5e513 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,11 +1,13 @@ name: Deploy Frontend on: - push: + pull_request: branches: [main, dev] + types: [closed] jobs: deploy: + if: github.event.pull_request.merged == true runs-on: ubuntu-latest steps: From c7393a51babe05bb78fa32ba371e66f809ee5b3f Mon Sep 17 00:00:00 2001 From: CHO GUNHEE Date: Fri, 30 Jan 2026 21:20:16 +0900 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=EC=9B=90=EC=9E=90=EC=A0=81=20?= =?UTF-8?q?=EB=B0=B0=ED=8F=AC=20=EB=B0=A9=EC=8B=9D=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rm -rf 후 mv 방식 대신 디렉터리 rename 스왑으로 변경하여 배포 중 다운타임 및 부분 배포 문제를 방지합니다. --- .github/workflows/deploy.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index da5e513..37bb16c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -50,8 +50,10 @@ jobs: username: ${{ secrets.EC2_USER }} key: ${{ secrets.EC2_SSH_KEY }} script: | - sudo rm -rf /var/www/dokdok/* - sudo mv /tmp/fe-deploy/* /var/www/dokdok/ - sudo chown -R www-data:www-data /var/www/dokdok - sudo chmod -R 755 /var/www/dokdok - rm -rf /tmp/fe-deploy \ No newline at end of file + sudo mkdir -p /tmp/fe-deploy + sudo chown -R www-data:www-data /tmp/fe-deploy + sudo chmod -R 755 /tmp/fe-deploy + sudo rm -rf /var/www/dokdok-old + sudo mv /var/www/dokdok /var/www/dokdok-old + sudo mv /tmp/fe-deploy /var/www/dokdok + sudo rm -rf /var/www/dokdok-old \ No newline at end of file