Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,16 @@ coverage
# ๊นƒ ๊ด€๋ จ ํŒŒ์ผ
.git
.gitignore
.github

# ํ™˜๊ฒฝ ๋ณ€์ˆ˜
.env
.env.dev
.env.local
.env.*.local

# ๋กœ๊ทธ ํŒŒ์ผ
*.log
npm-debug.log
yarn-error.log
pnpm-debug.log
Expand All @@ -27,4 +31,19 @@ docker-compose.yml
.dockerignore

# ๋นŒ๋“œ์— ํ•„์š” ์—†๋Š” ํŒŒ์ผ
README.md
README.md
*.md
docs

# ํ…Œ์ŠคํŠธ/์ž„์‹œ ํŒŒ์ผ
tests
__tests__
*.test.ts
*.spec.ts

# IDE ์„ค์ •
.vscode
.idea

# Swagger ์‚ฐ์ถœ๋ฌผ (์ปจํ…Œ์ด๋„ˆ ๋นŒ๋“œ ์‹œ ์žฌ์ƒ์„ฑ)
swagger.json
23 changes: 9 additions & 14 deletions .github/workflows/deploy-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: deploy-dev

on:
push:
branches: [ develop ]
branches: [ develop ]
workflow_dispatch:

jobs:
Expand Down Expand Up @@ -48,27 +48,22 @@ jobs:
${{ secrets.ENV_DEV_CONTENT }}
EOF'

- name: Install, Generate & Build on server
run: |
ssh prod 'cd /opt/app-dev && pnpm install --frozen-lockfile && pnpm exec prisma generate && rm -rf dist && pnpm build'

# ํ…Œ์ŠคํŠธ DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
# ํ…Œ์ŠคํŠธ DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ (npx๋กœ prisma CLI 1ํšŒ ํ˜ธ์ถœ โ€” EC2 build ๋‹จ๊ณ„ ์—†์ด)
- name: Run Prisma DB Push (Dev)
run: |
ssh prod << 'EOF'
set -euo pipefail
cd /opt/app-dev
# .env.dev ํŒŒ์ผ์„ ๋กœ๋“œํ•˜์—ฌ ์‹คํ–‰
export $(cat .env.dev | xargs)
pnpm exec prisma db push
export $(grep -v '^#' .env.dev | xargs)
npx --yes -p prisma@^6 prisma db push
EOF

# ๋„์ปค ๋นŒ๋“œ ์ „ ๋””์Šคํฌ ์šฉ๋Ÿ‰ ํ™•๋ณด
- name: Clean up unused Docker data on EC2
# ๋„์ปค ๋นŒ๋“œ ์ „ ๋””์Šคํฌ ์ •๋ฆฌ (7์ผ ์ด์ƒ ๋ฏธ์‚ฌ์šฉ ๋ฐ์ดํ„ฐ๋งŒ โ€” BuildKit ์บ์‹œ ๋ณด์กด)
- name: Prune stale Docker data on EC2
run: |
ssh prod 'sudo docker system prune -af'
ssh prod 'sudo docker system prune -f --filter "until=168h" || true'

# app-dev ์ปจํ…Œ์ด๋„ˆ๋งŒ ์žฌ์‹œ์ž‘ (์šด์˜ ์ปจํ…Œ์ด๋„ˆ app, caddy๋Š” ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์Œ)
# app-dev ์ปจํ…Œ์ด๋„ˆ๋งŒ ๋นŒ๋“œ/์žฌ์‹œ์ž‘ (install/generate/build๋Š” Dockerfile ๋ฉ€ํ‹ฐ์Šคํ…Œ์ด์ง€๋กœ ํ†ตํ•ฉ)
- name: Deploy Docker services (Dev)
run: |
ssh prod 'cd /opt/app-dev && sudo docker compose -p promptplace -f docker-compose.yml up -d --build app-dev'
ssh prod 'cd /opt/app-dev && sudo docker compose -p promptplace -f docker-compose.yml up -d --build app-dev'
15 changes: 7 additions & 8 deletions .github/workflows/deploy-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
workflow_dispatch:

jobs:
deploy:
deploy:
runs-on: ubuntu-latest
permissions:
contents: read
Expand Down Expand Up @@ -53,23 +53,22 @@ jobs:
${{ secrets.ENV_CONTENT }}
EOF'

- name: Install, Generate & Build on server
run: |
ssh prod 'cd /opt/app-backup && pnpm install --frozen-lockfile && pnpm exec prisma generate && rm -rf dist && pnpm build'

# Prisma ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ (npx๋กœ prisma CLI 1ํšŒ ํ˜ธ์ถœ โ€” EC2 build ๋‹จ๊ณ„ ์—†์ด)
- name: Run Prisma migrations (deploy)
if: steps.paths-filter.outputs.prisma == 'true'
run: |
ssh prod << 'EOF'
set -euo pipefail
cd /opt/app-backup
pnpm exec prisma migrate deploy
export $(grep -v '^#' .env | xargs)
npx --yes -p prisma@^6 prisma migrate deploy
EOF

- name: Stop and Remove old containers
run: |
ssh prod 'cd /opt/app-backup && sudo docker rm -f myapp || true && sudo docker rm -f caddy || true'

# Docker ๋นŒ๋“œ/๋ฐฐํฌ (install/generate/build๋Š” Dockerfile ๋ฉ€ํ‹ฐ์Šคํ…Œ์ด์ง€๋กœ ํ†ตํ•ฉ)
- name: Deploy Docker services
run: |
ssh prod 'cd /opt/app-backup && sudo docker compose -p promptplace -f docker-compose.yml up -d --build app caddy'
run: |
ssh prod 'cd /opt/app-backup && sudo docker compose -p promptplace -f docker-compose.yml up -d --build app caddy'
Loading