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
67 changes: 35 additions & 32 deletions .github/workflows/pr-check.yml
Original file line number Diff line number Diff line change
@@ -1,59 +1,62 @@
# μ›Œν¬ν”Œλ‘œμš° 이름 μ„€μ •
name: Barrion PR Check

# μ›Œν¬ν”Œλ‘œμš° 트리거 μ„€μ •: main λ˜λŠ” develop 브랜치둜 PR이 생성될 λ•Œ μ‹€ν–‰
on:
pull_request:
branches: [ main, develop ]

# μ‹€ν–‰ν•  μž‘μ—… μ •μ˜
jobs:
# 'build'λΌλŠ” μž‘μ—… μ •μ˜
build:
# μž‘μ—…μ„ μ‹€ν–‰ν•  ν™˜κ²½: μ΅œμ‹  Ubuntu 버전
runs-on: ubuntu-latest

# μž‘μ—…μ˜ 단계 μ •μ˜
steps:
# ===== CI (Continuous Integration) λΆ€λΆ„ =====
# μ½”λ“œ κ°€μ Έμ˜€κΈ°
# 1. μ €μž₯μ†Œ μ½”λ“œ 체크아웃: GitHub μ €μž₯μ†Œμ˜ μ½”λ“œλ₯Ό μž‘μ—… ν™˜κ²½μœΌλ‘œ κ°€μ Έμ˜΄
- uses: actions/checkout@v4

# μžλ°” 개발 ν™˜κ²½ μ„€μ •
# 2. JDK μ„€μ •: μ•ˆλ“œλ‘œμ΄λ“œ μ•± λΉŒλ“œμ— ν•„μš”ν•œ μžλ°” ν™˜κ²½ μ„€μ •
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
java-version: '17' # μžλ°” 버전 17 μ‚¬μš©
distribution: 'temurin' # Temurin(AdoptOpenJDK) 배포판 μ‚¬μš©
cache: gradle # Gradle μ˜μ‘΄μ„± μΊμ‹±μœΌλ‘œ λΉŒλ“œ 속도 ν–₯상

# Gradle μ‹€ν–‰ κΆŒν•œ 및 μ„€μ •
# 3. Gradle μ‹€ν–‰ κΆŒν•œ λΆ€μ—¬: gradlew μŠ€ν¬λ¦½νŠΈμ— μ‹€ν–‰ κΆŒν•œ μΆ”κ°€
- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Setup Gradle
# 4. Gradle 및 AndroidX μ„€μ •: λΉŒλ“œ μ„±λŠ₯ 및 ν˜Έν™˜μ„± μ„€μ •
- name: Setup Gradle and AndroidX
run: |
echo "org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g -Dkotlin.daemon.jvm.options=-Xmx2g" >> gradle.properties
# Gradle λ©”λͺ¨λ¦¬ μ„€μ •: μ΅œλŒ€ 4GB νž™ λ©”λͺ¨λ¦¬μ™€ 1GB λ©”νƒ€μŠ€νŽ˜μ΄μŠ€
echo "org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g -Dkotlin.daemon.jvm.options=-Xmx2g" > gradle.properties
# 병렬 λΉŒλ“œ ν™œμ„±ν™”: λ©€ν‹°μ½”μ–΄ ν™œμš©μœΌλ‘œ λΉŒλ“œ 속도 ν–₯상
echo "org.gradle.parallel=true" >> gradle.properties
# AndroidX 라이브러리 μ‚¬μš© μ„€μ •: μ΅œμ‹  μ•ˆλ“œλ‘œμ΄λ“œ 지원 라이브러리 μ‚¬μš©
echo "android.useAndroidX=true" >> gradle.properties
# Jetifier ν™œμ„±ν™”: ꡬ 지원 라이브러리λ₯Ό AndroidX둜 μžλ™ λ³€ν™˜
echo "android.enableJetifier=true" >> gradle.properties

# μ½”λ“œ ν’ˆμ§ˆ 검사
- name: Run Lint
run: ./gradlew lint

# λ‹¨μœ„ ν…ŒμŠ€νŠΈ μ‹€ν–‰
- name: Run Unit Tests
run: ./gradlew testDebugUnitTest

# 컴파일 검사
- name: Check Compilation
run: ./gradlew compileDebugSources
# 5. local.properties 파일 생성: 둜컬 개발 ν™˜κ²½ μ„€μ • 파일 생성
# (보톡 SDK μœ„μΉ˜, API ν‚€ 등이 ν¬ν•¨λ˜μ§€λ§Œ, CI ν™˜κ²½μ—μ„œλŠ” 빈 파일둜 생성)
- name: Create local.properties
run: touch local.properties

# APK λΉŒλ“œ
# 6. APK λΉŒλ“œ: 디버그 버전 APK 생성
- name: Build Debug APK
run: ./gradlew assembleDebug
run: ./gradlew assembleDebug --warning-mode=all # λͺ¨λ“  κ²½κ³ λ₯Ό ν‘œμ‹œν•˜λ©° λΉŒλ“œ
continue-on-error: true # λΉŒλ“œ μ‹€νŒ¨ν•΄λ„ μ›Œν¬ν”Œλ‘œμš° 계속 μ§„ν–‰

# ===== CD (Continuous Delivery) μ€€λΉ„ λΆ€λΆ„ =====
# λΉŒλ“œ κ²°κ³Όλ¬Ό μ €μž₯
# 7. APK μ•„ν‹°νŒ©νŠΈ μ—…λ‘œλ“œ: μƒμ„±λœ APKλ₯Ό GitHub에 μ €μž₯
- name: Upload APK
if: success() || failure() # 이전 단계 성곡 λ˜λŠ” μ‹€νŒ¨ λͺ¨λ‘μ—μ„œ μ‹€ν–‰
uses: actions/upload-artifact@v4
with:
name: barrion-debug
path: app/build/outputs/apk/debug/app-debug.apk

# μ°Έκ³ : μ™„μ „ν•œ CD νŒŒμ΄ν”„λΌμΈμ„ κ΅¬μ„±ν•˜λ €λ©΄ μ•„λž˜μ™€ 같은 단계가 좔가될 수 μžˆμŠ΅λ‹ˆλ‹€
# - Firebase App Distribution으둜 배포
# - Play Store λ‚΄λΆ€ ν…ŒμŠ€νŠΈ νŠΈλž™μ— μ—…λ‘œλ“œ
# - Slack λ˜λŠ” Teams둜 μ•Œλ¦Ό 전솑
# ν˜„μž¬λŠ” APK μ•„ν‹°νŒ©νŠΈ μ €μž₯κΉŒμ§€λ§Œ κ΅¬ν˜„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€
name: barrion-debug # μ•„ν‹°νŒ©νŠΈ 이름 μ„€μ •
path: app/build/outputs/apk/debug/app-debug.apk # μ—…λ‘œλ“œν•  파일 경둜
if-no-files-found: ignore # 파일이 없어도 였λ₯˜ λ°œμƒν•˜μ§€ μ•ŠμŒ
1 change: 1 addition & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions app/src/main/java/com/example/barrion/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.example.barrion.ui.theme.BarrionTheme

// test plz

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[versions]
agp = "8.7.3"
kotlin = "2.1.0"
kotlin = "2.0.0"
coreKtx = "1.15.0"
junit = "4.13.2"
junitVersion = "1.2.1"
Expand Down