diff --git a/GITEA_RELEASE_GUIDE.md b/GITEA_RELEASE_GUIDE.md new file mode 100644 index 0000000..ac2406f --- /dev/null +++ b/GITEA_RELEASE_GUIDE.md @@ -0,0 +1,206 @@ +# Gitea 릴리즈 작업 가이드 + +> ShiftRing 프로젝트 Gitea 릴리즈 자동화 문서 +> 저장소: https://git.webpluss.net/sanjeok77/ShiftRing + +--- + +## 🔐 인증 정보 + +**Personal Access Token (PAT)** +- 위치: `.env.local` 파일 +- 형식: `e3b515eaa0a6683c921ca3bf718e281ed30a6075` +- 사용자: `sanjeok77` + +**인증 헤더** +```bash +-u "sanjeok77:TOKEN" +``` + +--- + +## 📋 릴리즈 생성 절차 + +### 1. 버전 업데이트 (3곳) + +#### 1.1 `app/build.gradle.kts` - 앱 날부 버전 +```kotlin +defaultConfig { + versionCode = 1125 // ← 이전: 1124 + versionName = "1.2.5" // ← 이전: "1.2.4" +} +``` + +#### 1.2 `version.json` - 서버 버전 정보 +```json +{ + "versionCode": 1125, + "versionName": "1.2.5", + "apkUrl": "https://git.webpluss.net/attachments/{UUID}", + "changelog": "v1.2.5: 변경사항 요약", + "forceUpdate": false +} +``` + +#### 1.3 Git 태그 및 릴리즈 +- 태그: `v1.2.5` +- 브랜치: `dev` (개발) → `main` (배포) + +--- + +### 2. 릴리즈 생성 (API) + +**엔드포인트** +```bash +POST https://git.webpluss.net/api/v1/repos/sanjeok77/ShiftRing/releases +``` + +**요청 예시** +```bash +curl -X POST \ + -H "Content-Type: application/json" \ + -u "sanjeok77:TOKEN" \ + "https://git.webpluss.net/api/v1/repos/sanjeok77/ShiftRing/releases" \ + -d '{ + "tag_name": "v1.2.5", + "name": "v1.2.5 - 릴리즈 제목", + "body": "## 변경사항\n\n- 기능1\n- 기능2", + "prerelease": false, + "target_commitish": "dev" + }' +``` + +**응답 예시** +```json +{ + "id": 30, + "tag_name": "v1.2.5", + "upload_url": "https://git.webpluss.net/api/v1/repos/sanjeok77/ShiftRing/releases/30/assets" +} +``` + +--- + +### 3. APK 빌드 + +**릴리즈 빌드** +```bash +./gradlew :app:assembleRelease +``` + +**출력 경로** +``` +app/build/outputs/apk/release/app-release.apk +``` + +**서명 설정** (`keystore.properties`) +```properties +storePassword=비밀번호 +keyAlias=별칭 +keyPassword=비밀번호 +storeFile=../release.jks +``` + +--- + +### 4. APK 업로드 (API) + +**엔드포인트** +```bash +POST https://git.webpluss.net/api/v1/repos/sanjeok77/ShiftRing/releases/{release_id}/assets +``` + +**요청 예시** +```bash +curl -X POST \ + -u "sanjeok77:TOKEN" \ + -H "Content-Type: multipart/form-data" \ + -F "attachment=@app/build/outputs/apk/release/app-release.apk" \ + "https://git.webpluss.net/api/v1/repos/sanjeok77/ShiftRing/releases/30/assets?name=app.apk" +``` + +**응답 예시** +```json +{ + "id": 37, + "name": "app.apk", + "size": 5236988, + "browser_download_url": "https://git.webpluss.net/attachments/b8f53c11-743f-416c-87ae-bd478c781abf" +} +``` + +--- + +### 5. version.json 업데이트 + +**APK URL 업데이트** +```json +{ + "apkUrl": "https://git.webpluss.net/attachments/{UUID}" +} +``` + +**주의**: `releases/download/v1.2.5/app.apk` 형식이 아닌 `attachments/{UUID}` 형식 사용 + +--- + +## 🔧 유틸리티 명령어 + +### 릴리즈 조회 +```bash +curl -s -u "sanjeok77:TOKEN" \ + "https://git.webpluss.net/api/v1/repos/sanjeok77/ShiftRing/releases" | jq '.[].tag_name' +``` + +### 특정 릴리즈 조회 +```bash +curl -s -u "sanjeok77:TOKEN" \ + "https://git.webpluss.net/api/v1/repos/sanjeok77/ShiftRing/releases/30" +``` + +### 첨부파일 삭제 +```bash +curl -s -u "sanjeok77:TOKEN" \ + -X DELETE \ + "https://git.webpluss.net/api/v1/repos/sanjeok77/ShiftRing/releases/30/assets/{asset_id}" +``` + +--- + +## ⚠️ 주의사항 + +1. **버전 일치**: `build.gradle.kts`, `version.json`, Git 태그 3곳 모두 동일 버전 사용 +2. **APK 파일명**: 반드시 `app.apk`로 업로드 (클리어 이름 지정) +3. **UUID**: 업로드 후 반환된 UUID를 `version.json`에 반영 +4. **브랜치**: + - 개발: `dev` 브랜치에 커밋 + - 배포: `main` 브랜치에 cherry-pick + +--- + +## 📁 관련 파일 + +| 파일 | 설명 | +|------|------| +| `app/build.gradle.kts` | 앱 날부 버전 설정 | +| `version.json` | 서버 버전 정보 | +| `keystore.properties` | 서명 키 설정 | +| `release.jks` | 서명 키스토어 | +| `.env.local` | API 토큰 저장 | + +--- + +## 📝 변경 이력 + +| 날짜 | 버전 | 작업 | +|------|------|------| +| 2026-02-28 | v1.2.5 | 알람 시스템 단순화 릴리즈 | +| 2026-02-28 | v1.2.4 | 버그 수정 릴리즈 | + +--- + +## 🔗 참고 링크 + +- 릴리즈 페이지: https://git.webpluss.net/sanjeok77/ShiftRing/releases +- API 문서: https://git.webpluss.net/api/swagger +- Swagger UI: https://git.webpluss.net/api/swagger#/repository/repoCreateRelease diff --git a/version.json b/version.json index 21ebc59..c0177ba 100644 --- a/version.json +++ b/version.json @@ -1,7 +1,7 @@ { "versionCode": 1125, "versionName": "1.2.5", - "apkUrl": "https://git.webpluss.net/attachments/332fa92f-e142-46f4-9a67-2568fa4130db", + "apkUrl": "https://git.webpluss.net/sanjeok77/ShiftRing/releases/download/v1.2.5/app.apk", "changelog": "v1.2.5: 알람 시스템 단순화 - 삭제된 알람 버그 수정", "forceUpdate": false }