@daawoonkim/create-arch-app 0.1.0 → 0.2.0
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.md +35 -0
- package/CONTRIBUTING.md +172 -0
- package/PUBLISHING.md +304 -0
- package/README.md +76 -2
- 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
- package/create-arch-app_mvp_faa8b53b.plan.md +0 -454
|
@@ -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.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
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.1.0] - 2024-01-XX
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- Initial MVP release
|
|
14
|
+
- Support for 4 architecture patterns (DDD, Clean Architecture, Atomic Design, Default)
|
|
15
|
+
- React (with Vite) and Next.js framework options
|
|
16
|
+
- Next.js version selection (Latest, 15.x, 14.x, 13.x)
|
|
17
|
+
- Next.js router selection (App Router, Pages Router)
|
|
18
|
+
- TypeScript as default
|
|
19
|
+
- Styling options: Tailwind CSS, CSS Modules
|
|
20
|
+
- State management options: Zustand, Context API, None
|
|
21
|
+
- Form library: React Hook Form
|
|
22
|
+
- Testing: Vitest + Testing Library
|
|
23
|
+
- Current directory creation support (`.` option)
|
|
24
|
+
- Interactive CLI with inquirer.js
|
|
25
|
+
- Automatic folder structure generation
|
|
26
|
+
- README.md generation with project details
|
|
27
|
+
- Environment-specific configuration files
|
|
28
|
+
|
|
29
|
+
### Documentation
|
|
30
|
+
- Comprehensive README with usage examples
|
|
31
|
+
- Publishing guide (PUBLISHING.md)
|
|
32
|
+
- Testing guide (TESTING.md)
|
|
33
|
+
|
|
34
|
+
[Unreleased]: https://github.com/hec8897/create-arch-app/compare/v0.1.0...HEAD
|
|
35
|
+
[0.1.0]: https://github.com/hec8897/create-arch-app/releases/tag/v0.1.0
|