Skip to content

[GAMSS-39] chore: CI 파이프라인 및 detekt 정적 분석 도구 추가#2

Merged
seunghee17 merged 2 commits into
developfrom
chore/ci-setup
Jul 16, 2026
Merged

[GAMSS-39] chore: CI 파이프라인 및 detekt 정적 분석 도구 추가#2
seunghee17 merged 2 commits into
developfrom
chore/ci-setup

Conversation

@soyeonLee126

@soyeonLee126 soyeonLee126 commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

작업 개요

프로젝트에 CI 파이프라인을 도입하고 정적 분석 도구(detekt)를 붙였습니다. PR 시점에 코드 스타일/포맷, Android lint, 유닛 테스트, 릴리즈 빌드가 자동으로 검증되도록 하여 develop 브랜치 품질을 지키는 것이 목적입니다.

작업 유형

  • feat: 새 기능
  • fix: 버그 수정
  • refactor: 리팩토링 (동작 변경 없음)
  • build: 빌드/의존성 설정
  • chore: 기타 (문서, 설정 등)
  • test: 테스트 추가/수정

변경 사항

  • GitHub Actions CI 워크플로우 추가 (.github/workflows/ci.yml)
    • 트리거: develop 대상 PR / develop·main push / 수동 실행(workflow_dispatch)
    • detekt · Android lint · unit test · release 빌드를 매트릭스로 병렬 검사
    • concurrency로 동일 ref 중복 실행 취소, 최소 권한(contents: read, SARIF용 security-events: write)
  • detekt + detekt-formatting(ktlint 규칙) 전 모듈 적용 (build.gradle.kts, gradle/libs.versions.toml)
  • detekt 설정 추가 (config/detekt/detekt.yml): Compose @Composable 네이밍 예외, formatting 규칙 활성화
  • detekt SARIF를 병합해 GitHub 코드 스캐닝에 업로드 (업로드 실패는 게이트를 막지 않도록 continue-on-error)
  • core의 Result 래퍼(AppResult.of)에 의도된 광범위 catch를 위한 @Suppress("TooGenericExceptionCaught") 추가

관련 이슈

  • 해당 없음

관련 작업 (Notion)

스크린샷 / 동작 화면

UI 변경 없음 (CI/빌드 설정 작업)

체크리스트

  • base 브랜치가 develop으로 설정되어 있다
  • 로컬 빌드 및 실행을 확인했다 (detekt/lint/test/assembleRelease 모두 통과)
  • 커밋 메시지가 컨벤션(feat:, fix: 등)을 따른다
  • 불필요한 로그/주석/디버그 코드를 제거했다
  • 리뷰어가 이해할 수 있도록 설명을 작성했다

리뷰 요청 사항

  • 검증 완료 내역
    • Positive: 실제 GitHub 러너에서 4개 잡 모두 green (run 확인)
    • Negative: test/detekt/lint 각 게이트에 위반을 주입해 해당 잡이 정확히 red가 되는지 확인 (게이트가 no-op이 아님)
    • SARIF: 코드 스캐닝에 detekt 분석이 실제 업로드됨을 확인
  • detekt 규칙 강도(config/detekt/detekt.yml)와 CI 검사 범위가 팀 기준에 맞는지 봐주세요. 규칙은 이후 조정 가능합니다.
  • 리뷰어는 CODEOWNERS에 따라 자동 지정됩니다.

- GitHub Actions CI 워크플로우 추가 (develop PR / develop·main push / 수동 실행 트리거)
  - detekt, Android lint, unit test, release 빌드를 매트릭스로 병렬 검사
- detekt + detekt-formatting(ktlint 규칙) 전 모듈 적용
- detekt 설정 추가: Compose @composable 네이밍 예외, formatting 규칙 활성화
- detekt SARIF를 병합해 GitHub 코드 스캐닝에 업로드 (업로드 실패는 게이트 비차단)
@soyeonLee126
soyeonLee126 requested a review from seunghee17 as a code owner July 16, 2026 05:19
- 설명 주석 제거 (build.gradle.kts, ci.yml, detekt.yml, AppResult.kt)
- detekt 플러그인 id를 버전 카탈로그에서 단일 소싱
- 미사용 DetektCreateBaselineTask 설정 제거 (jvmTarget 중복 해소)
- detekt.yml에서 중복된 style.MaxLineLength 규칙 제거
@soyeonLee126 soyeonLee126 changed the title chore: CI 파이프라인 및 detekt 정적 분석 도구 추가 [GAMSS-39] chore: CI 파이프라인 및 detekt 정적 분석 도구 추가 Jul 16, 2026
@seunghee17
seunghee17 merged commit c458956 into develop Jul 16, 2026
5 checks passed
@soyeonLee126
soyeonLee126 deleted the chore/ci-setup branch July 21, 2026 06:44
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.

2 participants