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
20 changes: 18 additions & 2 deletions .github/workflows/develop_PR_builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,29 @@ jobs:
- name: Add Local Properties
env:
KAKAO_API_KEY: ${{ secrets.KAKAO_API_KEY }}
HMH_BASE_URL: ${{ secrets.HMH_BASE_URL }}
HMH_DEV_BASE_URL: ${{ secrets.HMH_DEV_BASE_URL }}
HMH_PROD_BASE_URL: ${{ secrets.HMH_PROD_BASE_URL }}
AMPLITUDE_API_KEY: ${{ secrets.AMPLITUDE_API_KEY }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}
run: |
echo kakaoApiKey=$KAKAO_API_KEY >> ./local.properties
echo hmhBaseUrl=$HMH_BASE_URL >> ./local.properties
echo amplitudeApiKey=$AMPLITUDE_API_KEY >> ./local.properties
echo keyAlias=$KEY_ALIAS >> ./local.properties
echo keyPassword=$KEY_PASSWORD >> ./local.properties
echo storePassword=$STORE_PASSWORD >> ./local.properties
echo hmhDevBaseUrl=$HMH_DEV_BASE_URL >> ./local.properties
echo hmhProdBaseUrl=$HMH_PROD_BASE_URL >> ./local.properties

- name: Access Firebase Service
run: echo '${{ secrets.GOOGLE_SERVICES_JSON }}' > ./app/google-services.json

- name: Run Tests
run: ./gradlew test

- name: Verify Lint
run: ./gradlew lint

- name: Build debug APK
run: ./gradlew assembleDebug --stacktrace
74 changes: 74 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: Release Firebase Distribution Workflow

on:
push:
branches:
- release/**

jobs:
build-and-release:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Setup JDK
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'

- name: Decode keystore
run: echo "${{ secrets.RELEASE_KEYSTORE_BASE64 }}" | base64 --decode > keystore/release.keystore.jks

- name: Grant execute permission for gradlew
run: chmod +x ./gradlew

- name: Add Local Properties
env:
KAKAO_API_KEY: ${{ secrets.KAKAO_API_KEY }}
HMH_DEV_BASE_URL: ${{ secrets.HMH_DEV_BASE_URL }}
HMH_PROD_BASE_URL: ${{ secrets.HMH_PROD_BASE_URL }}
AMPLITUDE_API_KEY: ${{ secrets.AMPLITUDE_API_KEY }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}
run: |
echo kakaoApiKey=$KAKAO_API_KEY >> ./local.properties
echo amplitudeApiKey=$AMPLITUDE_API_KEY >> ./local.properties
echo keyAlias=$KEY_ALIAS >> ./local.properties
echo keyPassword=$KEY_PASSWORD >> ./local.properties
echo storePassword=$STORE_PASSWORD >> ./local.properties
echo hmhDevBaseUrl=$HMH_DEV_BASE_URL >> ./local.properties
echo hmhProdBaseUrl=$HMH_PROD_BASE_URL >> ./local.properties

- name: Access Firebase Service
run: echo '${{ secrets.GOOGLE_SERVICES_JSON }}' > ./app/google-services.json

- name: Cache Gradle dependencies
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: gradle-cache-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-cache-${{ runner.os }}-

- name: Build APK
run: ./gradlew assembleRelease

- name: Verify APK Existence
run: test -f app/build/outputs/apk/release/app-release.apk

- name: Generate Release Notes
id: release-notes
run: echo "RELEASE_NOTES=$(git log -1 --pretty=%B)" >> $GITHUB_ENV

- name: Upload to Firebase App Distribution
uses: wzieba/Firebase-Distribution-Github-Action@v1
with:
appId: ${{ secrets.FIREBASE_APP_ID }}
serviceCredentialsFileContent: ${{ secrets.CREDENTIAL_FILE_CONTENT }}
groups: hmh-team
file: app/build/outputs/apk/release/app-release.apk
releaseNotes: ${{ env.RELEASE_NOTES }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ captures/
.cxx/
*.apk
output.json
output-metadata.json

# IntelliJ
*.iml
Expand Down
5 changes: 5 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ android {
signingConfig = signingConfigs.getByName("release")
}
}

lint {
disable.add("Instantiatable")
baseline = file("lint-baseline.xml")
}
}

dependencies {
Expand Down
4 changes: 4 additions & 0 deletions app/lint-baseline.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 8.1.4" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.4)" variant="fatal" version="8.1.4">

</issues>
2 changes: 1 addition & 1 deletion core/common/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<application>
<activity
android:name=".permission.PermissionDescriptionActivity"
android:name=".permission.PermissionActivity"
android:exported="false" />
</application>

Expand Down
8 changes: 4 additions & 4 deletions core/common/src/test/java/TimeTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,8 @@ class TimeUtilsTest {
val expectedStartMillis =
currentDate.toStartOfDayTime().toEpochMilliseconds(defaultTimeZone)
val expectedEndMillis = getNowLocalDateTime().toEpochMilliseconds(defaultTimeZone)
assertEquals(expectedStartMillis, startMillis)
assertEquals(expectedEndMillis, endMillis)
assertTrue(expectedStartMillis - startMillis < 1000)
assertTrue(expectedEndMillis - endMillis < 1000)
}

// 타겟 날짜의 시작 시간과 종료 시간을 Epoch 밀리초로 반환하는 함수 테스트
Expand All @@ -144,8 +144,8 @@ class TimeUtilsTest {
val (startMillis, endMillis) = getTargetDayStartEndEpochMillis(targetDate)
val expectedStartMillis = targetDate.toStartOfDayTime().toEpochMilliseconds(defaultTimeZone)
val expectedEndMillis = getNowLocalDateTime().toEpochMilliseconds(defaultTimeZone)
assertEquals(expectedStartMillis, startMillis)
assertEquals(expectedEndMillis, endMillis)
assertTrue(expectedStartMillis - startMillis < 1000)
assertTrue(expectedEndMillis - endMillis < 1000)
}

// 기본 타임존의 현재 날짜를 반환하는 함수 테스트
Expand Down
Loading