From e348088c74e5d774a77793f629cb72019a89304d Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Fri, 1 Nov 2024 12:49:37 +0900 Subject: [PATCH 1/7] feat: set release docs package, files --- README.md | 6 ++++++ release-flow-docs/Handy/Handy-release-docs.md | 0 release-flow-docs/Soomsil/Soomsil-release-docs.md | 0 release-flow-docs/YDS/YDS-release-docs.md | 0 4 files changed, 6 insertions(+) create mode 100644 release-flow-docs/Handy/Handy-release-docs.md create mode 100644 release-flow-docs/Soomsil/Soomsil-release-docs.md create mode 100644 release-flow-docs/YDS/YDS-release-docs.md diff --git a/README.md b/README.md index d6027a4..abd8d17 100644 --- a/README.md +++ b/README.md @@ -12,3 +12,9 @@ ### 코드 스타일 컨벤션 (Android, Kotlin) + + +### TF별 배포 플로우 +#### [Soomsil 배포 플로우](./release-flow-docs./Soomsil) +#### [YDS 배포 플로우](./release-flow-docs./YDS) +#### [Handy 배포 플로우](./release-flow-docs./Handy) diff --git a/release-flow-docs/Handy/Handy-release-docs.md b/release-flow-docs/Handy/Handy-release-docs.md new file mode 100644 index 0000000..e69de29 diff --git a/release-flow-docs/Soomsil/Soomsil-release-docs.md b/release-flow-docs/Soomsil/Soomsil-release-docs.md new file mode 100644 index 0000000..e69de29 diff --git a/release-flow-docs/YDS/YDS-release-docs.md b/release-flow-docs/YDS/YDS-release-docs.md new file mode 100644 index 0000000..e69de29 From 2210e4ebcf7e752ceaaab16cfafedf510fd7882e Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Fri, 1 Nov 2024 13:13:58 +0900 Subject: [PATCH 2/7] feat: set release docs package, files --- .../Handy/{Handy-release-docs.md => Dokka-release-docs.md} | 0 release-flow-docs/YDS/Stroybook-release-docs.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename release-flow-docs/Handy/{Handy-release-docs.md => Dokka-release-docs.md} (100%) create mode 100644 release-flow-docs/YDS/Stroybook-release-docs.md diff --git a/release-flow-docs/Handy/Handy-release-docs.md b/release-flow-docs/Handy/Dokka-release-docs.md similarity index 100% rename from release-flow-docs/Handy/Handy-release-docs.md rename to release-flow-docs/Handy/Dokka-release-docs.md diff --git a/release-flow-docs/YDS/Stroybook-release-docs.md b/release-flow-docs/YDS/Stroybook-release-docs.md new file mode 100644 index 0000000..e69de29 From b9878698dc14c4c1f5246270d42fd77989a6647f Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Sat, 18 Jan 2025 18:19:37 +0900 Subject: [PATCH 3/7] =?UTF-8?q?feat:=20=EC=A0=84=EC=B2=B4=20release=20docs?= =?UTF-8?q?=20=EC=B4=88=EC=95=88=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- release-flow-docs/YDS/release-docs.md | 118 ++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 release-flow-docs/YDS/release-docs.md diff --git a/release-flow-docs/YDS/release-docs.md b/release-flow-docs/YDS/release-docs.md new file mode 100644 index 0000000..56c5701 --- /dev/null +++ b/release-flow-docs/YDS/release-docs.md @@ -0,0 +1,118 @@ +## Android 팀 배포 플로우 + + + +### 개요 + +Android 팀의 배포 프로세스를 효율적으로 관리하고 모든 팀원이 일관되게 작업할 수 있도록, 배포 플로우를 정리한 문서입니다. + +### 1. 브랜치 전략 + +- `main` branch: 안정된 코드를 유지하며, 최종 배포를 위한 branch + + + +- `develop` branch: 개발 중인 기능을 통합하는 branch + + + +- `feature` branch: 각 기능별로 분리된 branch + - 명명 규칙 : github convention 참고 //TODO 파일 위치 링킹 + + + +### 2. 버전 관리 + +`Semantic Versioning` (SemVer) 규칙 사용 + +`MAJOR`: 주요 변경 사항, 이전 버전과 호환되지 않는 큰 변경이 있을 때 증가 (예: API 변경, 큰 디자인 개편) + +`MINOR`: 새로운 기능이 추가되었지만, 이전 버전과 호환이 유지될 때 증가 + +`PATCH`: 버그 수정이나 사소한 변경 등, 호환성을 해치지 않는 수정 사항에 대해 증가 + +``` +1.0.0 → 첫 번째 정식 출시 버전. + +1.1.0 → 새로운 기능이 추가되었을 때. + +1.1.1 → 버그가 수정되었을 때. +``` + + +`versionCode`라는 정수 값을 사용하여 각 버전을 고유하게 식별한다. + +이는 Play Store에서 업데이트를 관리하는 데 사용되며, 항상 증가해야 한다. + +``` +versionCode=1 (초기 릴리스) + +versionCode=2 (첫 번째 업데이트) +``` +version.properties 또는 build.gradle 파일에서 관리된다. + +``` +versionCode 2 +versionName "1.1.0" +``` + + +자세한 설명은 [공식문서](https://developer.android.com/studio/publish/versioning?hl=ko#versioningsettings)를 참고해주세요. + + + +### 3. 배포 준비 + + + +1. Develop 브랜치에서 Release 브랜치 생성 + +2. 릴리스 관련 설정 업데이트 (버전 이름, 버전 코드 등) + +3. Release 브랜치에서 서명된 APK 생성 및 빌드 확인 + +4. 스토어 등록 정보 수정 + +5. versionName 및 version properties 파일에서 버전 정보 수정 + +6. 스토어 업로드 및 Github Actions 실행 + + 6.1. `스토어 업로드 및 Github Actions 실행`은 수동으로도 가능하며, 자동으로 관리를 원한다면 [Soomsil 배포 플로우](./release-flow-docs./Soomsil) 확인 + +7. 스토어 등록 후 Main 브랜치에 병합 + +8. Main 브랜치에서 태그 생성 및 푸시 + +9. GitHub Release 태그 생성 및 관리 + + + +#### GitHub Release 태그 생성 시 과정 + + + +1. **Tag version**: v버전명 형식으로 작성 (예: v1.2.3) + + + +2. **Target**: 릴리스할 브랜치나 커밋 선택 (보통 main) + + + +3. **Release title**: 릴리스 이름 작성 (예: Release v1.2.3) + + + +4. **Description**: 변경 사항 및 릴리스 노트 추가 + + + + + + + +### 4. 배포 후 모니터링 + + + +배포 후 Google Play Console 및 Crashlytics를 통해 에러 모니터링할 수 있습니다. \ No newline at end of file From 077704b60bd379f36e80e06f777b49c33a7eb558 Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Sat, 18 Jan 2025 18:30:16 +0900 Subject: [PATCH 4/7] =?UTF-8?q?feat:=20dokka=20release=20docs=20=EC=B4=88?= =?UTF-8?q?=EC=95=88=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- release-flow-docs/Handy/Dokka-release-docs.md | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/release-flow-docs/Handy/Dokka-release-docs.md b/release-flow-docs/Handy/Dokka-release-docs.md index e69de29..064fad2 100644 --- a/release-flow-docs/Handy/Dokka-release-docs.md +++ b/release-flow-docs/Handy/Dokka-release-docs.md @@ -0,0 +1,83 @@ +### 현재 Handy Docs Link + +[Handy](https://yourssu.github.io/Handy-Android/docs/0.x/) + +--- + +### Dokka 배포 방법 +Handy에서 Dokka를 통한 코드 문서화 진행 과정 시의 기록입니다. 참고해주세요. + +1. **gradle 세팅** + +```yaml + jetbrains-dokka = { id = "org.jetbrains.dokka", version = "1.9.20" } + + plugins { + alias(libs.plugins.jetbrains.dokka) + } +``` + +2. **yml 파일 생성** + +```yaml +- .github + - workflow + -release.yml +``` + +3. **yml 코드 작성 Workflow file (release.yml)** + +```yaml +# workflow 파일명입니다. +name: release + +# 워크플로우가 언제 실행될지 시점 +on: + push: + branches: + - main # main branch에 merge 또는 push될 때 실행 + +jobs: + release: + # 실행 환경 + runs-on: ubuntu-latest + + # steps: 작업 수행 단계입니다. + steps: + # echo + - run: echo "Starting Release" + + # 현재 사용 중인 Java 버전은 11 그러나 + # Android Gradle Plugin(com.android.application 버전 8.5.0)은 Java 17 이상을 필요 + name: set up JDK 17 + - uses: actions/setup-java@v4 + with: + java-version: "17" + distribution: "temurin" #JDK 배포판(distribution)을 temurin로 + + # gradlew은 파일의 루트 디렉토리에 위치해야 함 + # checkout을 하지 않으면 gradlew을 찾지 못할 수 있음 + name: checkout + - uses: actions/checkout@v4 # v4 사용 + + # 파일 실행 권한 부여 + name: permissions + - run: chmod +x gradlew + + # Dokka를 사용하여 HTML 파일을 생성 + name: Build Documentation + - run: ./gradlew dokkaHtml + + # 생성된 HTML 파일을 gh-pages 브랜치에 배포 + name: Deploy Documentation to GitHub Pages + - uses: JamesIves/github-pages-deploy-action@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + branch: gh-pages # 배포 브랜치 + folder: compose/build/dokka/html # 배포하고자 하는 모듈의 html주소 + target-folder: docs/0.x/ # 배포될 파일이 저장될 위치 +``` + +4. **배포** + + [참고자료](https://velog.io/@cmsong111/Dokka%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EC%BD%94%EB%93%9C-%EB%AC%B8%EC%84%9C%ED%99%94-with-%EB%B0%B0%ED%8F%AC) \ No newline at end of file From f53557b279b58c7624e64b921f9920c471394a31 Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Sat, 18 Jan 2025 18:34:36 +0900 Subject: [PATCH 5/7] =?UTF-8?q?feat:=20=EC=9D=BC=EB=B0=98=EC=A0=81?= =?UTF-8?q?=EC=9D=B8=20=EB=B0=B0=ED=8F=AC=20=ED=94=8C=EB=A1=9C=EC=9A=B0=20?= =?UTF-8?q?mermaid=20=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- release-flow-docs/{YDS => }/release-docs.md | 26 ++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) rename release-flow-docs/{YDS => }/release-docs.md (87%) diff --git a/release-flow-docs/YDS/release-docs.md b/release-flow-docs/release-docs.md similarity index 87% rename from release-flow-docs/YDS/release-docs.md rename to release-flow-docs/release-docs.md index 56c5701..5258f18 100644 --- a/release-flow-docs/YDS/release-docs.md +++ b/release-flow-docs/release-docs.md @@ -63,7 +63,31 @@ versionName "1.1.0" ### 3. 배포 준비 - +#### 일반적인 배포 플로우 +```mermaid +--- +title: 일반적인 배포 플로우 +--- +gitGraph + commit + commit + branch develop + commit + branch featureA + checkout featureA + commit + commit + checkout develop + merge featureA + commit + branch deploy + commit tag: "for QA" + checkout develop + branch release/1.3.5 + commit tag: "add 1.3.5.txt" + checkout main + merge release/1.3.5 tag: "run deploy workflow" +``` 1. Develop 브랜치에서 Release 브랜치 생성 From d9e8f781b7dc37ac639d9bda173ed0acaa3cb29a Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Sat, 18 Jan 2025 18:36:34 +0900 Subject: [PATCH 6/7] =?UTF-8?q?feat:=20=ED=8C=A8=ED=82=A4=EC=A7=95=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- release-flow-docs/Soomsil/Soomsil-release-docs.md | 0 release-flow-docs/YDS/Stroybook-release-docs.md | 0 release-flow-docs/YDS/YDS-release-docs.md | 0 .../{Handy/Dokka-release-docs.md => dokka-release-docs.md} | 0 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 release-flow-docs/Soomsil/Soomsil-release-docs.md delete mode 100644 release-flow-docs/YDS/Stroybook-release-docs.md delete mode 100644 release-flow-docs/YDS/YDS-release-docs.md rename release-flow-docs/{Handy/Dokka-release-docs.md => dokka-release-docs.md} (100%) diff --git a/release-flow-docs/Soomsil/Soomsil-release-docs.md b/release-flow-docs/Soomsil/Soomsil-release-docs.md deleted file mode 100644 index e69de29..0000000 diff --git a/release-flow-docs/YDS/Stroybook-release-docs.md b/release-flow-docs/YDS/Stroybook-release-docs.md deleted file mode 100644 index e69de29..0000000 diff --git a/release-flow-docs/YDS/YDS-release-docs.md b/release-flow-docs/YDS/YDS-release-docs.md deleted file mode 100644 index e69de29..0000000 diff --git a/release-flow-docs/Handy/Dokka-release-docs.md b/release-flow-docs/dokka-release-docs.md similarity index 100% rename from release-flow-docs/Handy/Dokka-release-docs.md rename to release-flow-docs/dokka-release-docs.md From 0defc51a708cb570363e6ca13abdf22a5c2f8a44 Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Sat, 18 Jan 2025 18:41:30 +0900 Subject: [PATCH 7/7] =?UTF-8?q?feat:=20=EA=B0=9C=ED=96=89=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- release-flow-docs/dokka-release-docs.md | 73 +++++++++++++------------ 1 file changed, 39 insertions(+), 34 deletions(-) diff --git a/release-flow-docs/dokka-release-docs.md b/release-flow-docs/dokka-release-docs.md index 064fad2..27fd969 100644 --- a/release-flow-docs/dokka-release-docs.md +++ b/release-flow-docs/dokka-release-docs.md @@ -14,15 +14,15 @@ Handy에서 Dokka를 통한 코드 문서화 진행 과정 시의 기록입니 plugins { alias(libs.plugins.jetbrains.dokka) - } + } ``` 2. **yml 파일 생성** ```yaml - .github - - workflow - -release.yml + - workflow + -release.yml ``` 3. **yml 코드 작성 Workflow file (release.yml)** @@ -39,39 +39,44 @@ on: jobs: release: - # 실행 환경 - runs-on: ubuntu-latest - - # steps: 작업 수행 단계입니다. - steps: - # echo - - run: echo "Starting Release" - - # 현재 사용 중인 Java 버전은 11 그러나 - # Android Gradle Plugin(com.android.application 버전 8.5.0)은 Java 17 이상을 필요 - name: set up JDK 17 - - uses: actions/setup-java@v4 - with: + # 실행 환경 + runs-on: ubuntu-latest + + # steps: 작업 수행 단계입니다. + + steps: + + # echo + - run: echo "Starting Release" + + + # 현재 사용 중인 Java 버전은 11 그러나 + # Android Gradle Plugin(com.android.application 버전 8.5.0)은 Java 17 이상을 필요 + + name: set up JDK 17 + - uses: actions/setup-java@v4 + with: java-version: "17" distribution: "temurin" #JDK 배포판(distribution)을 temurin로 - - # gradlew은 파일의 루트 디렉토리에 위치해야 함 - # checkout을 하지 않으면 gradlew을 찾지 못할 수 있음 - name: checkout - - uses: actions/checkout@v4 # v4 사용 - - # 파일 실행 권한 부여 - name: permissions - - run: chmod +x gradlew - - # Dokka를 사용하여 HTML 파일을 생성 - name: Build Documentation - - run: ./gradlew dokkaHtml - - # 생성된 HTML 파일을 gh-pages 브랜치에 배포 - name: Deploy Documentation to GitHub Pages - - uses: JamesIves/github-pages-deploy-action@v4 - with: + + # gradlew은 파일의 루트 디렉토리에 위치해야 함 + # checkout을 하지 않으면 gradlew을 찾지 못할 수 있음 + name: checkout + - uses: actions/checkout@v4 # v4 사용 + + # 파일 실행 권한 부여 + name: permissions + - run: chmod +x gradlew + + # Dokka를 사용하여 HTML 파일을 생성 + name: Build Documentation + - run: ./gradlew dokkaHtml + + # 생성된 HTML 파일을 gh-pages 브랜치에 배포 + name: Deploy Documentation to GitHub Pages + - uses: JamesIves/github-pages-deploy-action@v4 + + with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages # 배포 브랜치 folder: compose/build/dokka/html # 배포하고자 하는 모듈의 html주소