-
Notifications
You must be signed in to change notification settings - Fork 0
93 lines (78 loc) · 2.96 KB
/
android_ci.yml
File metadata and controls
93 lines (78 loc) · 2.96 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
name: Clody CI
# 언제 동작할지 설정
on:
pull_request:
branches: [ develop ]
paths:
- 'app/**' # app 모듈 내부 변경
- 'build.gradle' # 최상위 build.gradle
- '**/*.kt' # 모든 Kotlin 파일 변경
# 공통 작업 디렉토리 설정
defaults:
run:
working-directory: ./
# Job 정의
jobs:
build:
runs-on: ubuntu-latest # Ubuntu 최신 이미지에서 실행
steps:
# Gradle 캐싱 (속도 향상)
- name: Cache Gradle packages
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('gradle.properties', '**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
# Android SDK 캐싱
- name: Cache Android SDK
uses: actions/cache@v4
with:
path: ~/.android
key: ${{ runner.os }}-android
# GitHub Repo 코드 Checkout
- name: Checkout the code
uses: actions/checkout@v4
# JDK 17 설치 (Android 공식 권장 버전)
- name: Setup JDK
uses: actions/setup-java@v4
with:
distribution: 'corretto'
java-version: '17'
# Android SDK 설치
- name: Setup Android SDK
uses: android-actions/setup-android@v3
# gradlew 실행 권한 부여
- name: Grant execute permission for gradlew
run: chmod +x gradlew
# Firebase google-services.json 복호화 및 설정
- name: Decode google-services.json
env:
FIREBASE_SECRET: ${{ secrets.FIREBASE_SECRET }} # base64로 암호화된 json 사용
run: echo $FIREBASE_SECRET | base64 --decode > app/google-services.json
# local.properties 생성
- name: Generate local.properties
env:
BASE_URL: ${{ secrets.BASE_URL }}
KAKAO_API_KEY: ${{ secrets.KAKAO_API_KEY }}
AMPLITUDE_API_KEY: ${{ secrets.AMPLITUDE_API_KEY }}
GOOGLE_ADMOB_APP_ID: ${{ secrets.GOOGLE_ADMOB_APP_ID }}
GOOGLE_ADMOB_UNIT_ID: ${{ secrets.GOOGLE_ADMOB_UNIT_ID }}
run: |
echo "baseUrl=$BASE_URL" >> local.properties
echo "kakao.api.key=$KAKAO_API_KEY" >> local.properties
echo "amplitude.api.key=$AMPLITUDE_API_KEY" >> local.properties
echo "googleAdmob.app.id=$GOOGLE_ADMOB_APP_ID" >> local.properties
echo "googleAdmob.unit.id=$GOOGLE_ADMOB_UNIT_ID" >> local.properties
# ------- Build & Lint -------
# Ktlint 코드 스타일 검사
- name: Run ktlintCheck
run: ./gradlew --no-daemon --configuration-cache ktlintCheck
# Android Lint 검사
- name: Run Android Lint
run: ./gradlew --no-daemon --configuration-cache lint
# Debug 빌드 생성 (CI Build 성공 여부 확인)
- name: Assemble Debug Build
run: ./gradlew --no-daemon --configuration-cache assembleDebug