71 lines
3.0 KiB
Markdown
71 lines
3.0 KiB
Markdown
---
|
|
description: 릴리즈 빌드 및 배포 자동화 가이드 (GitHub CLI 기반)
|
|
---
|
|
|
|
# 🚀 릴리즈 빌드 및 배포 워크플로우
|
|
|
|
이 가이드는 교대링(Shiftring) 프로젝트의 최신 버전을 빌드하고, APK를 배포 저장소(`dakjaba-releases`)에 업로드하며, 버전을 갱신하는 절차를 설명합니다.
|
|
|
|
## // turbo-all
|
|
## 1. 전제 조건
|
|
- **GitHub CLI (gh)**가 설치되어 있고 로그인되어 있어야 함 (`gh auth status`)
|
|
- `release.jks`와 `keystore.properties`가 루트 폴더에 존재해야 함
|
|
|
|
## 2. 배포 단계
|
|
|
|
### 단계 1: 프로젝트 버전 확인 및 갱신
|
|
- `app/build.gradle.kts`의 `versionCode`와 `versionName`을 확인 및 갱신합니다.
|
|
- `version.json`의 정보를 동일하게 맞춥니다.
|
|
- `CHANGELOG.md`에 변경 사항을 기록합니다.
|
|
- `README.md`의 다운로드 링크 및 버전을 갱신합니다.
|
|
|
|
### 단계 2: 릴리즈 빌드 수행
|
|
```powershell
|
|
./gradlew.bat assembleRelease
|
|
```
|
|
- 빌드 결과물은 `app/build/outputs/apk/release/app-release.apk`에 생성됩니다.
|
|
|
|
### 단계 3: APK 서명 확인 (선택 사항)
|
|
- 생성된 APK가 정상적으로 서명되었는지 확인합니다.
|
|
|
|
### 단계 4: 배포 저장소 업데이트 및 릴리즈 생성
|
|
// turbo
|
|
```powershell
|
|
# 1. APK 파일 복사 (배포용 이름으로 변경)
|
|
copy-item "app/build/outputs/apk/release/app-release.apk" "app.apk" -Force
|
|
|
|
# 2. 버전 정보 설정 (현재 버전에 맞춰 수정)
|
|
$VERSION = "v1.0.4"
|
|
|
|
# 3. GitHub Release 생성 (dakjaba-releases 저장소)
|
|
# tip: 이미 존재하는 태그라면 삭제 후 생성하거나 gh release edit 사용
|
|
gh release create $VERSION "app.apk" --title "Shiftring $VERSION" --notes-file "CHANGELOG.md" -R "sanjeok77-tech/dakjaba-releases"
|
|
|
|
# 4. 배포 저장소(dakjaba-releases)의 version.json 및 최신 APK 갱신 (인앱 업데이트용)
|
|
gh repo clone sanjeok77-tech/dakjaba-releases ..\dakjaba-releases-temp
|
|
copy-item "version.json" "..\dakjaba-releases-temp\version.json" -Force
|
|
copy-item "app.apk" "..\dakjaba-releases-temp\app.apk" -Force
|
|
|
|
# 5. README.md 자동 업데이트 (v1.1.1 패턴 기반 교체 예시 - 실제 버전변수로 대체 필요)
|
|
# tip: sed나 powershell replace를 사용하여 README의 vX.X.X 및 다운로드 링크를 갱신합니다.
|
|
(Get-Content README.md) -replace 'v\d+\.\d+\.\d+', "$VERSION" | Set-Content README.md
|
|
(Get-Content ..\dakjaba-releases-temp\README.md) -replace 'v\d+\.\d+\.\d+', "$VERSION" | Set-Content ..\dakjaba-releases-temp\README.md
|
|
|
|
pushd ..\dakjaba-releases-temp
|
|
git add .
|
|
git commit -m "update: $VERSION"
|
|
git push origin main
|
|
popd
|
|
Remove-Item -Recurse -Force ..\dakjaba-releases-temp
|
|
```
|
|
|
|
### 단계 5: 소스 코드 커밋 및 푸시
|
|
```powershell
|
|
git add .
|
|
git commit -m "chore: release $VERSION"
|
|
git push origin main
|
|
```
|
|
|
|
---
|
|
*주의: 배포 저장소(`dakjaba-releases`)는 퍼블릭이며, 코드 저장소(`dakjaba`)는 프라이빗입니다. 배포 시 중요한 키 파일이 배포 저장소에 포함되지 않도록 주의하십시오.*
|