-
Notifications
You must be signed in to change notification settings - Fork 1
75 lines (63 loc) · 2.49 KB
/
WSS_PR_builder.yml
File metadata and controls
75 lines (63 loc) · 2.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
name: Android CI
on:
push:
branches: [ "develop", "release_wss", "release/*", "hotfix" ]
pull_request:
branches: [ "develop", "release_wss", "release/*", "hotfix" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache Gradle
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Load Google Service file
env:
DATA: ${{ secrets.GOOGLE_SERVICES_JSON }}
run: echo $DATA | base64 -di > app/google-services.json
- name: Create local.properties
env:
DEBUG_BASE_URL: ${{ secrets.DEBUG_BASE_URL }}
RELEASE_BASE_URL: ${{ secrets.RELEASE_BASE_URL }}
S3_BASE_URL: ${{ secrets.S3_BASE_URL }}
KAKAO_APP_KEY: ${{ secrets.KAKAO_APP_KEY }}
AMPLITUDE_KEY: ${{ secrets.AMPLITUDE_KEY }}
run: |
echo debug.base.url=\"$DEBUG_BASE_URL\" >> ./local.properties
echo release.base.url=\"$RELEASE_BASE_URL\" >> ./local.properties
echo s3.url=\"$S3_BASE_URL\" >> ./local.properties
echo kakao.app.key=\"$KAKAO_APP_KEY\" >> ./local.properties
echo amplitude.key=\"$AMPLITUDE_KEY\" >> ./local.properties
- name: Run Ktlint
if: github.event_name == 'pull_request'
uses: ScaCap/action-ktlint@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
android: true
fail_on_error: true
reporter: github-pr-review
# 2. PR용: 모든 모듈의 로직을 검증하되, 빌드(컴파일)는 앱 중심으로 효율화
- name: Test & Assemble (PR)
if: github.event_name == 'pull_request'
# 1. 모든 모듈의 유닛 테스트 실행 (로직 검증)
# 2. 앱 모듈 디버그 빌드 실행 (의존성 모듈 자동 포함 빌드)
run: ./gradlew testDebugUnitTest :app:assembleDebug --scan
# 3. Merge(Push)용: 전체 검증 (안전장치)
- name: Full Build (Push)
if: github.event_name == 'push'
run: ./gradlew build --scan