From 87ab30178300276ba00767f5229b75f903044aba Mon Sep 17 00:00:00 2001 From: ParkWonYeop Date: Sat, 27 Dec 2025 15:47:06 +0900 Subject: [PATCH] chore: add deployment config --- .gitea/workflows/deploy.yml | 54 +++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .gitea/workflows/deploy.yml diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..ad234d8 --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,54 @@ +name: Deploy Next.js to Home Server +run-name: ${{ gitea.actor }} is deploying Blog ๐Ÿš€ + +# 1. ์–ธ์ œ ์‹คํ–‰ํ• ๊นŒ์š”? -> main ๋ธŒ๋žœ์น˜์— ์ฝ”๋“œ๊ฐ€ ํ‘ธ์‹œ๋  ๋•Œ +on: + push: + branches: + - main + +jobs: + build-and-deploy: + # 2. ๋ˆ„๊ฐ€ ์‹คํ–‰ํ• ๊นŒ์š”? -> ์•„๊นŒ ์„ค์ •ํ•œ 'home-server' ๋ผ๋ฒจ์„ ๊ฐ€์ง„ Runner๋งŒ ์‹คํ–‰! + runs-on: blog-frontend + + steps: + # ๋‹จ๊ณ„ 1: Gitea ์ €์žฅ์†Œ์—์„œ ์ตœ์‹  ์ฝ”๋“œ๋ฅผ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค. + - name: Check out repository code + uses: actions/checkout@v3 + + # ๋‹จ๊ณ„ 2: ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. + # docker.sock์„ ๊ณต์œ ํ–ˆ์œผ๋ฏ€๋กœ, Runner ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ docker ๋ช…๋ น์–ด๋ฅผ ์น˜๋ฉด + # ์‹ค์ œ๋กœ๋Š” ํ˜ธ์ŠคํŠธ(VM)์˜ ๋„์ปค ๋ฐ๋ชฌ์ด ์ผ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. + - name: Build Docker Image + run: | + echo "Building Docker image..." + docker build \ + --build-arg NEXT_PUBLIC_API_URL=https://blogserver.wypark.me \ + -t blog-frontend:latest . + + # ๋‹จ๊ณ„ 3: ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„๊ณ  ์ƒˆ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. + - name: Deploy Container + run: | + echo "Deploying new container..." + + # ๊ธฐ์กด์— ๋Œ๊ณ  ์žˆ๋Š” 'blog-frontend' ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ค‘์ง€ํ•˜๊ณ  ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. + # (|| true๋Š” ์—๋Ÿฌ๊ฐ€ ๋‚˜๋„ ๋ฌด์‹œํ•˜๊ณ  ๋‹ค์Œ ์ค„๋กœ ๋„˜์–ด๊ฐ€๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค) + docker stop blog-frontend || true + docker rm blog-frontend || true + + # ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. + # -d: ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰ + # -p 3005:3000: ํ˜ธ์ŠคํŠธ์˜ 3005๋ฒˆ ํฌํŠธ๋ฅผ ์ปจํ…Œ์ด๋„ˆ์˜ 3000๋ฒˆ ํฌํŠธ์— ์—ฐ๊ฒฐ (NPM์šฉ) + # --restart unless-stopped: ์„œ๋ฒ„ ์žฌ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹คํ–‰ + docker run -d \ + --name blog-frontend \ + --restart unless-stopped \ + -p 3005:3000 \ + -e NEXT_PUBLIC_API_URL=https://blogserver.wypark.me \ + blog-frontend:latest + + # ๋‹จ๊ณ„ 4: ๋นŒ๋“œ ๊ณผ์ •์—์„œ ์ƒ๊ธด ์ž„์‹œ ์ด๋ฏธ์ง€๋“ค์„ ์ฒญ์†Œํ•ฉ๋‹ˆ๋‹ค. (์šฉ๋Ÿ‰ ๊ด€๋ฆฌ) + - name: Cleanup Old Images + run: | + docker image prune -f \ No newline at end of file