File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -7,12 +7,16 @@ coverage
77# 깃 관련 파일
88.git
99.gitignore
10+ .github
1011
1112# 환경 변수
1213.env
1314.env.dev
15+ .env.local
16+ .env. * .local
1417
1518# 로그 파일
19+ * .log
1620npm-debug.log
1721yarn-error.log
1822pnpm-debug.log
@@ -27,4 +31,19 @@ docker-compose.yml
2731.dockerignore
2832
2933# 빌드에 필요 없는 파일
30- README.md
34+ README.md
35+ * .md
36+ docs
37+
38+ # 테스트/임시 파일
39+ tests
40+ __tests__
41+ * .test.ts
42+ * .spec.ts
43+
44+ # IDE 설정
45+ .vscode
46+ .idea
47+
48+ # Swagger 산출물 (컨테이너 빌드 시 재생성)
49+ swagger.json
Original file line number Diff line number Diff line change @@ -2,7 +2,7 @@ name: deploy-dev
22
33on :
44 push :
5- branches : [ develop ]
5+ branches : [ develop ]
66 workflow_dispatch :
77
88jobs :
@@ -48,27 +48,22 @@ jobs:
4848 ${{ secrets.ENV_DEV_CONTENT }}
4949 EOF'
5050
51- - name : Install, Generate & Build on server
52- run : |
53- ssh prod 'cd /opt/app-dev && pnpm install --frozen-lockfile && pnpm exec prisma generate && rm -rf dist && pnpm build'
54-
55- # 테스트 DB 마이그레이션
51+ # 테스트 DB 마이그레이션 (npx로 prisma CLI 1회 호출 — EC2 build 단계 없이)
5652 - name : Run Prisma DB Push (Dev)
5753 run : |
5854 ssh prod << 'EOF'
5955 set -euo pipefail
6056 cd /opt/app-dev
61- # .env.dev 파일을 로드하여 실행
62- export $(cat .env.dev | xargs)
63- pnpm exec prisma db push
57+ export $(grep -v '^#' .env.dev | xargs)
58+ npx --yes -p prisma@^6 prisma db push
6459 EOF
6560
66- # 도커 빌드 전 디스크 용량 확보
67- - name : Clean up unused Docker data on EC2
61+ # 도커 빌드 전 디스크 정리 (7일 이상 미사용 데이터만 — BuildKit 캐시 보존)
62+ - name : Prune stale Docker data on EC2
6863 run : |
69- ssh prod 'sudo docker system prune -af '
64+ ssh prod 'sudo docker system prune -f --filter "until=168h" || true '
7065
71- # app-dev 컨테이너만 재시작 (운영 컨테이너 app, caddy는 건드리지 않음 )
66+ # app-dev 컨테이너만 빌드/ 재시작 (install/generate/build는 Dockerfile 멀티스테이지로 통합 )
7267 - name : Deploy Docker services (Dev)
7368 run : |
74- ssh prod 'cd /opt/app-dev && sudo docker compose -p promptplace -f docker-compose.yml up -d --build app-dev'
69+ ssh prod 'cd /opt/app-dev && sudo docker compose -p promptplace -f docker-compose.yml up -d --build app-dev'
Original file line number Diff line number Diff line change 66 workflow_dispatch :
77
88jobs :
9- deploy :
9+ deploy :
1010 runs-on : ubuntu-latest
1111 permissions :
1212 contents : read
@@ -53,23 +53,22 @@ jobs:
5353 ${{ secrets.ENV_CONTENT }}
5454 EOF'
5555
56- - name : Install, Generate & Build on server
57- run : |
58- ssh prod 'cd /opt/app-backup && pnpm install --frozen-lockfile && pnpm exec prisma generate && rm -rf dist && pnpm build'
59-
56+ # Prisma 마이그레이션 (npx로 prisma CLI 1회 호출 — EC2 build 단계 없이)
6057 - name : Run Prisma migrations (deploy)
6158 if : steps.paths-filter.outputs.prisma == 'true'
6259 run : |
6360 ssh prod << 'EOF'
6461 set -euo pipefail
6562 cd /opt/app-backup
66- pnpm exec prisma migrate deploy
63+ export $(grep -v '^#' .env | xargs)
64+ npx --yes -p prisma@^6 prisma migrate deploy
6765 EOF
6866
6967 - name : Stop and Remove old containers
7068 run : |
7169 ssh prod 'cd /opt/app-backup && sudo docker rm -f myapp || true && sudo docker rm -f caddy || true'
7270
71+ # Docker 빌드/배포 (install/generate/build는 Dockerfile 멀티스테이지로 통합)
7372 - name : Deploy Docker services
74- run : |
75- ssh prod 'cd /opt/app-backup && sudo docker compose -p promptplace -f docker-compose.yml up -d --build app caddy'
73+ run : |
74+ ssh prod 'cd /opt/app-backup && sudo docker compose -p promptplace -f docker-compose.yml up -d --build app caddy'
You can’t perform that action at this time.
0 commit comments