@daawoonkim/create-arch-app 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/WORKFLOWS.md +255 -0
- package/.github/workflows/deploy-main.yml +101 -0
- package/.github/workflows/lint.yml +33 -0
- package/.github/workflows/publish.yml +82 -0
- package/.github/workflows/test.yml +52 -0
- package/CHANGELOG.ko.md +72 -0
- package/CHANGELOG.md +71 -0
- package/CONTRIBUTING.md +172 -0
- package/PUBLISHING.md +304 -0
- package/README.ko.md +302 -0
- package/README.md +151 -116
- package/create-arch-app_mvp_faa8b53b.plan.md +1 -1
- package/dist/generators/index.js +69 -9
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/nextjs.d.ts.map +1 -1
- package/dist/generators/nextjs.js +107 -50
- package/dist/generators/nextjs.js.map +1 -1
- package/dist/generators/react.d.ts.map +1 -1
- package/dist/generators/react.js +23 -1
- package/dist/generators/react.js.map +1 -1
- package/dist/prompts/projectSetup.d.ts.map +1 -1
- package/dist/prompts/projectSetup.js +22 -0
- package/dist/prompts/projectSetup.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/apiGenerator.d.ts +4 -0
- package/dist/utils/apiGenerator.d.ts.map +1 -0
- package/dist/utils/apiGenerator.js +440 -0
- package/dist/utils/apiGenerator.js.map +1 -0
- package/dist/utils/dependencies.d.ts.map +1 -1
- package/dist/utils/dependencies.js +15 -0
- package/dist/utils/dependencies.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# CI/CD 워크플로우 가이드
|
|
2
|
+
|
|
3
|
+
이 프로젝트는 GitHub Actions를 사용하여 자동화된 테스트와 배포를 수행합니다.
|
|
4
|
+
|
|
5
|
+
## 📋 워크플로우 목록
|
|
6
|
+
|
|
7
|
+
### 1. **PR Tests** (`test.yml`)
|
|
8
|
+
Pull Request 생성 시 자동 실행
|
|
9
|
+
|
|
10
|
+
**실행 조건:**
|
|
11
|
+
- Pull Request가 main 브랜치를 대상으로 생성될 때
|
|
12
|
+
|
|
13
|
+
**수행 작업:**
|
|
14
|
+
- Node.js 18.x, 20.x, 22.x에서 테스트
|
|
15
|
+
- 의존성 설치 및 빌드
|
|
16
|
+
- TypeScript 타입 체크
|
|
17
|
+
- CLI 설치 및 프로젝트 생성 테스트
|
|
18
|
+
|
|
19
|
+
### 2. **Lint** (`lint.yml`)
|
|
20
|
+
코드 품질 체크
|
|
21
|
+
|
|
22
|
+
**실행 조건:**
|
|
23
|
+
- main 브랜치 push
|
|
24
|
+
- Pull Request 생성
|
|
25
|
+
|
|
26
|
+
**수행 작업:**
|
|
27
|
+
- TypeScript 타입 체크
|
|
28
|
+
- console.log 검사 (경고)
|
|
29
|
+
|
|
30
|
+
### 3. **Auto Deploy on Main** (`deploy-main.yml`) ⭐
|
|
31
|
+
main 브랜치 merge 시 자동 배포
|
|
32
|
+
|
|
33
|
+
**실행 조건:**
|
|
34
|
+
- main 브랜치에 push (merge 포함)
|
|
35
|
+
- 문서 파일 변경은 제외
|
|
36
|
+
|
|
37
|
+
**수행 작업:**
|
|
38
|
+
1. package.json 버전 확인
|
|
39
|
+
2. 해당 버전의 태그가 없으면 배포 진행
|
|
40
|
+
3. npm에 자동 배포
|
|
41
|
+
4. Git 태그 자동 생성
|
|
42
|
+
5. GitHub Release 자동 생성
|
|
43
|
+
|
|
44
|
+
**중요:** 배포 전에 package.json 버전을 미리 업데이트해야 합니다!
|
|
45
|
+
|
|
46
|
+
### 4. **Publish to npm** (`publish.yml`)
|
|
47
|
+
태그 기반 수동 배포 (백업용)
|
|
48
|
+
|
|
49
|
+
**실행 조건:**
|
|
50
|
+
- `v*.*.*` 형식의 태그 push
|
|
51
|
+
|
|
52
|
+
**수행 작업:**
|
|
53
|
+
- 빌드 및 검증
|
|
54
|
+
- npm 배포
|
|
55
|
+
- GitHub Release 생성
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 🚀 배포 워크플로우
|
|
60
|
+
|
|
61
|
+
### 자동 배포 (추천)
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# 1. 기능 개발
|
|
65
|
+
git checkout -b feature/my-feature
|
|
66
|
+
# ... 코드 작성 ...
|
|
67
|
+
|
|
68
|
+
# 2. package.json 버전 업데이트
|
|
69
|
+
npm version patch # 0.1.0 → 0.1.1
|
|
70
|
+
# 또는
|
|
71
|
+
npm version minor # 0.1.0 → 0.2.0
|
|
72
|
+
|
|
73
|
+
# 3. 커밋 및 푸시
|
|
74
|
+
git push origin feature/my-feature
|
|
75
|
+
|
|
76
|
+
# 4. PR 생성 및 merge
|
|
77
|
+
# GitHub에서 PR 생성 → 리뷰 → Merge
|
|
78
|
+
|
|
79
|
+
# 5. 자동 배포!
|
|
80
|
+
# main에 merge되면:
|
|
81
|
+
# ✅ 자동으로 npm 배포
|
|
82
|
+
# ✅ Git 태그 생성 (v0.1.1)
|
|
83
|
+
# ✅ GitHub Release 생성
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 수동 배포 (백업)
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# main 브랜치에서
|
|
90
|
+
git checkout main
|
|
91
|
+
git pull origin main
|
|
92
|
+
|
|
93
|
+
# 버전 업데이트 (자동으로 커밋 & 태그 생성)
|
|
94
|
+
npm version patch
|
|
95
|
+
|
|
96
|
+
# 태그 푸시
|
|
97
|
+
git push --follow-tags
|
|
98
|
+
|
|
99
|
+
# 자동으로 배포됨
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## ⚠️ 주의사항
|
|
105
|
+
|
|
106
|
+
### package.json 버전 관리
|
|
107
|
+
|
|
108
|
+
**중요:** PR에서 package.json 버전을 미리 업데이트해야 합니다!
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# ❌ 잘못된 방법
|
|
112
|
+
git checkout -b feature/my-feature
|
|
113
|
+
# ... 코드 작성 ...
|
|
114
|
+
git commit -m "feat: add feature"
|
|
115
|
+
# merge → 배포 안됨 (버전이 이미 존재)
|
|
116
|
+
|
|
117
|
+
# ✅ 올바른 방법
|
|
118
|
+
git checkout -b feature/my-feature
|
|
119
|
+
# ... 코드 작성 ...
|
|
120
|
+
npm version patch # 버전 업데이트!
|
|
121
|
+
git push
|
|
122
|
+
# merge → 자동 배포!
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 배포 스킵
|
|
126
|
+
|
|
127
|
+
다음과 같은 경우 배포가 자동으로 스킵됩니다:
|
|
128
|
+
|
|
129
|
+
- 문서 파일만 변경 (*.md)
|
|
130
|
+
- GitHub Actions 파일만 변경
|
|
131
|
+
- LICENSE 파일만 변경
|
|
132
|
+
- package.json 버전이 이미 태그로 존재
|
|
133
|
+
|
|
134
|
+
### 배포 실패 시
|
|
135
|
+
|
|
136
|
+
1. **npm 토큰 확인**
|
|
137
|
+
- GitHub Settings → Secrets → `NPM_TOKEN` 확인
|
|
138
|
+
|
|
139
|
+
2. **버전 중복**
|
|
140
|
+
- 이미 같은 버전이 npm에 있는지 확인
|
|
141
|
+
- package.json 버전 증가 필요
|
|
142
|
+
|
|
143
|
+
3. **빌드 실패**
|
|
144
|
+
- 로컬에서 `npm run build` 테스트
|
|
145
|
+
- TypeScript 에러 확인
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 🔧 설정
|
|
150
|
+
|
|
151
|
+
### 필수 Secrets
|
|
152
|
+
|
|
153
|
+
GitHub Repository Settings → Secrets and variables → Actions에서 설정:
|
|
154
|
+
|
|
155
|
+
1. **NPM_TOKEN** (필수)
|
|
156
|
+
- npm 웹사이트에서 Automation Token 생성
|
|
157
|
+
- https://www.npmjs.com/settings/[username]/tokens
|
|
158
|
+
- Type: "Automation" 선택
|
|
159
|
+
|
|
160
|
+
2. **GITHUB_TOKEN** (자동)
|
|
161
|
+
- GitHub이 자동으로 제공
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## 📊 배포 히스토리 확인
|
|
166
|
+
|
|
167
|
+
### GitHub Actions
|
|
168
|
+
https://github.com/hec8897/create-arch-app/actions
|
|
169
|
+
|
|
170
|
+
### npm 버전
|
|
171
|
+
https://www.npmjs.com/package/@daawoonkim/create-arch-app
|
|
172
|
+
|
|
173
|
+
### GitHub Releases
|
|
174
|
+
https://github.com/hec8897/create-arch-app/releases
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 🐛 트러블슈팅
|
|
179
|
+
|
|
180
|
+
### "Tag already exists" 에러
|
|
181
|
+
```bash
|
|
182
|
+
# 해결: package.json 버전 증가
|
|
183
|
+
npm version patch
|
|
184
|
+
git push origin feature-branch
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### "NPM_TOKEN not found" 에러
|
|
188
|
+
```bash
|
|
189
|
+
# 해결: GitHub Secrets에 NPM_TOKEN 추가
|
|
190
|
+
# Settings → Secrets → New repository secret
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### 배포가 안됨
|
|
194
|
+
```bash
|
|
195
|
+
# 1. 버전 확인
|
|
196
|
+
cat package.json | grep version
|
|
197
|
+
|
|
198
|
+
# 2. 태그 확인
|
|
199
|
+
git tag -l
|
|
200
|
+
|
|
201
|
+
# 3. 버전이 다르면 자동 배포됨
|
|
202
|
+
# 버전이 같으면 스킵됨
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## 📝 CHANGELOG 업데이트
|
|
208
|
+
|
|
209
|
+
배포 전에 CHANGELOG.md를 수동으로 업데이트하는 것을 권장합니다:
|
|
210
|
+
|
|
211
|
+
```markdown
|
|
212
|
+
## [0.1.1] - 2024-01-25
|
|
213
|
+
|
|
214
|
+
### Added
|
|
215
|
+
- 새로운 기능 추가
|
|
216
|
+
|
|
217
|
+
### Fixed
|
|
218
|
+
- 버그 수정
|
|
219
|
+
|
|
220
|
+
### Changed
|
|
221
|
+
- 기능 개선
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## 🎯 베스트 프랙티스
|
|
227
|
+
|
|
228
|
+
1. **버전 관리**
|
|
229
|
+
- Semantic Versioning 준수 (major.minor.patch)
|
|
230
|
+
- 의미 있는 버전 증가
|
|
231
|
+
|
|
232
|
+
2. **커밋 메시지**
|
|
233
|
+
- feat: 새 기능
|
|
234
|
+
- fix: 버그 수정
|
|
235
|
+
- docs: 문서 변경
|
|
236
|
+
- chore: 빌드/설정 변경
|
|
237
|
+
|
|
238
|
+
3. **배포 전 체크리스트**
|
|
239
|
+
- [ ] 로컬 빌드 성공
|
|
240
|
+
- [ ] TypeScript 에러 없음
|
|
241
|
+
- [ ] CHANGELOG 업데이트
|
|
242
|
+
- [ ] package.json 버전 증가
|
|
243
|
+
- [ ] PR 리뷰 완료
|
|
244
|
+
|
|
245
|
+
4. **긴급 배포**
|
|
246
|
+
- hotfix 브랜치 사용
|
|
247
|
+
- 버전 패치 증가
|
|
248
|
+
- 빠른 merge
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 📞 문의
|
|
253
|
+
|
|
254
|
+
워크플로우 관련 문제가 있으면 Issue를 생성해주세요:
|
|
255
|
+
https://github.com/hec8897/create-arch-app/issues
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
name: Auto Deploy on Main
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
paths-ignore:
|
|
8
|
+
- '**.md'
|
|
9
|
+
- '.github/**'
|
|
10
|
+
- 'LICENSE'
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
deploy:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
permissions:
|
|
17
|
+
contents: write
|
|
18
|
+
id-token: write
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- name: Checkout code
|
|
22
|
+
uses: actions/checkout@v4
|
|
23
|
+
with:
|
|
24
|
+
fetch-depth: 0
|
|
25
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
26
|
+
|
|
27
|
+
- name: Setup Node.js
|
|
28
|
+
uses: actions/setup-node@v4
|
|
29
|
+
with:
|
|
30
|
+
node-version: '20.x'
|
|
31
|
+
registry-url: 'https://registry.npmjs.org'
|
|
32
|
+
cache: 'npm'
|
|
33
|
+
|
|
34
|
+
- name: Configure Git
|
|
35
|
+
run: |
|
|
36
|
+
git config user.name "github-actions[bot]"
|
|
37
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
38
|
+
|
|
39
|
+
- name: Install dependencies
|
|
40
|
+
run: npm ci
|
|
41
|
+
|
|
42
|
+
- name: Build
|
|
43
|
+
run: npm run build
|
|
44
|
+
|
|
45
|
+
- name: Check if version changed
|
|
46
|
+
id: version_check
|
|
47
|
+
run: |
|
|
48
|
+
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
49
|
+
echo "current_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
|
|
50
|
+
|
|
51
|
+
# Check if tag already exists
|
|
52
|
+
if git rev-parse "v$CURRENT_VERSION" >/dev/null 2>&1; then
|
|
53
|
+
echo "should_deploy=false" >> $GITHUB_OUTPUT
|
|
54
|
+
echo "Tag v$CURRENT_VERSION already exists. Skipping deployment."
|
|
55
|
+
else
|
|
56
|
+
echo "should_deploy=true" >> $GITHUB_OUTPUT
|
|
57
|
+
echo "New version detected: $CURRENT_VERSION"
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
- name: Publish to npm
|
|
61
|
+
if: steps.version_check.outputs.should_deploy == 'true'
|
|
62
|
+
run: npm publish --access public
|
|
63
|
+
env:
|
|
64
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
65
|
+
|
|
66
|
+
- name: Create and push tag
|
|
67
|
+
if: steps.version_check.outputs.should_deploy == 'true'
|
|
68
|
+
run: |
|
|
69
|
+
VERSION="${{ steps.version_check.outputs.current_version }}"
|
|
70
|
+
git tag "v$VERSION"
|
|
71
|
+
git push origin "v$VERSION"
|
|
72
|
+
|
|
73
|
+
- name: Create GitHub Release
|
|
74
|
+
if: steps.version_check.outputs.should_deploy == 'true'
|
|
75
|
+
uses: actions/create-release@v1
|
|
76
|
+
env:
|
|
77
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
78
|
+
with:
|
|
79
|
+
tag_name: v${{ steps.version_check.outputs.current_version }}
|
|
80
|
+
release_name: Release ${{ steps.version_check.outputs.current_version }}
|
|
81
|
+
body: |
|
|
82
|
+
## 🚀 Release ${{ steps.version_check.outputs.current_version }}
|
|
83
|
+
|
|
84
|
+
Automatically deployed from main branch.
|
|
85
|
+
|
|
86
|
+
### 📦 Installation
|
|
87
|
+
|
|
88
|
+
\`\`\`bash
|
|
89
|
+
npx @daawoonkim/create-arch-app my-app
|
|
90
|
+
\`\`\`
|
|
91
|
+
|
|
92
|
+
### 📝 Changes
|
|
93
|
+
|
|
94
|
+
See [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md) for details.
|
|
95
|
+
|
|
96
|
+
### 🔗 Links
|
|
97
|
+
|
|
98
|
+
- [npm Package](https://www.npmjs.com/package/@daawoonkim/create-arch-app/v/${{ steps.version_check.outputs.current_version }})
|
|
99
|
+
- [Documentation](https://github.com/${{ github.repository }})
|
|
100
|
+
draft: false
|
|
101
|
+
prerelease: false
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: Lint
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
lint:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- name: Checkout code
|
|
15
|
+
uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- name: Setup Node.js
|
|
18
|
+
uses: actions/setup-node@v4
|
|
19
|
+
with:
|
|
20
|
+
node-version: '20.x'
|
|
21
|
+
cache: 'npm'
|
|
22
|
+
|
|
23
|
+
- name: Install dependencies
|
|
24
|
+
run: npm ci
|
|
25
|
+
|
|
26
|
+
- name: TypeScript type check
|
|
27
|
+
run: npx tsc --noEmit
|
|
28
|
+
|
|
29
|
+
- name: Check for console.logs
|
|
30
|
+
run: |
|
|
31
|
+
if grep -r "console\.log" src/ --exclude-dir=node_modules; then
|
|
32
|
+
echo "Warning: console.log found in source files"
|
|
33
|
+
fi
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
name: Publish to npm
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*.*.*'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
publish:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: write
|
|
14
|
+
id-token: write
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- name: Checkout code
|
|
18
|
+
uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Setup Node.js
|
|
21
|
+
uses: actions/setup-node@v4
|
|
22
|
+
with:
|
|
23
|
+
node-version: '20.x'
|
|
24
|
+
registry-url: 'https://registry.npmjs.org'
|
|
25
|
+
cache: 'npm'
|
|
26
|
+
|
|
27
|
+
- name: Install dependencies
|
|
28
|
+
run: npm ci
|
|
29
|
+
|
|
30
|
+
- name: Build
|
|
31
|
+
run: npm run build
|
|
32
|
+
|
|
33
|
+
- name: Verify build
|
|
34
|
+
run: |
|
|
35
|
+
if [ ! -d "dist" ]; then
|
|
36
|
+
echo "Build failed: dist directory not found"
|
|
37
|
+
exit 1
|
|
38
|
+
fi
|
|
39
|
+
echo "Build successful"
|
|
40
|
+
|
|
41
|
+
- name: Get version from tag
|
|
42
|
+
id: get_version
|
|
43
|
+
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
|
|
44
|
+
|
|
45
|
+
- name: Verify version matches package.json
|
|
46
|
+
run: |
|
|
47
|
+
TAG_VERSION="${{ steps.get_version.outputs.VERSION }}"
|
|
48
|
+
PKG_VERSION=$(node -p "require('./package.json').version")
|
|
49
|
+
if [ "$TAG_VERSION" != "$PKG_VERSION" ]; then
|
|
50
|
+
echo "Error: Tag version ($TAG_VERSION) does not match package.json version ($PKG_VERSION)"
|
|
51
|
+
echo "Please run 'npm version <type>' to update both"
|
|
52
|
+
exit 1
|
|
53
|
+
fi
|
|
54
|
+
echo "Version verified: $TAG_VERSION"
|
|
55
|
+
|
|
56
|
+
- name: Publish to npm
|
|
57
|
+
run: npm publish --access public
|
|
58
|
+
env:
|
|
59
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
60
|
+
|
|
61
|
+
- name: Create GitHub Release
|
|
62
|
+
uses: actions/create-release@v1
|
|
63
|
+
env:
|
|
64
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
65
|
+
with:
|
|
66
|
+
tag_name: ${{ github.ref }}
|
|
67
|
+
release_name: Release ${{ steps.get_version.outputs.VERSION }}
|
|
68
|
+
body: |
|
|
69
|
+
## Changes in this Release
|
|
70
|
+
|
|
71
|
+
See [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md) for details.
|
|
72
|
+
|
|
73
|
+
## Installation
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
npx @daawoonkim/create-arch-app my-app
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## npm Package
|
|
80
|
+
https://www.npmjs.com/package/@daawoonkim/create-arch-app/v/${{ steps.get_version.outputs.VERSION }}
|
|
81
|
+
draft: false
|
|
82
|
+
prerelease: false
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
name: PR Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: [main]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
test:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
|
|
11
|
+
strategy:
|
|
12
|
+
matrix:
|
|
13
|
+
node-version: [18.x, 20.x, 22.x]
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- name: Checkout code
|
|
17
|
+
uses: actions/checkout@v4
|
|
18
|
+
|
|
19
|
+
- name: Setup Node.js ${{ matrix.node-version }}
|
|
20
|
+
uses: actions/setup-node@v4
|
|
21
|
+
with:
|
|
22
|
+
node-version: ${{ matrix.node-version }}
|
|
23
|
+
cache: 'npm'
|
|
24
|
+
|
|
25
|
+
- name: Install dependencies
|
|
26
|
+
run: npm ci
|
|
27
|
+
|
|
28
|
+
- name: Build
|
|
29
|
+
run: npm run build
|
|
30
|
+
|
|
31
|
+
- name: Check for TypeScript errors
|
|
32
|
+
run: npx tsc --noEmit
|
|
33
|
+
|
|
34
|
+
- name: Test CLI installation
|
|
35
|
+
run: |
|
|
36
|
+
npm link
|
|
37
|
+
echo "✓ CLI linked successfully"
|
|
38
|
+
|
|
39
|
+
- name: Verify CLI command exists
|
|
40
|
+
run: |
|
|
41
|
+
which create-arch-app
|
|
42
|
+
create-arch-app --version || echo "CLI is available"
|
|
43
|
+
|
|
44
|
+
- name: Verify dist files
|
|
45
|
+
run: |
|
|
46
|
+
if [ -d "dist" ]; then
|
|
47
|
+
echo "✓ Build artifacts exist"
|
|
48
|
+
ls -la dist/
|
|
49
|
+
else
|
|
50
|
+
echo "✗ Build artifacts missing"
|
|
51
|
+
exit 1
|
|
52
|
+
fi
|
package/CHANGELOG.ko.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# 변경 로그
|
|
2
|
+
|
|
3
|
+
이 프로젝트의 주요 변경사항을 기록합니다.
|
|
4
|
+
|
|
5
|
+
형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.0.0/)를 따르며,
|
|
6
|
+
버저닝은 [Semantic Versioning](https://semver.org/lang/ko/)을 준수합니다.
|
|
7
|
+
|
|
8
|
+
## [미배포]
|
|
9
|
+
|
|
10
|
+
## [0.2.0] - 2025-01-26
|
|
11
|
+
|
|
12
|
+
### 추가
|
|
13
|
+
- **API 라이브러리 통합**
|
|
14
|
+
- HTTP 클라이언트 옵션: Axios, Fetch API, None
|
|
15
|
+
- 데이터 페칭 라이브러리: TanStack Query (React Query), SWR, None
|
|
16
|
+
- 아키텍처별 API 파일 자동 생성 (DDD, Clean, Atomic, Default)
|
|
17
|
+
- React 및 Next.js용 QueryClient/SWR Provider 자동 설정
|
|
18
|
+
- 환경변수 파일 자동 생성 (.env.local, .env.example)
|
|
19
|
+
- TypeScript 타입이 포함된 예제 API 엔드포인트 및 query hooks
|
|
20
|
+
|
|
21
|
+
- **CI/CD 자동화**
|
|
22
|
+
- 자동 테스트 및 배포를 위한 GitHub Actions 워크플로우
|
|
23
|
+
- main 브랜치 병합 시 자동 npm 배포 (버전 기반)
|
|
24
|
+
- Node.js 18.x, 20.x, 22.x에서 PR 자동 테스트
|
|
25
|
+
- TypeScript 검증을 포함한 자동 린트 체크
|
|
26
|
+
- 배포 시 GitHub Release 자동 생성
|
|
27
|
+
- 백업용 태그 기반 배포 방식
|
|
28
|
+
|
|
29
|
+
- **문서**
|
|
30
|
+
- 버전 추적을 위한 CHANGELOG.md
|
|
31
|
+
- 개발 가이드라인이 포함된 CONTRIBUTING.md
|
|
32
|
+
- 상세한 CI/CD 가이드 .github/WORKFLOWS.md
|
|
33
|
+
- CI 배지 및 배포 정보로 README 업데이트
|
|
34
|
+
|
|
35
|
+
### 변경
|
|
36
|
+
- **Next.js 프로젝트 구조**
|
|
37
|
+
- 모든 코드를 `src/` 디렉토리로 정리
|
|
38
|
+
- tsconfig.json에 절대 경로 alias (`@/*`) 자동 설정
|
|
39
|
+
- 모든 import를 `@/` 절대 경로로 변환
|
|
40
|
+
- 모든 `src/**/*` 파일을 스캔하도록 Tailwind 설정 간소화
|
|
41
|
+
- 깔끔한 루트 디렉토리로 더 나은 프로젝트 구성
|
|
42
|
+
|
|
43
|
+
### 수정
|
|
44
|
+
- GitHub Actions에서 대화형 프롬프트 문제를 피하기 위해 CI 테스트 워크플로우 간소화
|
|
45
|
+
|
|
46
|
+
## [0.1.0] - 2024-01-XX
|
|
47
|
+
|
|
48
|
+
### 추가
|
|
49
|
+
- 초기 MVP 릴리즈
|
|
50
|
+
- 4가지 아키텍처 패턴 지원 (DDD, Clean Architecture, Atomic Design, Default)
|
|
51
|
+
- React (with Vite) 및 Next.js 프레임워크 옵션
|
|
52
|
+
- Next.js 버전 선택 (Latest, 15.x, 14.x, 13.x)
|
|
53
|
+
- Next.js 라우터 선택 (App Router, Pages Router)
|
|
54
|
+
- TypeScript 기본 포함
|
|
55
|
+
- 스타일링 옵션: Tailwind CSS, CSS Modules
|
|
56
|
+
- 상태관리 옵션: Zustand, Context API, None
|
|
57
|
+
- 폼 라이브러리: React Hook Form
|
|
58
|
+
- 테스팅: Vitest + Testing Library
|
|
59
|
+
- 현재 디렉토리 생성 지원 (`.` 옵션)
|
|
60
|
+
- inquirer.js를 사용한 대화형 CLI
|
|
61
|
+
- 자동 폴더 구조 생성
|
|
62
|
+
- 프로젝트 세부정보가 포함된 README.md 생성
|
|
63
|
+
- 환경별 설정 파일
|
|
64
|
+
|
|
65
|
+
### 문서
|
|
66
|
+
- 사용 예제가 포함된 종합 README
|
|
67
|
+
- 배포 가이드 (PUBLISHING.md)
|
|
68
|
+
- 테스트 가이드 (TESTING.md)
|
|
69
|
+
|
|
70
|
+
[미배포]: https://github.com/hec8897/create-arch-app/compare/v0.2.0...HEAD
|
|
71
|
+
[0.2.0]: https://github.com/hec8897/create-arch-app/releases/tag/v0.2.0
|
|
72
|
+
[0.1.0]: https://github.com/hec8897/create-arch-app/releases/tag/v0.1.0
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.2.0] - 2025-01-26
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- **API Libraries Integration**
|
|
14
|
+
- HTTP Client options: Axios, Fetch API, None
|
|
15
|
+
- Data Fetching libraries: TanStack Query (React Query), SWR, None
|
|
16
|
+
- Architecture-specific API file generation (DDD, Clean, Atomic, Default)
|
|
17
|
+
- Automatic QueryClient/SWR Provider setup for React and Next.js
|
|
18
|
+
- Environment variable files (.env.local, .env.example)
|
|
19
|
+
- Example API endpoints and query hooks with TypeScript
|
|
20
|
+
|
|
21
|
+
- **CI/CD Automation**
|
|
22
|
+
- GitHub Actions workflows for automated testing and deployment
|
|
23
|
+
- Automatic npm deployment on main branch merge (version-based)
|
|
24
|
+
- PR testing on Node.js 18.x, 20.x, 22.x
|
|
25
|
+
- Automated lint checks with TypeScript validation
|
|
26
|
+
- Automatic GitHub Release creation on deployment
|
|
27
|
+
- Tag-based deployment as backup method
|
|
28
|
+
|
|
29
|
+
- **Documentation**
|
|
30
|
+
- CHANGELOG.md for version tracking
|
|
31
|
+
- CONTRIBUTING.md with development guidelines
|
|
32
|
+
- .github/WORKFLOWS.md with detailed CI/CD guide
|
|
33
|
+
- README updates with CI badges and deployment information
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
- **Next.js Project Structure**
|
|
37
|
+
- All code now organized in `src/` directory
|
|
38
|
+
- Automatic absolute path alias (`@/*`) configuration in tsconfig.json
|
|
39
|
+
- All imports converted to use `@/` absolute paths
|
|
40
|
+
- Simplified Tailwind config to scan all `src/**/*` files
|
|
41
|
+
- Better project organization with cleaner root directory
|
|
42
|
+
|
|
43
|
+
### Fixed
|
|
44
|
+
- CI test workflow simplified to avoid interactive prompt issues in GitHub Actions
|
|
45
|
+
|
|
46
|
+
## [0.1.0] - 2024-01-XX
|
|
47
|
+
|
|
48
|
+
### Added
|
|
49
|
+
- Initial MVP release
|
|
50
|
+
- Support for 4 architecture patterns (DDD, Clean Architecture, Atomic Design, Default)
|
|
51
|
+
- React (with Vite) and Next.js framework options
|
|
52
|
+
- Next.js version selection (Latest, 15.x, 14.x, 13.x)
|
|
53
|
+
- Next.js router selection (App Router, Pages Router)
|
|
54
|
+
- TypeScript as default
|
|
55
|
+
- Styling options: Tailwind CSS, CSS Modules
|
|
56
|
+
- State management options: Zustand, Context API, None
|
|
57
|
+
- Form library: React Hook Form
|
|
58
|
+
- Testing: Vitest + Testing Library
|
|
59
|
+
- Current directory creation support (`.` option)
|
|
60
|
+
- Interactive CLI with inquirer.js
|
|
61
|
+
- Automatic folder structure generation
|
|
62
|
+
- README.md generation with project details
|
|
63
|
+
- Environment-specific configuration files
|
|
64
|
+
|
|
65
|
+
### Documentation
|
|
66
|
+
- Comprehensive README with usage examples
|
|
67
|
+
- Publishing guide (PUBLISHING.md)
|
|
68
|
+
- Testing guide (TESTING.md)
|
|
69
|
+
|
|
70
|
+
[Unreleased]: https://github.com/hec8897/create-arch-app/compare/v0.1.0...HEAD
|
|
71
|
+
[0.1.0]: https://github.com/hec8897/create-arch-app/releases/tag/v0.1.0
|