- 릴리즈 생성 절차 문서화 - API 엔드포인트 및 예시 명령어 정리 - 버전 업데이트 체크리스트 포함 - 인증 정보 및 주의사항 기록 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
4.3 KiB
4.3 KiB
Gitea 릴리즈 작업 가이드
ShiftRing 프로젝트 Gitea 릴리즈 자동화 문서 저장소: https://git.webpluss.net/sanjeok77/ShiftRing
🔐 인증 정보
Personal Access Token (PAT)
- 위치:
.env.local파일 - 형식:
e3b515eaa0a6683c921ca3bf718e281ed30a6075 - 사용자:
sanjeok77
인증 헤더
-u "sanjeok77:TOKEN"
📋 릴리즈 생성 절차
1. 버전 업데이트 (3곳)
1.1 app/build.gradle.kts - 앱 날부 버전
defaultConfig {
versionCode = 1125 // ← 이전: 1124
versionName = "1.2.5" // ← 이전: "1.2.4"
}
1.2 version.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)
엔드포인트
POST https://git.webpluss.net/api/v1/repos/sanjeok77/ShiftRing/releases
요청 예시
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"
}'
응답 예시
{
"id": 30,
"tag_name": "v1.2.5",
"upload_url": "https://git.webpluss.net/api/v1/repos/sanjeok77/ShiftRing/releases/30/assets"
}
3. APK 빌드
릴리즈 빌드
./gradlew :app:assembleRelease
출력 경로
app/build/outputs/apk/release/app-release.apk
서명 설정 (keystore.properties)
storePassword=비밀번호
keyAlias=별칭
keyPassword=비밀번호
storeFile=../release.jks
4. APK 업로드 (API)
엔드포인트
POST https://git.webpluss.net/api/v1/repos/sanjeok77/ShiftRing/releases/{release_id}/assets
요청 예시
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"
응답 예시
{
"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 업데이트
{
"apkUrl": "https://git.webpluss.net/attachments/{UUID}"
}
주의: releases/download/v1.2.5/app.apk 형식이 아닌 attachments/{UUID} 형식 사용
🔧 유틸리티 명령어
릴리즈 조회
curl -s -u "sanjeok77:TOKEN" \
"https://git.webpluss.net/api/v1/repos/sanjeok77/ShiftRing/releases" | jq '.[].tag_name'
특정 릴리즈 조회
curl -s -u "sanjeok77:TOKEN" \
"https://git.webpluss.net/api/v1/repos/sanjeok77/ShiftRing/releases/30"
첨부파일 삭제
curl -s -u "sanjeok77:TOKEN" \
-X DELETE \
"https://git.webpluss.net/api/v1/repos/sanjeok77/ShiftRing/releases/30/assets/{asset_id}"
⚠️ 주의사항
- 버전 일치:
build.gradle.kts,version.json, Git 태그 3곳 모두 동일 버전 사용 - APK 파일명: 반드시
app.apk로 업로드 (클리어 이름 지정) - UUID: 업로드 후 반환된 UUID를
version.json에 반영 - 브랜치:
- 개발:
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 | 버그 수정 릴리즈 |