Skip to content

Commit 0ebd4e4

Browse files
authored
Merge pull request #11 from leesunghyun/codex/add-release-workflow
Add tag-triggered release workflow for v0.1.0 alpha
2 parents bed547f + 126429b commit 0ebd4e4

5 files changed

Lines changed: 69 additions & 3 deletions

File tree

.github/workflows/android.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
name: Android CI
2+
env:
3+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
24

35
on:
46
pull_request:

.github/workflows/release.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Publish Android ViewModel Migration Lab Release
2+
env:
3+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
4+
5+
on:
6+
push:
7+
tags:
8+
- "v0.1.0-oss-alpha.1"
9+
10+
permissions:
11+
contents: write
12+
13+
jobs:
14+
publish-release:
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout
19+
uses: actions/checkout@v4
20+
21+
- name: Set up Java
22+
uses: actions/setup-java@v4
23+
with:
24+
distribution: temurin
25+
java-version: 17
26+
27+
- name: Make Gradle executable
28+
run: chmod +x ./gradlew
29+
30+
- name: Run unit tests
31+
run: ./gradlew test
32+
33+
- name: Build debug app
34+
run: ./gradlew assembleDebug
35+
36+
- name: Validate release notes
37+
run: |
38+
test -f "docs/release-notes-${{ github.ref_name }}.md" \
39+
|| {
40+
echo "Missing docs/release-notes-${{ github.ref_name }}.md"
41+
exit 1
42+
}
43+
44+
- name: Publish GitHub Release
45+
uses: softprops/action-gh-release@v2
46+
with:
47+
name: "${{ github.ref_name }} - Android ViewModel Migration Lab Alpha"
48+
body_path: "docs/release-notes-${{ github.ref_name }}.md"
49+
files: |
50+
app/build/outputs/apk/debug/app-debug.apk

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
- Added Compose article list/detail screens
1717
- Added Android CI workflow
1818
- Added migration documentation set for modern architecture and state flow
19+
- Added release workflow for tag-triggered `v0.1.0-oss-alpha.1` publish
1920

2021
### Preserved
2122

@@ -29,4 +30,4 @@
2930
## Unreleased
3031

3132
### Added
32-
- Release note preparation for v0.1.0-oss-alpha.1
33+
- `v0.1.0-oss-alpha.1` tag와 GitHub Release 발행은 아직 대기 중입니다.

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Completed in this phase:
1616
- Article domain model, reducer, ViewModel, and tests added
1717
- Compose list/detail screens implemented
1818
- Android CI workflow added
19+
- Release workflow added for `v0.1.0-oss-alpha.1` tag push
1920

2021
Not yet implemented:
2122

@@ -38,7 +39,7 @@ The original project shared an `Article` model between screens:
3839

3940
## Planned modern solution
4041

41-
The future modern version will provide:
42+
The modern version provides:
4243
- Kotlin + Compose UI
4344
- ViewModel
4445
- StateFlow

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,31 @@ gh release create v0.1.0-oss-alpha.1 \
3737
--notes-file docs/release-notes-v0.1.0-oss-alpha.1.md
3838
```
3939

40+
### GitHub Actions 자동 릴리스(권장)
41+
42+
`main`에서 `v0.1.0-oss-alpha.1` 태그를 push하면 `.github/workflows/release.yml`에서 `release` 잡이 자동으로 실행되어:
43+
44+
- `./gradlew test``./gradlew assembleDebug` 재확인
45+
- `docs/release-notes-v0.1.0-oss-alpha.1.md`를 사용한 GitHub Release 발행
46+
- `app-debug.apk`를 릴리스 자산으로 업로드
47+
48+
자동 릴리스는 수동 릴리스 명령을 대체하지 않습니다. 수동과 자동 둘 다 허용됩니다.
49+
4050
## 4) 원클릭 릴리스 스크립트(선택)
4151

4252
```bash
4353
./scripts/release-v0.1.0-oss-alpha.1.sh
4454
```
4555

46-
이 스크립트는 다음을 차례로 수행합니다.
56+
이 스크립트는 다음을 순차로 수행합니다.
4757

4858
- `docs/release-notes-v0.1.0-oss-alpha.1.md` 존재 확인
4959
- `./gradlew test`, `./gradlew assembleDebug` 실행
5060
- `v0.1.0-oss-alpha.1` 태그 생성/푸시
5161
- GitHub Release 생성
5262

63+
자동 릴리스가 필요한 경우에는 별도 단계가 필요하지 않으며, 스크립트는 안전한 수동 대안으로 활용할 수 있습니다.
64+
5365
## 5) 릴리스 제한 범위(1차 Alpha)
5466

5567
- DI(Hilt/Dagger) 미적용

0 commit comments

Comments
 (0)