🚀 버전 릴리즈
릴리즈 페이지(/vermanager/release?site=kiam-prod)에서 새 버전을 배포합니다. SemVer 규칙에 따라 MAJOR/MINOR/PATCH 타입을 선택하고, 포함할 개선사항을 지정합니다.
릴리즈 API (api/release.php)
POST /vermanager/api/release
Content-Type: application/json
{
"site": "kiam-prod",
"type": "patch",
"note": "버그 수정 및 성능 개선",
"improvements": ["imp_4", "imp_5"]
}
| 필드 | 필수 | 설명 |
|---|---|---|
site | 예 | 대상 사이트 ID (기본값: 현재 선택된 사이트) |
type | 예 | major / minor / patch |
note | 선택 | 릴리즈 노트 (버전 이력에 기록됨) |
improvements | 선택 | 연결할 개선사항 ID 배열 |
버전 범핑(Bump) 로직
function bump_version(array $current, string $type): array {
$next = ['major'=>$current['major'], 'minor'=>$current['minor'], 'patch'=>$current['patch']];
switch ($type) {
case 'major': $next['major']++; $next['minor']=0; $next['patch']=0; break;
case 'minor': $next['minor']++; $next['patch']=0; break;
case 'patch': $next['patch']++; break;
}
$next['raw'] = "{$next['major']}.{$next['minor']}.{$next['patch']}";
return $next;
}
미릴리즈 개선사항 체크리스트
릴리즈 페이지에는 아직 릴리즈되지 않은(released_in == null) 개선사항들이 체크리스트로 표시됩니다. 체크박스로 포함할 항목을 선택할 수 있습니다.
릴리즈 실행 시 일어나는 일
- package.json 업데이트 —
version필드와lastRelease타임스탬프 갱신 - version_history.json 추가 — 새 릴리즈 항목 기록 (from/to/type/date/note/linked_improvements)
- changelog.json 갱신 — 새 버전의 변경사항 그룹 추가
- improvements.json 업데이트 — 선택된 개선사항의
released_in필드를 새 버전으로 설정
실행 예시
// 요청
POST /vermanager/api/release
{"site":"kiam-prod", "type":"patch", "note":"테스트 자동 릴리즈", "improvements":["imp_4","imp_5"]}
// 응답
{
"ok": true,
"message": "✅ kiam-prod: 1.0.0 → 1.0.1 (patch)",
"old_version": "1.0.0",
"new_version": "1.0.1",
"history_id": "rel_69f557e96c558"
}