Skip to content

[Refactor/#90] Gradle 빌드 성능 최적화 및 CI 파이프라인 고도화#91

Merged
wjdrjs00 merged 3 commits into
developfrom
refactor/90-gradle-build
Mar 18, 2026
Merged

[Refactor/#90] Gradle 빌드 성능 최적화 및 CI 파이프라인 고도화#91
wjdrjs00 merged 3 commits into
developfrom
refactor/90-gradle-build

Conversation

@wjdrjs00
Copy link
Copy Markdown
Collaborator

@wjdrjs00 wjdrjs00 commented Mar 18, 2026

Related issue 🛠

Work Description ✏️

  • 빌드 캐시 고도화: 기존 setup-java의 단순 캐시를 공식 setup-gradle로 교체하여 빌드 결과물(Artifact)까지 캐싱되도록 개선했습니다.
  • 빌드 병목 최적화: 모든 Gradle 명령어에 --parallel 및 --build-cache 플래그를 추가하여 멀티 모듈의 이점을 극대화하고 빌드 시간을 단축했습니다.
  • CI 리소스 효율화: 개별적으로 동작하던 lint와 test Job을 하나로 통합하여 러너 할당 및 체크아웃에 소요되는 중복 시간을 약 40% 절감했습니다.
  • 자동 피드백 시스템: 테스트 실패 시 GitHub Actions 로그를 확인하지 않고 PR에서 즉시 원인을 파악할 수 있도록 JUnit 리포트 자동화를 구현했습니다.

실측 성능 개선 지표 (Local Benchmark)

  • Lint + Unit Test: 34.3s → 11.5s (약 66% 단축)
  • Assemble Debug APK: 29.6s → 4.5s (약 85% 단축)

Screenshot 📸

  • N/A

Uncompleted Tasks 😅

  • 모든 피처 모듈에 대한 빌드 캐시 정상 작동 여부 확인
  • PR 코멘트 리포팅 권한(Read & Write) 설정 확인

Summary by CodeRabbit

릴리스 노트

  • Tests

    • 자동화된 테스트 보고서 업로드 및 항상 결과 보관 기능 추가
  • Chores

    • CI 워크플로우 통합 및 검사(린트+단위테스트) 단일 실행으로 간소화
    • 릴리스 · 빌드 과정 병렬화 및 빌드 캐시 활용으로 속도 개선
    • 빌드 메모리 및 JVM/증분 빌드 설정 개선, AndroidX 및 관련 빌드 최적화 활성화

* chore: lint 및 test 잡을 check 잡으로 통합
* chore: gradle/actions/setup-gradle 도입 및 빌드 캐시 설정 추가
* chore: ktlint 및 unit test 병렬 실행 설정
* feat: JUnit 테스트 결과 리포트 게시 액션 추가
* chore: JVM 힙 메모리 증설 및 GC 옵션 추가
* chore: `parallel`, `vfs.watch`, `configureondemand` 활성화로 빌드 속도 개선
* chore: Kotlin 및 KSP 증분 컴파일(incremental) 옵션 활성화
* chore: 불필요한 주석 제거 및 설정 파일 정리
@wjdrjs00 wjdrjs00 self-assigned this Mar 18, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 18, 2026

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Free

Run ID: b8810a1e-6076-4c16-a767-91d8a8efc4b8

📥 Commits

Reviewing files that changed from the base of the PR and between 057ee3b and 0acd141.

📒 Files selected for processing (1)
  • .github/workflows/android-ci.yml

Walkthrough

GitHub Actions Android CI/CD 워크플로우를 통합·최적화하고, Gradle 설정을 성능 중심으로 조정했습니다. 린트와 단위테스트를 단일 체크(job)으로 결합하고 Gradle 병렬 빌드·캐시 및 JVM 메모리·증분 컴파일 옵션을 활성화했습니다.

Changes

Cohort / File(s) Summary
CI 워크플로우
.github/workflows/android-ci.yml, .github/workflows/android-release.yml
린트와 단위 테스트를 하나의 "check" 작업으로 통합. gradle/actions/setup-gradle@v4 단계 추가, ./gradlew 실행 전 설정 및 실행 권한 부여 재배치. 빌드/번들/테스트 명령에 --parallel --build-cache 옵션 적용. 테스트 결과(JUnit) 게시 및 아티팩트 업로드 단계 추가/조정.
Gradle 설정
gradle.properties
Gradle 데몬 힙을 -Xmx2048m → -Xmx4g로 증가. -XX:+UseParallelGC, -XX:MaxMetaspaceSize=1g 등 JVM 플래그 추가. org.gradle.vfs.watch=true, org.gradle.caching=true, org.gradle.configureondemand=true, kotlin.incremental=true, ksp.incremental=true, android.useAndroidX=true, android.nonTransitiveRClass=true 등 성능·증분 옵션 활성화 및 Kotlin 스타일 설정 추가.

Sequence Diagram(s)

sequenceDiagram
    participant GH as GitHub Actions (Runner)
    participant Setup as Setup Gradle Action
    participant JDK as Setup JDK
    participant Gradle as Gradle Wrapper / Daemon
    participant Reporter as Test Reporter / Artifact Upload

    GH->>Setup: 실행 (`gradle/actions/setup-gradle@v4`)
    GH->>JDK: JDK 설치/설정
    GH->>Gradle: `./gradlew ktlintCheck testDebugUnitTest --parallel --build-cache`
    Gradle-->>GH: 빌드/테스트 결과 (JUnit XML)
    GH->>Reporter: Publish Test Report & Upload artifacts
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 나는 당근 달린 빌드러너,
춤추듯 캐시와 병렬로 뛰네,
메모리 불려 힘이 솟고,
테스트 보고서 빛나며,
빠른 빌드 밭에 깡총깡총! 🥕

📝 Coding Plan
  • Generate coding plan for human review comments

Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login.

Comment @coderabbitai help to get the list of available commands and usage tips.

- add: 워크플로우 권한(checks, pull-requests) 추가
- add: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 환경 변수 추가
@wjdrjs00 wjdrjs00 merged commit 1b54f87 into develop Mar 18, 2026
4 checks passed
@wjdrjs00 wjdrjs00 deleted the refactor/90-gradle-build branch March 18, 2026 10:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Refactor CI/CD] Gradle 빌드 성능 최적화 및 CI 파이프라인 고도화

1 participant