@k2works/claude-code-booster 1.10.0 → 1.11.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/LICENSE +21 -21
- package/README.md +42 -42
- package/bin/claude-code-booster +79 -79
- package/lib/assets/.claude/README.md +162 -162
- package/lib/assets/.claude/SKILLS_TEMPLATE.md +100 -100
- package/lib/assets/.claude/scripts/generate-inception-deck.mjs +911 -911
- package/lib/assets/.claude/settings.json +11 -11
- package/lib/assets/.claude/skills/ai-agent-guidelines/SKILL.md +119 -119
- package/lib/assets/.claude/skills/analyzing-architecture/SKILL.md +87 -87
- package/lib/assets/.claude/skills/analyzing-business/SKILL.md +117 -117
- package/lib/assets/.claude/skills/analyzing-data-model/SKILL.md +80 -80
- package/lib/assets/.claude/skills/analyzing-domain-model/SKILL.md +88 -88
- package/lib/assets/.claude/skills/analyzing-inception-deck/SKILL.md +137 -137
- package/lib/assets/.claude/skills/analyzing-non-functional/SKILL.md +91 -91
- package/lib/assets/.claude/skills/analyzing-operation/SKILL.md +91 -91
- package/lib/assets/.claude/skills/analyzing-requirements/SKILL.md +89 -87
- package/lib/assets/.claude/skills/analyzing-tech-stack/SKILL.md +102 -102
- package/lib/assets/.claude/skills/analyzing-test-strategy/SKILL.md +87 -87
- package/lib/assets/.claude/skills/analyzing-ui-design/SKILL.md +86 -86
- package/lib/assets/.claude/skills/analyzing-usecases/SKILL.md +87 -87
- package/lib/assets/.claude/skills/creating-adr/SKILL.md +115 -115
- package/lib/assets/.claude/skills/developing-backend/SKILL.md +106 -106
- package/lib/assets/.claude/skills/developing-frontend/SKILL.md +96 -96
- package/lib/assets/.claude/skills/developing-release/SKILL.md +154 -154
- package/lib/assets/.claude/skills/generating-slides/SKILL.md +136 -136
- package/lib/assets/.claude/skills/git-commit/SKILL.md +106 -106
- package/lib/assets/.claude/skills/killing-processes/SKILL.md +98 -98
- package/lib/assets/.claude/skills/managing-docs/SKILL.md +200 -200
- package/lib/assets/.claude/skills/managing-operations/DEPLOY.md +77 -77
- package/lib/assets/.claude/skills/managing-operations/SETUP_CSHARP.md +80 -80
- package/lib/assets/.claude/skills/managing-operations/SETUP_FRONTEND.md +84 -84
- package/lib/assets/.claude/skills/managing-operations/SETUP_JAVA.md +75 -75
- package/lib/assets/.claude/skills/managing-operations/SKILL.md +156 -156
- package/lib/assets/.claude/skills/orchestrating-analysis/SKILL.md +134 -134
- package/lib/assets/.claude/skills/orchestrating-development/SKILL.md +243 -243
- package/lib/assets/.claude/skills/orchestrating-project/SKILL.md +193 -193
- package/lib/assets/.claude/skills/planning-releases/SKILL.md +222 -222
- package/lib/assets/.claude/skills/tracking-progress/SKILL.md +164 -164
- package/lib/assets/.devcontainer/devcontainer.json +34 -34
- package/lib/assets/.env.example +17 -17
- package/lib/assets/.gitattributes +4 -4
- package/lib/assets/.github/workflows/docker-publish.yml +77 -77
- package/lib/assets/.github/workflows/mkdocs.yml +39 -39
- package/lib/assets/AGENTS.md +94 -94
- package/lib/assets/CLAUDE.md +162 -162
- package/lib/assets/README.md +285 -269
- package/lib/assets/docker-compose.yml +33 -33
- package/lib/assets/docs/assets/css/extra.css +29 -29
- package/lib/assets/docs/assets/js/extra.js +44 -44
- package/lib/assets/docs/index.md +14 -14
- package/lib/assets/docs/reference/CodexCLIMCP/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/351/226/213/347/231/272/343/203/225/343/203/255/343/203/274.md +532 -532
- package/lib/assets/docs/reference/CodexCLIMCP/343/202/265/343/203/274/343/203/220/343/203/274/350/250/255/345/256/232/346/211/213/351/240/206.md +341 -341
- package/lib/assets/docs/reference/Java/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/346/247/213/347/257/211/343/202/254/343/202/244/343/203/211.md +578 -578
- package/lib/assets/docs/reference/TypeScript/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/346/247/213/347/257/211/343/202/254/343/202/244/343/203/211.md +465 -465
- package/lib/assets/docs/reference/UI/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +448 -448
- package/lib/assets/docs/reference//343/202/210/343/201/204/343/202/275/343/203/225/343/203/210/343/202/246/343/202/247/343/202/242/343/201/250/343/201/257.md +242 -242
- package/lib/assets/docs/reference//343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +2216 -2216
- package/lib/assets/docs/reference//343/202/244/343/203/263/343/203/225/343/203/251/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +1878 -1878
- package/lib/assets/docs/reference//343/202/250/343/202/257/343/202/271/343/203/210/343/203/252/343/203/274/343/203/240/343/203/227/343/203/255/343/202/260/343/203/251/343/203/237/343/203/263/343/202/260.md +554 -554
- package/lib/assets/docs/reference//343/202/263/343/203/274/343/203/207/343/202/243/343/203/263/343/202/260/343/201/250/343/203/206/343/202/271/343/203/210/343/202/254/343/202/244/343/203/211.md +705 -705
- package/lib/assets/docs/reference//343/203/206/343/202/271/343/203/210/346/210/246/347/225/245/343/202/254/343/202/244/343/203/211.md +1313 -1313
- package/lib/assets/docs/reference//343/203/207/343/203/274/343/202/277/343/203/242/343/203/207/343/203/253/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +311 -311
- package/lib/assets/docs/reference//343/203/211/343/203/241/343/202/244/343/203/263/343/203/242/343/203/207/343/203/253/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +599 -599
- package/lib/assets/docs/reference//343/203/223/343/202/270/343/203/215/343/202/271/343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243/345/210/206/346/236/220/343/202/254/343/202/244/343/203/211.md +528 -528
- package/lib/assets/docs/reference//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/344/275/234/346/210/220/343/202/254/343/202/244/343/203/211.md +682 -682
- package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/202/254/343/202/244/343/203/211.md +442 -442
- package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/203/273/343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/350/250/210/347/224/273/343/202/254/343/202/244/343/203/211.md +558 -558
- package/lib/assets/docs/reference//347/222/260/345/242/203/345/244/211/346/225/260/347/256/241/347/220/206/343/202/254/343/202/244/343/203/211.md +663 -663
- package/lib/assets/docs/reference//350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +1248 -1248
- package/lib/assets/docs/reference//351/201/213/347/224/250/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +392 -392
- package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +235 -235
- package/lib/assets/docs/reference//351/235/236/346/251/237/350/203/275/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +1236 -1236
- package/lib/assets/docs/template/ADR.md +30 -30
- package/lib/assets/docs/template/README.md +50 -50
- package/lib/assets/docs/template//343/201/276/343/201/232/343/201/223/343/202/214/343/202/222/350/252/255/343/202/202/343/201/206/343/203/252/343/202/271/343/203/210.md +12 -12
- package/lib/assets/docs/template//343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/345/256/214/344/272/206/345/240/261/345/221/212/346/233/270.md +58 -58
- package/lib/assets/docs/template//343/202/244/343/203/263/343/202/273/343/203/227/343/202/267/343/203/247/343/203/263/343/203/207/343/203/203/343/202/255.md +13 -13
- package/lib/assets/docs/template//343/203/223/343/202/270/343/203/215/343/202/271/343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243.md +379 -379
- package/lib/assets/docs/template//345/256/214/345/205/250/345/275/242/345/274/217/343/201/256/343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271.md +68 -68
- package/lib/assets/docs/template//350/246/201/344/273/266/345/256/232/347/276/251.md +669 -669
- package/lib/assets/docs/template//350/250/255/350/250/210.md +163 -163
- package/lib/assets/gulpfile.js +23 -23
- package/lib/assets/mkdocs.yml +65 -65
- package/lib/assets/ops/docker/mkdoc/Dockerfile +19 -19
- package/lib/assets/ops/scripts/journal.js +180 -180
- package/lib/assets/ops/scripts/mkdocs.js +82 -82
- package/lib/assets/ops/scripts/release.js +431 -431
- package/lib/assets/ops/scripts/ssh.js +190 -190
- package/lib/assets/ops/scripts/vault.js +299 -299
- package/lib/assets/package-lock.json +1653 -1653
- package/lib/assets/package.json +40 -40
- package/lib/gulpfile.js +37 -37
- package/package.json +41 -41
|
@@ -1,442 +1,442 @@
|
|
|
1
|
-
# リリースガイド
|
|
2
|
-
|
|
3
|
-
本ドキュメントでは、アプリケーションのリリースワークフローについて説明します。
|
|
4
|
-
|
|
5
|
-
## 概要
|
|
6
|
-
|
|
7
|
-
リリースは品質ゲート → バージョンバンプ → CHANGELOG 生成 → git commit + tag を一貫して実行するワークフローです。デプロイは既存のデプロイタスクと連携します。
|
|
8
|
-
|
|
9
|
-
### リリースフロー全体像
|
|
10
|
-
|
|
11
|
-
```plantuml
|
|
12
|
-
@startuml
|
|
13
|
-
title リリースワークフロー
|
|
14
|
-
|
|
15
|
-
start
|
|
16
|
-
|
|
17
|
-
:ドライラン;
|
|
18
|
-
note right
|
|
19
|
-
CHANGELOG プレビュー
|
|
20
|
-
バージョン計算
|
|
21
|
-
end note
|
|
22
|
-
|
|
23
|
-
:内容を確認;
|
|
24
|
-
|
|
25
|
-
if (リリースしてよいか?) then (はい)
|
|
26
|
-
else (いいえ)
|
|
27
|
-
stop
|
|
28
|
-
endif
|
|
29
|
-
|
|
30
|
-
:リリース種別を選択\npatch / minor / major;
|
|
31
|
-
|
|
32
|
-
partition "品質ゲート(preflight)" {
|
|
33
|
-
:working tree クリーンチェック;
|
|
34
|
-
:静的解析(lint);
|
|
35
|
-
:ユニットテスト;
|
|
36
|
-
:ビルド確認;
|
|
37
|
-
:E2E テスト;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (全チェック通過?) then (はい)
|
|
41
|
-
else (いいえ)
|
|
42
|
-
:エラーを修正;
|
|
43
|
-
stop
|
|
44
|
-
endif
|
|
45
|
-
|
|
46
|
-
partition "リリース実行" {
|
|
47
|
-
:バージョンバンプ\n(対象パッケージを同期);
|
|
48
|
-
:CHANGELOG.md 生成;
|
|
49
|
-
:git commit + git tag;
|
|
50
|
-
:サマリー表示;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
:git push && git push --tags;
|
|
54
|
-
|
|
55
|
-
if (本番デプロイも行う?) then (はい)
|
|
56
|
-
:デプロイ実行;
|
|
57
|
-
else (いいえ)
|
|
58
|
-
endif
|
|
59
|
-
|
|
60
|
-
stop
|
|
61
|
-
|
|
62
|
-
@enduml
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### 品質ゲート詳細
|
|
66
|
-
|
|
67
|
-
```plantuml
|
|
68
|
-
@startuml
|
|
69
|
-
title 品質ゲート
|
|
70
|
-
|
|
71
|
-
start
|
|
72
|
-
|
|
73
|
-
:working tree クリーンチェック;
|
|
74
|
-
note right: git status --porcelain
|
|
75
|
-
if (working tree クリーン?) then (はい)
|
|
76
|
-
else (いいえ)
|
|
77
|
-
#pink:Error: Working tree is not clean;
|
|
78
|
-
stop
|
|
79
|
-
endif
|
|
80
|
-
|
|
81
|
-
:静的解析;
|
|
82
|
-
if (lint パス?) then (はい)
|
|
83
|
-
else (いいえ)
|
|
84
|
-
#pink:lint エラー;
|
|
85
|
-
stop
|
|
86
|
-
endif
|
|
87
|
-
|
|
88
|
-
:ユニットテスト;
|
|
89
|
-
if (テスト全パス?) then (はい)
|
|
90
|
-
else (いいえ)
|
|
91
|
-
#pink:テスト失敗;
|
|
92
|
-
stop
|
|
93
|
-
endif
|
|
94
|
-
|
|
95
|
-
:ビルド確認;
|
|
96
|
-
if (ビルド成功?) then (はい)
|
|
97
|
-
else (いいえ)
|
|
98
|
-
#pink:ビルドエラー;
|
|
99
|
-
stop
|
|
100
|
-
endif
|
|
101
|
-
|
|
102
|
-
:E2E テスト;
|
|
103
|
-
if (E2E テスト全パス?) then (はい)
|
|
104
|
-
else (いいえ)
|
|
105
|
-
#pink:E2E テスト失敗;
|
|
106
|
-
stop
|
|
107
|
-
endif
|
|
108
|
-
|
|
109
|
-
#palegreen:品質ゲート通過;
|
|
110
|
-
stop
|
|
111
|
-
|
|
112
|
-
@enduml
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### リリースタスク実行詳細
|
|
116
|
-
|
|
117
|
-
```plantuml
|
|
118
|
-
@startuml
|
|
119
|
-
title リリース実行フロー
|
|
120
|
-
|
|
121
|
-
start
|
|
122
|
-
|
|
123
|
-
partition "[1/4] バージョン更新" {
|
|
124
|
-
:対象パッケージのバージョンを\nセマンティックバージョニングに従って更新;
|
|
125
|
-
note right
|
|
126
|
-
モノレポの場合は
|
|
127
|
-
全パッケージを同期
|
|
128
|
-
end note
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
partition "[2/4] CHANGELOG 生成" {
|
|
132
|
-
:直近タグを取得\ngit describe --tags;
|
|
133
|
-
:コミット一覧を取得\ngit log <tag>..HEAD;
|
|
134
|
-
:Conventional Commits で分類\nfeat / fix / docs / ...;
|
|
135
|
-
:CHANGELOG.md の先頭にエントリを追加;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
partition "[3/4] git commit + tag" {
|
|
139
|
-
:変更ファイルをステージング;
|
|
140
|
-
:git commit -m "release: vX.X.X";
|
|
141
|
-
:git tag -a vX.X.X;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
partition "[4/4] サマリー表示" {
|
|
145
|
-
:Version: old -> new\nTag: vX.X.X\nNext steps: push & deploy;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
stop
|
|
149
|
-
|
|
150
|
-
@enduml
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
## 前提条件
|
|
154
|
-
|
|
155
|
-
- プロジェクトのビルドツール・パッケージマネージャーがセットアップ済みであること
|
|
156
|
-
- 依存関係がインストール済みであること
|
|
157
|
-
- Git の working tree がクリーンであること(未コミットの変更がないこと)
|
|
158
|
-
- テスト・ビルドがすべてパスすること
|
|
159
|
-
|
|
160
|
-
## バージョニング規則
|
|
161
|
-
|
|
162
|
-
[Semantic Versioning](https://semver.org/) に従います。
|
|
163
|
-
|
|
164
|
-
| 種類 | 変更例 | バージョン変化 |
|
|
165
|
-
| :--- | :--- | :--- |
|
|
166
|
-
| `patch` | バグ修正、軽微な改善 | `0.1.0` → `0.1.1` |
|
|
167
|
-
| `minor` | 新機能追加(後方互換あり) | `0.1.0` → `0.2.0` |
|
|
168
|
-
| `major` | 破壊的変更 | `0.1.0` → `1.0.0` |
|
|
169
|
-
|
|
170
|
-
### モノレポでのバージョン管理
|
|
171
|
-
|
|
172
|
-
モノレポ構成の場合、全パッケージのバージョンを同期管理します。
|
|
173
|
-
|
|
174
|
-
| ファイル | 説明 |
|
|
175
|
-
| :--- | :--- |
|
|
176
|
-
| `package.json` | ルートパッケージ |
|
|
177
|
-
| `apps/*/package.json` | 各アプリケーションパッケージ |
|
|
178
|
-
| `packages/*/package.json` | 共有ライブラリパッケージ |
|
|
179
|
-
|
|
180
|
-
シングルリポジトリの場合は、ルートの `package.json` のみを管理対象とします。
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
## リリースタスク一覧
|
|
185
|
-
|
|
186
|
-
### リリースタスク
|
|
187
|
-
|
|
188
|
-
| タスク | 説明 | 備考 |
|
|
189
|
-
| :--- | :--- | :--- |
|
|
190
|
-
| `release:dry-run` | CHANGELOG プレビュー + バージョン計算 | 実際の変更は行わない |
|
|
191
|
-
| `release:patch` | パッチリリース | preflight → バージョンバンプ → CHANGELOG → commit + tag |
|
|
192
|
-
| `release:minor` | マイナーリリース | 同上 |
|
|
193
|
-
| `release:major` | メジャーリリース | 同上 |
|
|
194
|
-
|
|
195
|
-
### リリース + デプロイタスク
|
|
196
|
-
|
|
197
|
-
| タスク | 説明 | 備考 |
|
|
198
|
-
| :--- | :--- | :--- |
|
|
199
|
-
| `release:deploy:patch` | パッチリリース + デプロイ | `release:patch` → デプロイ |
|
|
200
|
-
| `release:deploy:minor` | マイナーリリース + デプロイ | `release:minor` → デプロイ |
|
|
201
|
-
| `release:deploy:major` | メジャーリリース + デプロイ | `release:major` → デプロイ |
|
|
202
|
-
|
|
203
|
-
### 品質ゲートタスク
|
|
204
|
-
|
|
205
|
-
| タスク | 説明 | 備考 |
|
|
206
|
-
| :--- | :--- | :--- |
|
|
207
|
-
| `release:preflight` | 品質ゲート(全チェック) | 以下 5 つを直列実行 |
|
|
208
|
-
| `release:preflight:clean` | working tree クリーンチェック | `git status --porcelain` |
|
|
209
|
-
| `release:preflight:lint` | 静的解析 | lint ツールを実行 |
|
|
210
|
-
| `release:preflight:test` | ユニットテスト | テストランナーを実行 |
|
|
211
|
-
| `release:preflight:build` | ビルド確認 | ビルドコマンドを実行 |
|
|
212
|
-
| `release:preflight:e2e` | E2E テスト | E2E テストランナーを実行 |
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
## 手順
|
|
217
|
-
|
|
218
|
-
### 1. ドライラン(プレビュー)
|
|
219
|
-
|
|
220
|
-
リリース前に、バージョン計算と CHANGELOG プレビューを確認します。
|
|
221
|
-
|
|
222
|
-
```bash
|
|
223
|
-
npm run release:dry-run
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
出力例:
|
|
227
|
-
|
|
228
|
-
```
|
|
229
|
-
=== Release Dry Run ===
|
|
230
|
-
|
|
231
|
-
Current version: 0.1.0
|
|
232
|
-
|
|
233
|
-
Version preview:
|
|
234
|
-
patch: 0.1.0 -> 0.1.1
|
|
235
|
-
minor: 0.1.0 -> 0.2.0
|
|
236
|
-
major: 0.1.0 -> 1.0.0
|
|
237
|
-
|
|
238
|
-
CHANGELOG preview:
|
|
239
|
-
---
|
|
240
|
-
## [0.1.1] - 2026-02-09
|
|
241
|
-
|
|
242
|
-
### Features
|
|
243
|
-
|
|
244
|
-
- 新機能の説明 (abc1234)
|
|
245
|
-
|
|
246
|
-
### Bug Fixes
|
|
247
|
-
|
|
248
|
-
- バグ修正の説明 (def5678)
|
|
249
|
-
---
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
### 2. リリース実行
|
|
253
|
-
|
|
254
|
-
適切なバージョン種別を選択してリリースを実行します。
|
|
255
|
-
|
|
256
|
-
```bash
|
|
257
|
-
# パッチリリース(バグ修正)
|
|
258
|
-
npm run release:patch
|
|
259
|
-
|
|
260
|
-
# マイナーリリース(新機能)
|
|
261
|
-
npm run release:minor
|
|
262
|
-
|
|
263
|
-
# メジャーリリース(破壊的変更)
|
|
264
|
-
npm run release:major
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
リリースタスクは以下のステップを自動実行します。
|
|
268
|
-
|
|
269
|
-
| ステップ | 内容 |
|
|
270
|
-
| :--- | :--- |
|
|
271
|
-
| preflight | working tree クリーンチェック → lint → test → build → e2e |
|
|
272
|
-
| [1/4] | 対象パッケージのバージョンを同期更新 |
|
|
273
|
-
| [2/4] | 直近タグから HEAD までのコミットを Conventional Commits で分類し CHANGELOG.md を生成 |
|
|
274
|
-
| [3/4] | 変更ファイルをステージング → `release: vX.X.X` でコミット → `vX.X.X` タグ作成 |
|
|
275
|
-
| [4/4] | リリースサマリーを表示 |
|
|
276
|
-
|
|
277
|
-
### 3. リモートへプッシュ
|
|
278
|
-
|
|
279
|
-
リリースコミットとタグをリモートリポジトリにプッシュします。
|
|
280
|
-
|
|
281
|
-
```bash
|
|
282
|
-
git push && git push --tags
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
### 4. 本番デプロイ(必要に応じて)
|
|
286
|
-
|
|
287
|
-
リリースと同時にデプロイする場合:
|
|
288
|
-
|
|
289
|
-
```bash
|
|
290
|
-
npm run release:deploy:patch
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
デプロイのみを別途実行する場合:
|
|
294
|
-
|
|
295
|
-
```bash
|
|
296
|
-
npm run deploy:prd
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
> **注意**: 本番デプロイは実行前に確認プロンプトを表示することを推奨します。
|
|
300
|
-
|
|
301
|
-
---
|
|
302
|
-
|
|
303
|
-
## CHANGELOG 生成ルール
|
|
304
|
-
|
|
305
|
-
CHANGELOG は [Conventional Commits](https://www.conventionalcommits.org/) の規約に基づいて自動生成されます。
|
|
306
|
-
|
|
307
|
-
### コミットメッセージの分類
|
|
308
|
-
|
|
309
|
-
| prefix | カテゴリ |
|
|
310
|
-
| :--- | :--- |
|
|
311
|
-
| `feat` | Features |
|
|
312
|
-
| `fix` | Bug Fixes |
|
|
313
|
-
| `docs` | Documentation |
|
|
314
|
-
| `refactor` | Refactoring |
|
|
315
|
-
| `test` | Tests |
|
|
316
|
-
| `chore` | Chores |
|
|
317
|
-
| `perf` | Performance |
|
|
318
|
-
| `ci` | CI |
|
|
319
|
-
| `style` | Styles |
|
|
320
|
-
| `build` | Build |
|
|
321
|
-
| その他 | Other |
|
|
322
|
-
|
|
323
|
-
### 生成ルール
|
|
324
|
-
|
|
325
|
-
- 直近の git tag から HEAD までのコミットを対象とする
|
|
326
|
-
- タグが存在しない場合は全コミット履歴を対象とする
|
|
327
|
-
- `CHANGELOG.md` の先頭に新しいエントリを追加する(ファイルがなければ新規作成)
|
|
328
|
-
|
|
329
|
-
### CHANGELOG エントリの形式
|
|
330
|
-
|
|
331
|
-
```markdown
|
|
332
|
-
## [0.2.0] - 2026-02-09
|
|
333
|
-
|
|
334
|
-
### Features
|
|
335
|
-
|
|
336
|
-
- 新機能の説明 (abc1234)
|
|
337
|
-
|
|
338
|
-
### Bug Fixes
|
|
339
|
-
|
|
340
|
-
- バグ修正の説明 (def5678)
|
|
341
|
-
```
|
|
342
|
-
|
|
343
|
-
---
|
|
344
|
-
|
|
345
|
-
## トラブルシューティング
|
|
346
|
-
|
|
347
|
-
### working tree がクリーンでない
|
|
348
|
-
|
|
349
|
-
```
|
|
350
|
-
Error: Working tree is not clean. Commit or stash your changes first.
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
未コミットの変更がある場合、リリースは実行できません。先に変更をコミットまたはスタッシュしてください。
|
|
354
|
-
|
|
355
|
-
```bash
|
|
356
|
-
# 変更をコミット
|
|
357
|
-
git add <files> && git commit -m "fix: 修正内容"
|
|
358
|
-
|
|
359
|
-
# または一時退避
|
|
360
|
-
git stash
|
|
361
|
-
npm run release:patch
|
|
362
|
-
git stash pop
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
### テストが失敗する
|
|
366
|
-
|
|
367
|
-
品質ゲート(preflight)でテストが失敗した場合、リリースは中断されます。テストを修正してからリリースを再実行してください。
|
|
368
|
-
|
|
369
|
-
```bash
|
|
370
|
-
# テストを個別に実行して問題を確認
|
|
371
|
-
npm run test
|
|
372
|
-
npm run test:e2e
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
### リリースを元に戻したい
|
|
376
|
-
|
|
377
|
-
リリースコミットとタグをリモートにプッシュする前であれば、ローカルで取り消せます。
|
|
378
|
-
|
|
379
|
-
```bash
|
|
380
|
-
# コミットとタグを取り消し
|
|
381
|
-
git tag -d vX.X.X
|
|
382
|
-
git reset --hard HEAD~1
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
> **重要**: リモートにプッシュ済みの場合は force push が必要になります。チームメンバーに影響がないことを確認してから実行してください。
|
|
386
|
-
|
|
387
|
-
### 品質ゲートを個別に実行したい
|
|
388
|
-
|
|
389
|
-
品質ゲートのみを実行してリリース可能な状態か確認できます。
|
|
390
|
-
|
|
391
|
-
```bash
|
|
392
|
-
npm run release:preflight
|
|
393
|
-
```
|
|
394
|
-
|
|
395
|
-
個別のチェックも実行可能です。
|
|
396
|
-
|
|
397
|
-
```bash
|
|
398
|
-
npm run release:preflight:clean # working tree チェック
|
|
399
|
-
npm run release:preflight:lint # lint
|
|
400
|
-
npm run release:preflight:test # ユニットテスト
|
|
401
|
-
npm run release:preflight:build # ビルド
|
|
402
|
-
npm run release:preflight:e2e # E2E テスト
|
|
403
|
-
```
|
|
404
|
-
|
|
405
|
-
---
|
|
406
|
-
|
|
407
|
-
## プロジェクトへの導入
|
|
408
|
-
|
|
409
|
-
### 必要な npm scripts
|
|
410
|
-
|
|
411
|
-
`package.json` に以下のスクリプトを定義します。
|
|
412
|
-
|
|
413
|
-
```json
|
|
414
|
-
{
|
|
415
|
-
"scripts": {
|
|
416
|
-
"release:dry-run": "リリースドライラン実行コマンド",
|
|
417
|
-
"release:patch": "リリース実行コマンド patch",
|
|
418
|
-
"release:minor": "リリース実行コマンド minor",
|
|
419
|
-
"release:major": "リリース実行コマンド major",
|
|
420
|
-
"release:preflight": "品質ゲート実行コマンド",
|
|
421
|
-
"release:deploy:patch": "リリース + デプロイコマンド patch",
|
|
422
|
-
"release:deploy:minor": "リリース + デプロイコマンド minor",
|
|
423
|
-
"release:deploy:major": "リリース + デプロイコマンド major"
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
```
|
|
427
|
-
|
|
428
|
-
### 実装方法の選択肢
|
|
429
|
-
|
|
430
|
-
| 方法 | 説明 | 適用場面 |
|
|
431
|
-
| :--- | :--- | :--- |
|
|
432
|
-
| カスタムスクリプト | シェルスクリプトや Node.js スクリプトで実装 | 細かい制御が必要な場合 |
|
|
433
|
-
| タスクランナー | Gulp、Make 等で実装 | 既存のタスクランナーがある場合 |
|
|
434
|
-
| 専用ツール | standard-version、semantic-release 等を利用 | 設定ベースで素早く導入したい場合 |
|
|
435
|
-
|
|
436
|
-
---
|
|
437
|
-
|
|
438
|
-
## 関連ドキュメント
|
|
439
|
-
|
|
440
|
-
- [リリース・イテレーション計画ガイド](リリース・イテレーション計画ガイド.md)
|
|
441
|
-
- [コーディングとテストガイド](コーディングとテストガイド.md)
|
|
442
|
-
- [開発ガイド](開発ガイド.md)
|
|
1
|
+
# リリースガイド
|
|
2
|
+
|
|
3
|
+
本ドキュメントでは、アプリケーションのリリースワークフローについて説明します。
|
|
4
|
+
|
|
5
|
+
## 概要
|
|
6
|
+
|
|
7
|
+
リリースは品質ゲート → バージョンバンプ → CHANGELOG 生成 → git commit + tag を一貫して実行するワークフローです。デプロイは既存のデプロイタスクと連携します。
|
|
8
|
+
|
|
9
|
+
### リリースフロー全体像
|
|
10
|
+
|
|
11
|
+
```plantuml
|
|
12
|
+
@startuml
|
|
13
|
+
title リリースワークフロー
|
|
14
|
+
|
|
15
|
+
start
|
|
16
|
+
|
|
17
|
+
:ドライラン;
|
|
18
|
+
note right
|
|
19
|
+
CHANGELOG プレビュー
|
|
20
|
+
バージョン計算
|
|
21
|
+
end note
|
|
22
|
+
|
|
23
|
+
:内容を確認;
|
|
24
|
+
|
|
25
|
+
if (リリースしてよいか?) then (はい)
|
|
26
|
+
else (いいえ)
|
|
27
|
+
stop
|
|
28
|
+
endif
|
|
29
|
+
|
|
30
|
+
:リリース種別を選択\npatch / minor / major;
|
|
31
|
+
|
|
32
|
+
partition "品質ゲート(preflight)" {
|
|
33
|
+
:working tree クリーンチェック;
|
|
34
|
+
:静的解析(lint);
|
|
35
|
+
:ユニットテスト;
|
|
36
|
+
:ビルド確認;
|
|
37
|
+
:E2E テスト;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (全チェック通過?) then (はい)
|
|
41
|
+
else (いいえ)
|
|
42
|
+
:エラーを修正;
|
|
43
|
+
stop
|
|
44
|
+
endif
|
|
45
|
+
|
|
46
|
+
partition "リリース実行" {
|
|
47
|
+
:バージョンバンプ\n(対象パッケージを同期);
|
|
48
|
+
:CHANGELOG.md 生成;
|
|
49
|
+
:git commit + git tag;
|
|
50
|
+
:サマリー表示;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
:git push && git push --tags;
|
|
54
|
+
|
|
55
|
+
if (本番デプロイも行う?) then (はい)
|
|
56
|
+
:デプロイ実行;
|
|
57
|
+
else (いいえ)
|
|
58
|
+
endif
|
|
59
|
+
|
|
60
|
+
stop
|
|
61
|
+
|
|
62
|
+
@enduml
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 品質ゲート詳細
|
|
66
|
+
|
|
67
|
+
```plantuml
|
|
68
|
+
@startuml
|
|
69
|
+
title 品質ゲート
|
|
70
|
+
|
|
71
|
+
start
|
|
72
|
+
|
|
73
|
+
:working tree クリーンチェック;
|
|
74
|
+
note right: git status --porcelain
|
|
75
|
+
if (working tree クリーン?) then (はい)
|
|
76
|
+
else (いいえ)
|
|
77
|
+
#pink:Error: Working tree is not clean;
|
|
78
|
+
stop
|
|
79
|
+
endif
|
|
80
|
+
|
|
81
|
+
:静的解析;
|
|
82
|
+
if (lint パス?) then (はい)
|
|
83
|
+
else (いいえ)
|
|
84
|
+
#pink:lint エラー;
|
|
85
|
+
stop
|
|
86
|
+
endif
|
|
87
|
+
|
|
88
|
+
:ユニットテスト;
|
|
89
|
+
if (テスト全パス?) then (はい)
|
|
90
|
+
else (いいえ)
|
|
91
|
+
#pink:テスト失敗;
|
|
92
|
+
stop
|
|
93
|
+
endif
|
|
94
|
+
|
|
95
|
+
:ビルド確認;
|
|
96
|
+
if (ビルド成功?) then (はい)
|
|
97
|
+
else (いいえ)
|
|
98
|
+
#pink:ビルドエラー;
|
|
99
|
+
stop
|
|
100
|
+
endif
|
|
101
|
+
|
|
102
|
+
:E2E テスト;
|
|
103
|
+
if (E2E テスト全パス?) then (はい)
|
|
104
|
+
else (いいえ)
|
|
105
|
+
#pink:E2E テスト失敗;
|
|
106
|
+
stop
|
|
107
|
+
endif
|
|
108
|
+
|
|
109
|
+
#palegreen:品質ゲート通過;
|
|
110
|
+
stop
|
|
111
|
+
|
|
112
|
+
@enduml
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### リリースタスク実行詳細
|
|
116
|
+
|
|
117
|
+
```plantuml
|
|
118
|
+
@startuml
|
|
119
|
+
title リリース実行フロー
|
|
120
|
+
|
|
121
|
+
start
|
|
122
|
+
|
|
123
|
+
partition "[1/4] バージョン更新" {
|
|
124
|
+
:対象パッケージのバージョンを\nセマンティックバージョニングに従って更新;
|
|
125
|
+
note right
|
|
126
|
+
モノレポの場合は
|
|
127
|
+
全パッケージを同期
|
|
128
|
+
end note
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
partition "[2/4] CHANGELOG 生成" {
|
|
132
|
+
:直近タグを取得\ngit describe --tags;
|
|
133
|
+
:コミット一覧を取得\ngit log <tag>..HEAD;
|
|
134
|
+
:Conventional Commits で分類\nfeat / fix / docs / ...;
|
|
135
|
+
:CHANGELOG.md の先頭にエントリを追加;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
partition "[3/4] git commit + tag" {
|
|
139
|
+
:変更ファイルをステージング;
|
|
140
|
+
:git commit -m "release: vX.X.X";
|
|
141
|
+
:git tag -a vX.X.X;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
partition "[4/4] サマリー表示" {
|
|
145
|
+
:Version: old -> new\nTag: vX.X.X\nNext steps: push & deploy;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
stop
|
|
149
|
+
|
|
150
|
+
@enduml
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## 前提条件
|
|
154
|
+
|
|
155
|
+
- プロジェクトのビルドツール・パッケージマネージャーがセットアップ済みであること
|
|
156
|
+
- 依存関係がインストール済みであること
|
|
157
|
+
- Git の working tree がクリーンであること(未コミットの変更がないこと)
|
|
158
|
+
- テスト・ビルドがすべてパスすること
|
|
159
|
+
|
|
160
|
+
## バージョニング規則
|
|
161
|
+
|
|
162
|
+
[Semantic Versioning](https://semver.org/) に従います。
|
|
163
|
+
|
|
164
|
+
| 種類 | 変更例 | バージョン変化 |
|
|
165
|
+
| :--- | :--- | :--- |
|
|
166
|
+
| `patch` | バグ修正、軽微な改善 | `0.1.0` → `0.1.1` |
|
|
167
|
+
| `minor` | 新機能追加(後方互換あり) | `0.1.0` → `0.2.0` |
|
|
168
|
+
| `major` | 破壊的変更 | `0.1.0` → `1.0.0` |
|
|
169
|
+
|
|
170
|
+
### モノレポでのバージョン管理
|
|
171
|
+
|
|
172
|
+
モノレポ構成の場合、全パッケージのバージョンを同期管理します。
|
|
173
|
+
|
|
174
|
+
| ファイル | 説明 |
|
|
175
|
+
| :--- | :--- |
|
|
176
|
+
| `package.json` | ルートパッケージ |
|
|
177
|
+
| `apps/*/package.json` | 各アプリケーションパッケージ |
|
|
178
|
+
| `packages/*/package.json` | 共有ライブラリパッケージ |
|
|
179
|
+
|
|
180
|
+
シングルリポジトリの場合は、ルートの `package.json` のみを管理対象とします。
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## リリースタスク一覧
|
|
185
|
+
|
|
186
|
+
### リリースタスク
|
|
187
|
+
|
|
188
|
+
| タスク | 説明 | 備考 |
|
|
189
|
+
| :--- | :--- | :--- |
|
|
190
|
+
| `release:dry-run` | CHANGELOG プレビュー + バージョン計算 | 実際の変更は行わない |
|
|
191
|
+
| `release:patch` | パッチリリース | preflight → バージョンバンプ → CHANGELOG → commit + tag |
|
|
192
|
+
| `release:minor` | マイナーリリース | 同上 |
|
|
193
|
+
| `release:major` | メジャーリリース | 同上 |
|
|
194
|
+
|
|
195
|
+
### リリース + デプロイタスク
|
|
196
|
+
|
|
197
|
+
| タスク | 説明 | 備考 |
|
|
198
|
+
| :--- | :--- | :--- |
|
|
199
|
+
| `release:deploy:patch` | パッチリリース + デプロイ | `release:patch` → デプロイ |
|
|
200
|
+
| `release:deploy:minor` | マイナーリリース + デプロイ | `release:minor` → デプロイ |
|
|
201
|
+
| `release:deploy:major` | メジャーリリース + デプロイ | `release:major` → デプロイ |
|
|
202
|
+
|
|
203
|
+
### 品質ゲートタスク
|
|
204
|
+
|
|
205
|
+
| タスク | 説明 | 備考 |
|
|
206
|
+
| :--- | :--- | :--- |
|
|
207
|
+
| `release:preflight` | 品質ゲート(全チェック) | 以下 5 つを直列実行 |
|
|
208
|
+
| `release:preflight:clean` | working tree クリーンチェック | `git status --porcelain` |
|
|
209
|
+
| `release:preflight:lint` | 静的解析 | lint ツールを実行 |
|
|
210
|
+
| `release:preflight:test` | ユニットテスト | テストランナーを実行 |
|
|
211
|
+
| `release:preflight:build` | ビルド確認 | ビルドコマンドを実行 |
|
|
212
|
+
| `release:preflight:e2e` | E2E テスト | E2E テストランナーを実行 |
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## 手順
|
|
217
|
+
|
|
218
|
+
### 1. ドライラン(プレビュー)
|
|
219
|
+
|
|
220
|
+
リリース前に、バージョン計算と CHANGELOG プレビューを確認します。
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
npm run release:dry-run
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
出力例:
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
=== Release Dry Run ===
|
|
230
|
+
|
|
231
|
+
Current version: 0.1.0
|
|
232
|
+
|
|
233
|
+
Version preview:
|
|
234
|
+
patch: 0.1.0 -> 0.1.1
|
|
235
|
+
minor: 0.1.0 -> 0.2.0
|
|
236
|
+
major: 0.1.0 -> 1.0.0
|
|
237
|
+
|
|
238
|
+
CHANGELOG preview:
|
|
239
|
+
---
|
|
240
|
+
## [0.1.1] - 2026-02-09
|
|
241
|
+
|
|
242
|
+
### Features
|
|
243
|
+
|
|
244
|
+
- 新機能の説明 (abc1234)
|
|
245
|
+
|
|
246
|
+
### Bug Fixes
|
|
247
|
+
|
|
248
|
+
- バグ修正の説明 (def5678)
|
|
249
|
+
---
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### 2. リリース実行
|
|
253
|
+
|
|
254
|
+
適切なバージョン種別を選択してリリースを実行します。
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
# パッチリリース(バグ修正)
|
|
258
|
+
npm run release:patch
|
|
259
|
+
|
|
260
|
+
# マイナーリリース(新機能)
|
|
261
|
+
npm run release:minor
|
|
262
|
+
|
|
263
|
+
# メジャーリリース(破壊的変更)
|
|
264
|
+
npm run release:major
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
リリースタスクは以下のステップを自動実行します。
|
|
268
|
+
|
|
269
|
+
| ステップ | 内容 |
|
|
270
|
+
| :--- | :--- |
|
|
271
|
+
| preflight | working tree クリーンチェック → lint → test → build → e2e |
|
|
272
|
+
| [1/4] | 対象パッケージのバージョンを同期更新 |
|
|
273
|
+
| [2/4] | 直近タグから HEAD までのコミットを Conventional Commits で分類し CHANGELOG.md を生成 |
|
|
274
|
+
| [3/4] | 変更ファイルをステージング → `release: vX.X.X` でコミット → `vX.X.X` タグ作成 |
|
|
275
|
+
| [4/4] | リリースサマリーを表示 |
|
|
276
|
+
|
|
277
|
+
### 3. リモートへプッシュ
|
|
278
|
+
|
|
279
|
+
リリースコミットとタグをリモートリポジトリにプッシュします。
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
git push && git push --tags
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### 4. 本番デプロイ(必要に応じて)
|
|
286
|
+
|
|
287
|
+
リリースと同時にデプロイする場合:
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
npm run release:deploy:patch
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
デプロイのみを別途実行する場合:
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
npm run deploy:prd
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
> **注意**: 本番デプロイは実行前に確認プロンプトを表示することを推奨します。
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## CHANGELOG 生成ルール
|
|
304
|
+
|
|
305
|
+
CHANGELOG は [Conventional Commits](https://www.conventionalcommits.org/) の規約に基づいて自動生成されます。
|
|
306
|
+
|
|
307
|
+
### コミットメッセージの分類
|
|
308
|
+
|
|
309
|
+
| prefix | カテゴリ |
|
|
310
|
+
| :--- | :--- |
|
|
311
|
+
| `feat` | Features |
|
|
312
|
+
| `fix` | Bug Fixes |
|
|
313
|
+
| `docs` | Documentation |
|
|
314
|
+
| `refactor` | Refactoring |
|
|
315
|
+
| `test` | Tests |
|
|
316
|
+
| `chore` | Chores |
|
|
317
|
+
| `perf` | Performance |
|
|
318
|
+
| `ci` | CI |
|
|
319
|
+
| `style` | Styles |
|
|
320
|
+
| `build` | Build |
|
|
321
|
+
| その他 | Other |
|
|
322
|
+
|
|
323
|
+
### 生成ルール
|
|
324
|
+
|
|
325
|
+
- 直近の git tag から HEAD までのコミットを対象とする
|
|
326
|
+
- タグが存在しない場合は全コミット履歴を対象とする
|
|
327
|
+
- `CHANGELOG.md` の先頭に新しいエントリを追加する(ファイルがなければ新規作成)
|
|
328
|
+
|
|
329
|
+
### CHANGELOG エントリの形式
|
|
330
|
+
|
|
331
|
+
```markdown
|
|
332
|
+
## [0.2.0] - 2026-02-09
|
|
333
|
+
|
|
334
|
+
### Features
|
|
335
|
+
|
|
336
|
+
- 新機能の説明 (abc1234)
|
|
337
|
+
|
|
338
|
+
### Bug Fixes
|
|
339
|
+
|
|
340
|
+
- バグ修正の説明 (def5678)
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## トラブルシューティング
|
|
346
|
+
|
|
347
|
+
### working tree がクリーンでない
|
|
348
|
+
|
|
349
|
+
```
|
|
350
|
+
Error: Working tree is not clean. Commit or stash your changes first.
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
未コミットの変更がある場合、リリースは実行できません。先に変更をコミットまたはスタッシュしてください。
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
# 変更をコミット
|
|
357
|
+
git add <files> && git commit -m "fix: 修正内容"
|
|
358
|
+
|
|
359
|
+
# または一時退避
|
|
360
|
+
git stash
|
|
361
|
+
npm run release:patch
|
|
362
|
+
git stash pop
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
### テストが失敗する
|
|
366
|
+
|
|
367
|
+
品質ゲート(preflight)でテストが失敗した場合、リリースは中断されます。テストを修正してからリリースを再実行してください。
|
|
368
|
+
|
|
369
|
+
```bash
|
|
370
|
+
# テストを個別に実行して問題を確認
|
|
371
|
+
npm run test
|
|
372
|
+
npm run test:e2e
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### リリースを元に戻したい
|
|
376
|
+
|
|
377
|
+
リリースコミットとタグをリモートにプッシュする前であれば、ローカルで取り消せます。
|
|
378
|
+
|
|
379
|
+
```bash
|
|
380
|
+
# コミットとタグを取り消し
|
|
381
|
+
git tag -d vX.X.X
|
|
382
|
+
git reset --hard HEAD~1
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
> **重要**: リモートにプッシュ済みの場合は force push が必要になります。チームメンバーに影響がないことを確認してから実行してください。
|
|
386
|
+
|
|
387
|
+
### 品質ゲートを個別に実行したい
|
|
388
|
+
|
|
389
|
+
品質ゲートのみを実行してリリース可能な状態か確認できます。
|
|
390
|
+
|
|
391
|
+
```bash
|
|
392
|
+
npm run release:preflight
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
個別のチェックも実行可能です。
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
npm run release:preflight:clean # working tree チェック
|
|
399
|
+
npm run release:preflight:lint # lint
|
|
400
|
+
npm run release:preflight:test # ユニットテスト
|
|
401
|
+
npm run release:preflight:build # ビルド
|
|
402
|
+
npm run release:preflight:e2e # E2E テスト
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## プロジェクトへの導入
|
|
408
|
+
|
|
409
|
+
### 必要な npm scripts
|
|
410
|
+
|
|
411
|
+
`package.json` に以下のスクリプトを定義します。
|
|
412
|
+
|
|
413
|
+
```json
|
|
414
|
+
{
|
|
415
|
+
"scripts": {
|
|
416
|
+
"release:dry-run": "リリースドライラン実行コマンド",
|
|
417
|
+
"release:patch": "リリース実行コマンド patch",
|
|
418
|
+
"release:minor": "リリース実行コマンド minor",
|
|
419
|
+
"release:major": "リリース実行コマンド major",
|
|
420
|
+
"release:preflight": "品質ゲート実行コマンド",
|
|
421
|
+
"release:deploy:patch": "リリース + デプロイコマンド patch",
|
|
422
|
+
"release:deploy:minor": "リリース + デプロイコマンド minor",
|
|
423
|
+
"release:deploy:major": "リリース + デプロイコマンド major"
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
### 実装方法の選択肢
|
|
429
|
+
|
|
430
|
+
| 方法 | 説明 | 適用場面 |
|
|
431
|
+
| :--- | :--- | :--- |
|
|
432
|
+
| カスタムスクリプト | シェルスクリプトや Node.js スクリプトで実装 | 細かい制御が必要な場合 |
|
|
433
|
+
| タスクランナー | Gulp、Make 等で実装 | 既存のタスクランナーがある場合 |
|
|
434
|
+
| 専用ツール | standard-version、semantic-release 等を利用 | 設定ベースで素早く導入したい場合 |
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
438
|
+
## 関連ドキュメント
|
|
439
|
+
|
|
440
|
+
- [リリース・イテレーション計画ガイド](リリース・イテレーション計画ガイド.md)
|
|
441
|
+
- [コーディングとテストガイド](コーディングとテストガイド.md)
|
|
442
|
+
- [開発ガイド](開発ガイド.md)
|