Skip to content

Commit 1021513

Browse files
authored
Merge pull request #12 from leesunghyun/codex/add-release-script
Add v0.1.0 alpha release helper script
2 parents d375400 + 2d4f9b6 commit 1021513

2 files changed

Lines changed: 65 additions & 1 deletion

File tree

docs/release-guide-v0.1.0-oss-alpha.1.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
## 1) Prerequisites
66

77
- PR #9(`Prepare v0.1.0 OSS alpha release notes`)가 main에 머지되어야 함
8+
- PR #11(`Add tag-triggered release workflow for v0.1.0 alpha`)가 main에 머지되어야 함
89
- `README.md`, `CHANGELOG.md`에 릴리스 항목이 반영되어 있어야 함
910
- CI(`./gradlew test`, `./gradlew assembleDebug`)가 통과해야 함
1011

@@ -36,7 +37,20 @@ gh release create v0.1.0-oss-alpha.1 \
3637
--notes-file docs/release-notes-v0.1.0-oss-alpha.1.md
3738
```
3839

39-
## 4) 릴리스 제한 범위(1차 Alpha)
40+
## 4) 원클릭 릴리스 스크립트(선택)
41+
42+
```bash
43+
./scripts/release-v0.1.0-oss-alpha.1.sh
44+
```
45+
46+
이 스크립트는 다음을 차례로 수행합니다.
47+
48+
- `docs/release-notes-v0.1.0-oss-alpha.1.md` 존재 확인
49+
- `./gradlew test`, `./gradlew assembleDebug` 실행
50+
- `v0.1.0-oss-alpha.1` 태그 생성/푸시
51+
- GitHub Release 생성
52+
53+
## 5) 릴리스 제한 범위(1차 Alpha)
4054

4155
- DI(Hilt/Dagger) 미적용
4256
- Navigation 라이브러리 미적용
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
TAG="v0.1.0-oss-alpha.1"
5+
RELEASE_NOTES="docs/release-notes-${TAG}.md"
6+
RELEASE_NAME="${TAG} - Android ViewModel Migration Lab Alpha"
7+
8+
create_release() {
9+
gh release create "$TAG" \
10+
--title "$RELEASE_NAME" \
11+
--notes-file "$RELEASE_NOTES"
12+
}
13+
14+
if ! command -v gh >/dev/null 2>&1; then
15+
echo "gh CLI is required: https://cli.github.com/"
16+
exit 1
17+
fi
18+
19+
if ! command -v git >/dev/null 2>&1; then
20+
echo "git is required"
21+
exit 1
22+
fi
23+
24+
if [ ! -f "$RELEASE_NOTES" ]; then
25+
echo "Missing release notes: $RELEASE_NOTES"
26+
exit 1
27+
fi
28+
29+
git fetch --all --prune
30+
git checkout main
31+
git pull origin main
32+
33+
./gradlew test
34+
./gradlew assembleDebug
35+
36+
if git rev-parse --verify "$TAG" >/dev/null 2>&1; then
37+
echo "Tag $TAG already exists locally."
38+
if gh release view "$TAG" >/dev/null 2>&1; then
39+
echo "Release $TAG already exists."
40+
exit 0
41+
fi
42+
echo "Tag exists but release is missing. Creating release for existing tag."
43+
create_release
44+
exit 0
45+
fi
46+
47+
git tag "$TAG"
48+
git push origin "$TAG"
49+
50+
create_release

0 commit comments

Comments
 (0)