Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ on:
push:
branches:
- main
tags:
- "v*"

concurrency:
group: ci-${{ github.ref }}
Expand Down Expand Up @@ -85,11 +87,24 @@ jobs:
./gradlew \
:app:assembleDemoDebug \
:app:assembleProdDebug \
:app:assembleProdRelease \
:benchmark:assemble

release-assemble:
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
- uses: gradle/actions/setup-gradle@v4
- name: Release Assemble
run: ./gradlew :app:assembleProdRelease

coverage:
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) }}
needs: [unit-tests]
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

이 문서는 사용자와 리뷰어가 버전별로 무엇이 바뀌었는지 빠르게 확인할 수 있도록 유지합니다.

## Unreleased

### 개발자 영향

- CI: PR에서는 debug assemble과 benchmark assemble만 실행하고, `prodRelease` assemble과 Kover coverage는 `main`/`v*` tag push에서만 실행하도록 분리했습니다. 릴리스 안전성은 유지하면서 PR 피드백 시간을 줄입니다.

## 1.1.0 - 2026-05-11

### 사용자 영향
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,4 +211,4 @@ seed 생성과 `prod` 런타임 검색은 모두 `opinet.apikey`만 사용합니
```

전체 명령과 상황별 기준은 [검증 매트릭스](docs/verification-matrix.md)를 따릅니다.
GitHub Actions `Android CI`는 `static-analysis`, `unit-tests`, `screenshot-tests`, `assemble`, `coverage` 5개 job으로 실행되며, assemble job은 demo/prod debug, prod release, benchmark assemble을 확인합니다.
GitHub Actions `Android CI`는 PR에서 `static-analysis`, `unit-tests`, `screenshot-tests`, `assemble`을 실행합니다. `assemble`은 demo/prod debug와 benchmark를 확인하고, `main`/`v*` tag push에서만 `release-assemble`과 `coverage`를 추가 실행합니다.
10 changes: 8 additions & 2 deletions docs/verification-matrix.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,15 @@ git diff --check -- README.md AGENTS.md .impeccable.md CHANGELOG.md docs/agent-w

## CI 연결

GitHub Actions는 v1.1 기준 5개 job으로 분리됩니다: `static-analysis` (spotlessCheck + lint), `unit-tests` (전 모듈 단위 테스트), `screenshot-tests` (verifyRoborazziDebug), `assemble` (demo/prod debug+release), `coverage` (koverXmlReport, unit-tests 완료 후 실행). 자세한 내용은 `.github/workflows/android.yml`을 참고합니다.
GitHub Actions는 PR 피드백 시간을 줄이기 위해 PR과 release 성격의 push를 다르게 검증합니다. 자세한 내용은 `.github/workflows/android.yml`을 참고합니다.

`demoRelease`/`prodRelease` assemble은 기본 CI matrix에 포함하지 않습니다. R8/minify 회귀를 모든 PR에서 잡아야 하거나 CI 시간이 감당 가능하다고 판단하면, 이 문서와 `.github/workflows/android.yml`을 같은 변경에서 갱신합니다.
| Trigger | 실행 범위 |
| --- | --- |
| `pull_request` | `static-analysis` (spotlessCheck + lint), `unit-tests` (전 모듈 단위 테스트), `screenshot-tests` (verifyRoborazziDebug), `assemble` (demo/prod debug + benchmark) |
| `push` to `main` | PR 범위 + `release-assemble` (`:app:assembleProdRelease`) + `coverage` (`koverXmlReport`, unit-tests 완료 후 실행) |
| `push` tag `v*` | PR 범위 + `release-assemble` + `coverage` |

`prodRelease` assemble과 coverage는 기본 PR matrix에 포함하지 않습니다. R8/minify 회귀나 coverage report가 PR마다 필요하다고 판단하면, 이 문서와 `.github/workflows/android.yml`을 같은 변경에서 갱신합니다.

## 기기 기반 UI 확인

Expand Down
Loading