From a1033451455a3723856022dcd90744ac3d238226 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=95=88=EB=B3=91=ED=97=8C?= <64366488+Heonbyeong@users.noreply.github.com> Date: Tue, 25 Jun 2024 14:44:12 +0900 Subject: [PATCH 001/157] Update README.md --- README.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ba8feccb..3a2a759d 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,50 @@ -# 23rd-Android-Team-2-Android -![screen1](https://github.com/YAPP-Github/23rd-Android-Team-2-Android/assets/64366488/2925d2c6-a53b-41b2-a336-2f950c448d37) +![cover](https://github.com/MONEYMONG/Android-Moneymong/assets/64366488/d8d0ddcd-3eae-453d-87d0-b9138353fb71) +
+ + + +
+ +
+
+ + + +# 머니몽 +> 머니몽은 `Money` + `Monitoring` 두 단어가 결합된 이름입니다. 머니몽이라는 이름 그대로, 장부를 기록하고 확인하며 관리할 수 있는 서비스에요. + +2023년 기준 전국 대학은 334개, 그 안에 있는 동아리는 무수히 많습니다. 그 많은 동아리는 아직까지도 수기로 장부를 작성하며, 영수증을 파일로 관리하고, +엑셀로 정리하여 감사위원회에 제출합니다. 머니몽은 학생과 학생회의 불편함을 넘어, 국내 모든 동아리의 회계 관리에 대한 불편함을 해결하려고 합니다. + +
+
+ +## 온보딩 & 로그인 +![47](https://github.com/MONEYMONG/Android-Moneymong/assets/64366488/7307d8ae-cf69-45ff-8d8c-57cbd71002b6) + +
+
+ +## 소속 등록 & 가입 +![48](https://github.com/MONEYMONG/Android-Moneymong/assets/64366488/8e1c9750-53ba-4300-bb14-2daf57cd0931) +![49](https://github.com/MONEYMONG/Android-Moneymong/assets/64366488/a246e125-290b-4ac5-9b0a-7f3b00b0d3c5) + +
+
+ +## 장부 확인 +![50](https://github.com/MONEYMONG/Android-Moneymong/assets/64366488/bfcb6e1d-1018-4741-8d32-fd44b39b2545) + +
+
+ +## 장부 등록 +![51](https://github.com/MONEYMONG/Android-Moneymong/assets/64366488/57d6b7a9-4088-4f3c-90b6-8fbfc827a21c) +![52](https://github.com/MONEYMONG/Android-Moneymong/assets/64366488/274245ce-fc7b-4df7-ad12-f19ca6d75216) + +
+
+ +## 멤버 & 마이페이지 +![53](https://github.com/MONEYMONG/Android-Moneymong/assets/64366488/ad0c3373-2e78-498d-865e-91d4cb2c89e4) +![54](https://github.com/MONEYMONG/Android-Moneymong/assets/64366488/3c6c57ea-a9de-4b43-a4ef-a4990e784319) From 7b68ac3d9c059e978b5935ad26b90bab569e292a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=95=88=EB=B3=91=ED=97=8C?= <64366488+Heonbyeong@users.noreply.github.com> Date: Thu, 27 Jun 2024 18:04:31 +0900 Subject: [PATCH 002/157] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3a2a759d..8c78613e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![cover](https://github.com/MONEYMONG/Android-Moneymong/assets/64366488/d8d0ddcd-3eae-453d-87d0-b9138353fb71) +![cover](https://github.com/MONEYMONG/Android-Moneymong/assets/64366488/034a0bf6-f3fd-446d-a35d-35808ab4b7a9)
From 55851473ca5d17d8ba642fb6fd05e46db7102ec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=95=88=EB=B3=91=ED=97=8C?= <64366488+Heonbyeong@users.noreply.github.com> Date: Wed, 3 Jul 2024 18:07:16 +0900 Subject: [PATCH 003/157] Create android-ci.yml --- .github/workflows/android-ci.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/android-ci.yml diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml new file mode 100644 index 00000000..a2a373db --- /dev/null +++ b/.github/workflows/android-ci.yml @@ -0,0 +1,26 @@ +name: Android CI + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: set up JDK 11 + uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'temurin' + cache: gradle + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Build with Gradle + run: ./gradlew build From f6db51c04bfa4d494f512a7e3f4ce375e8c35763 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 14:24:55 +0900 Subject: [PATCH 004/157] =?UTF-8?q?chore:=20ci/cd=20yaml=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1=20(=EC=B4=88=EC=95=88)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/android-ci.yml | 41 +++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index a2a373db..53c49f3c 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -2,25 +2,50 @@ name: Android CI on: push: - branches: [ "master" ] - pull_request: - branches: [ "master" ] + branches: [ "release/release" ] jobs: build: - runs-on: ubuntu-latest + runs-on: macos-latest steps: - uses: actions/checkout@v4 - - name: set up JDK 11 + - name: set up JDK 17 uses: actions/setup-java@v3 with: - java-version: '11' + java-version: '17' distribution: 'temurin' cache: gradle - name: Grant execute permission for gradlew run: chmod +x gradlew - - name: Build with Gradle - run: ./gradlew build + + - name: Clean Build + run: ./gradlew clean + + - name: Check Code Convention + run: ./gradlew ktlintCheck + + - name: Decode Service Account Key + env: + SERVICE_ACCOUNT_KEY_BASE64: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_KEY }} + run: | + echo $SERVICE_ACCOUNT_KEY_BASE64 | base64 --decode > service_account_key.json + + - name: Decode Keystore File + env: + KEY_STORE_BASE64: ${{ secrets.KEYSTORE_FILE }} + run: | + echo $KEY_STORE_BASE64 | base64 --decode > moneymong_keystore.keystore + + - name: Build & Deploy Android release + env: + SERVICE_ACCOUNT_KEY: service_account_key.json + KEYSTORE_FILE: moneymong_keystore.keystore + KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} + KEYSTORE_KEY_ALIAS: ${{ secrets.KEY_ALIAS }} + run: bundle exec fastlane deploy + + - name: Remove Credential + run: rm service_account_key.json moneymong_keystore.keystore From 2c466e9fafc5edd5662096ec0b40b13f253f3f48 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 14:27:52 +0900 Subject: [PATCH 005/157] test: workflow --- .github/workflows/android-ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index 53c49f3c..e3430343 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -2,7 +2,10 @@ name: Android CI on: push: - branches: [ "release/release" ] + branches: + - 'release/release' + - 'feature/moneymong-500-ci-cd-구축' + jobs: build: From e38028e14ddcc9b749cc3e876f4cc42b0845bae8 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 14:32:11 +0900 Subject: [PATCH 006/157] test: workflow --- .github/workflows/android-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index e3430343..b3538622 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -6,7 +6,6 @@ on: - 'release/release' - 'feature/moneymong-500-ci-cd-구축' - jobs: build: From 60c9541a7140c5ab89d11796abea4e4ace0e3f98 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 15:04:28 +0900 Subject: [PATCH 007/157] =?UTF-8?q?chore:=20local.properties=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/android-ci.yml | 9 ++++++++- app/build.gradle.kts | 10 ---------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index b3538622..56ad35ca 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -23,6 +23,13 @@ jobs: - name: Grant execute permission for gradlew run: chmod +x gradlew + - name: Create API Certificate + run: | + echo "sdk.dir=$ANDROID_SDK_ROOT" > ./local.properties + echo "native_app_key=\"${{ secrets.NATIVE_APP_KEY }}\"" >> ./local.properties + echo "CLOVA_OCR_DOCUMENT_SECRET=\"${{ secrets.CLOVA_OCR_DOCUMENT_SECRET }}\"" >> ./local.properties + echo "CLOVA_OCR_DOCUMENT_BASEURL=\"${{ secrets.CLOVA_OCR_DOCUMENT_BASEURL }}\"" >> ./local.properties + - name: Clean Build run: ./gradlew clean @@ -50,4 +57,4 @@ jobs: run: bundle exec fastlane deploy - name: Remove Credential - run: rm service_account_key.json moneymong_keystore.keystore + run: rm service_account_key.json moneymong_keystore.keystore local.properties diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6af56666..916e7cf0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,15 +14,6 @@ plugins { } android { - signingConfigs { - create("release") { - storeFile = - file(getApiKey("storeFile")) - storePassword = getApiKey("storePassword") - keyAlias = getApiKey("keyAlias") - keyPassword = getApiKey("keyPassword") - } - } namespace = "com.moneymong.moneymong" compileSdk = 34 @@ -50,7 +41,6 @@ android { getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) - signingConfig = signingConfigs.getByName("release") } } packaging { From fe2186de1889b42a11f7eb0b19f75ad1b82ab5b7 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 15:09:12 +0900 Subject: [PATCH 008/157] =?UTF-8?q?test:=20lint=20=ED=8C=8C=EC=9D=B4?= =?UTF-8?q?=ED=94=84=EB=9D=BC=EC=9D=B8=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/android-ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index 56ad35ca..0e532d23 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -33,9 +33,6 @@ jobs: - name: Clean Build run: ./gradlew clean - - name: Check Code Convention - run: ./gradlew ktlintCheck - - name: Decode Service Account Key env: SERVICE_ACCOUNT_KEY_BASE64: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_KEY }} From f555ccfe7dce6dd6e3b64f6ff23fc9365e3bec49 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 16:04:50 +0900 Subject: [PATCH 009/157] =?UTF-8?q?test:=20fastfile=20=EC=9E=90=EA=B2=A9?= =?UTF-8?q?=20=EC=A6=9D=EB=AA=85=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/android-ci.yml | 1 + fastlane/Fastfile | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index 0e532d23..bd9f82db 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -51,6 +51,7 @@ jobs: KEYSTORE_FILE: moneymong_keystore.keystore KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEYSTORE_KEY_ALIAS: ${{ secrets.KEY_ALIAS }} + KEYSTORE_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} run: bundle exec fastlane deploy - name: Remove Credential diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 19c557cc..7f248f74 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -32,7 +32,17 @@ platform :android do desc "Deploy a new version to the Google Play" lane :deploy do - gradle(task: "clean assembleRelease") + gradle( + task: 'bundle', + flavor: "live" + build_type: 'Release' + properties: { + "android.injected.signing.store.file" => ENV["KEYSTORE_FILE"], + "android.injected.signing.store.password" => ENV["KEYSTORE_PASSWORD"], + "android.injected.signing.key.alias" => ENV["KEYSTORE_KEY_ALIAS"], + "android.injected.signing.key.password" => ENV["KEYSTORE_KEY_PASSWORD"], + } + ) upload_to_play_store end end From 9e5c828541b045d7acfb95dbfd15fd225fe08886 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 16:08:46 +0900 Subject: [PATCH 010/157] =?UTF-8?q?test:=20,=20=EB=88=84=EB=9D=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fastlane/Fastfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 7f248f74..f538af0f 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -34,7 +34,7 @@ platform :android do lane :deploy do gradle( task: 'bundle', - flavor: "live" + flavor: "live", build_type: 'Release' properties: { "android.injected.signing.store.file" => ENV["KEYSTORE_FILE"], From c3f1e55fd0e579b2b05d9d9164227896b639256f Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 16:11:03 +0900 Subject: [PATCH 011/157] =?UTF-8?q?test:=20,=20=EB=88=84=EB=9D=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fastlane/Fastfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index f538af0f..a4683a96 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -35,13 +35,13 @@ platform :android do gradle( task: 'bundle', flavor: "live", - build_type: 'Release' + build_type: 'Release', properties: { "android.injected.signing.store.file" => ENV["KEYSTORE_FILE"], "android.injected.signing.store.password" => ENV["KEYSTORE_PASSWORD"], "android.injected.signing.key.alias" => ENV["KEYSTORE_KEY_ALIAS"], "android.injected.signing.key.password" => ENV["KEYSTORE_KEY_PASSWORD"], - } + }, ) upload_to_play_store end From 21d9c612e72b6b53b1558e905acf6526cb9058ab Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 16:23:51 +0900 Subject: [PATCH 012/157] =?UTF-8?q?test:=20=ED=99=98=EA=B2=BD=EB=B3=80?= =?UTF-8?q?=EC=88=98=20=EB=AC=B8=EC=9E=90=EC=97=B4=20=EC=B2=A0;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fastlane/Fastfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index a4683a96..64754702 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -37,10 +37,10 @@ platform :android do flavor: "live", build_type: 'Release', properties: { - "android.injected.signing.store.file" => ENV["KEYSTORE_FILE"], - "android.injected.signing.store.password" => ENV["KEYSTORE_PASSWORD"], - "android.injected.signing.key.alias" => ENV["KEYSTORE_KEY_ALIAS"], - "android.injected.signing.key.password" => ENV["KEYSTORE_KEY_PASSWORD"], + "android.injected.signing.store.file" => "#{ENV["KEYSTORE_FILE"]}", + "android.injected.signing.store.password" => "#{ENV["KEYSTORE_PASSWORD"]}", + "android.injected.signing.key.alias" => "#{ENV["KEYSTORE_KEY_ALIAS"]}", + "android.injected.signing.key.password" => "#{ENV["KEYSTORE_KEY_PASSWORD"]}", }, ) upload_to_play_store From f0062408de3fc6840ab6be7f03f6de197e66ea2f Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 16:35:52 +0900 Subject: [PATCH 013/157] test: keystore path fix --- .github/workflows/android-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index bd9f82db..7b9516c0 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -43,7 +43,7 @@ jobs: env: KEY_STORE_BASE64: ${{ secrets.KEYSTORE_FILE }} run: | - echo $KEY_STORE_BASE64 | base64 --decode > moneymong_keystore.keystore + echo $KEY_STORE_BASE64 | base64 --decode > app/moneymong_keystore.keystore - name: Build & Deploy Android release env: @@ -55,4 +55,4 @@ jobs: run: bundle exec fastlane deploy - name: Remove Credential - run: rm service_account_key.json moneymong_keystore.keystore local.properties + run: rm service_account_key.json app/moneymong_keystore.keystore local.properties From c45df99e49182049168b96e2e5be2d90ef53f7a6 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 16:56:22 +0900 Subject: [PATCH 014/157] =?UTF-8?q?test:=20keystore=20=ED=99=95=EC=9E=A5?= =?UTF-8?q?=EC=9E=90=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/android-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index 7b9516c0..5e99460f 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -43,7 +43,7 @@ jobs: env: KEY_STORE_BASE64: ${{ secrets.KEYSTORE_FILE }} run: | - echo $KEY_STORE_BASE64 | base64 --decode > app/moneymong_keystore.keystore + echo $KEY_STORE_BASE64 | base64 --decode > moneymong_keystore.jks - name: Build & Deploy Android release env: @@ -55,4 +55,4 @@ jobs: run: bundle exec fastlane deploy - name: Remove Credential - run: rm service_account_key.json app/moneymong_keystore.keystore local.properties + run: rm service_account_key.json moneymong_keystore.jks local.properties From ed7c6557cf6f82fe0ec35a800f9d51e69d5e6cab Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 17:01:13 +0900 Subject: [PATCH 015/157] =?UTF-8?q?test:=20keystore=20=ED=99=95=EC=9E=A5?= =?UTF-8?q?=EC=9E=90=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/android-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index 5e99460f..0893530d 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -48,7 +48,7 @@ jobs: - name: Build & Deploy Android release env: SERVICE_ACCOUNT_KEY: service_account_key.json - KEYSTORE_FILE: moneymong_keystore.keystore + KEYSTORE_FILE: moneymong_keystore.jks KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEYSTORE_KEY_ALIAS: ${{ secrets.KEY_ALIAS }} KEYSTORE_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} From a33f882c946798f33edbb356bdc8d20b8c0e522a Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 17:26:17 +0900 Subject: [PATCH 016/157] =?UTF-8?q?test:=20working=20directory=20=EC=A7=80?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/android-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index 0893530d..509d1586 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -52,7 +52,8 @@ jobs: KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEYSTORE_KEY_ALIAS: ${{ secrets.KEY_ALIAS }} KEYSTORE_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} + working-directory: ${{ github.workspace }} run: bundle exec fastlane deploy - name: Remove Credential - run: rm service_account_key.json moneymong_keystore.jks local.properties + run: rm service_account_key.json moneymong_keystore.jks ./local.properties From 1fc373e6673ae5492e0610bb0f0ef7ff9feef52d Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 17:37:57 +0900 Subject: [PATCH 017/157] test: path fix --- .github/workflows/android-ci.yml | 11 +++++------ fastlane/Fastfile | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index 509d1586..da1168be 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -37,23 +37,22 @@ jobs: env: SERVICE_ACCOUNT_KEY_BASE64: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_KEY }} run: | - echo $SERVICE_ACCOUNT_KEY_BASE64 | base64 --decode > service_account_key.json + echo $SERVICE_ACCOUNT_KEY_BASE64 | base64 --decode > $GITHUB_WORKSPACE/service_account_key.json - name: Decode Keystore File env: KEY_STORE_BASE64: ${{ secrets.KEYSTORE_FILE }} run: | - echo $KEY_STORE_BASE64 | base64 --decode > moneymong_keystore.jks + echo $KEY_STORE_BASE64 | base64 --decode > $GITHUB_WORKSPACE/moneymong_keystore.jks - name: Build & Deploy Android release env: - SERVICE_ACCOUNT_KEY: service_account_key.json - KEYSTORE_FILE: moneymong_keystore.jks + SERVICE_ACCOUNT_KEY: $GITHUB_WORKSPACE/service_account_key.json + KEYSTORE_FILE: $GITHUB_WORKSPACE/moneymong_keystore.jks KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEYSTORE_KEY_ALIAS: ${{ secrets.KEY_ALIAS }} KEYSTORE_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} - working-directory: ${{ github.workspace }} run: bundle exec fastlane deploy - name: Remove Credential - run: rm service_account_key.json moneymong_keystore.jks ./local.properties + run: rm $GITHUB_WORKSPACE/service_account_key.json $GITHUB_WORKSPACE/moneymong_keystore.jks ./local.properties diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 64754702..4655047a 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -37,7 +37,7 @@ platform :android do flavor: "live", build_type: 'Release', properties: { - "android.injected.signing.store.file" => "#{ENV["KEYSTORE_FILE"]}", + "android.injected.signing.store.file" => "#{ENV["GITHUB_WORKSPACE"]}/moneymong_keystore.jks", "android.injected.signing.store.password" => "#{ENV["KEYSTORE_PASSWORD"]}", "android.injected.signing.key.alias" => "#{ENV["KEYSTORE_KEY_ALIAS"]}", "android.injected.signing.key.password" => "#{ENV["KEYSTORE_KEY_PASSWORD"]}", From 2a5c0aacdf5f4a060190230ad44c1bd315a5f30a Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 17:50:49 +0900 Subject: [PATCH 018/157] test: add json key --- fastlane/Fastfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 4655047a..f20f699b 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -43,6 +43,9 @@ platform :android do "android.injected.signing.key.password" => "#{ENV["KEYSTORE_KEY_PASSWORD"]}", }, ) - upload_to_play_store + upload_to_play_store( + track: "internal", + json_key: "#{ENV["SERVICE_ACCOUNT_KEY"]}" + ) end end From eefbf535f22411e35a2ee5dfd7af41d4be98b45a Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 17:58:58 +0900 Subject: [PATCH 019/157] test: json key path fix --- fastlane/Fastfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index f20f699b..a4450c44 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -37,7 +37,7 @@ platform :android do flavor: "live", build_type: 'Release', properties: { - "android.injected.signing.store.file" => "#{ENV["GITHUB_WORKSPACE"]}/moneymong_keystore.jks", + "android.injected.signing.store.file" => "#{ENV["KEYSTORE_FILE"]}", "android.injected.signing.store.password" => "#{ENV["KEYSTORE_PASSWORD"]}", "android.injected.signing.key.alias" => "#{ENV["KEYSTORE_KEY_ALIAS"]}", "android.injected.signing.key.password" => "#{ENV["KEYSTORE_KEY_PASSWORD"]}", @@ -45,7 +45,7 @@ platform :android do ) upload_to_play_store( track: "internal", - json_key: "#{ENV["SERVICE_ACCOUNT_KEY"]}" + json_key: ENV["SERVICE_ACCOUNT_KEY"] ) end end From 5ffc407f1370e36377a935d86a3be590812aa76f Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 18:18:14 +0900 Subject: [PATCH 020/157] =?UTF-8?q?test:=20env=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/android-ci.yml | 1 + fastlane/Fastfile | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index da1168be..a0609afc 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -52,6 +52,7 @@ jobs: KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEYSTORE_KEY_ALIAS: ${{ secrets.KEY_ALIAS }} KEYSTORE_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} + working-directory: $GITHUB_WORKSPACE/app run: bundle exec fastlane deploy - name: Remove Credential diff --git a/fastlane/Fastfile b/fastlane/Fastfile index a4450c44..57043631 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -37,10 +37,10 @@ platform :android do flavor: "live", build_type: 'Release', properties: { - "android.injected.signing.store.file" => "#{ENV["KEYSTORE_FILE"]}", - "android.injected.signing.store.password" => "#{ENV["KEYSTORE_PASSWORD"]}", - "android.injected.signing.key.alias" => "#{ENV["KEYSTORE_KEY_ALIAS"]}", - "android.injected.signing.key.password" => "#{ENV["KEYSTORE_KEY_PASSWORD"]}", + "android.injected.signing.store.file" => ENV["KEYSTORE_FILE"], + "android.injected.signing.store.password" => ENV["KEYSTORE_PASSWORD"], + "android.injected.signing.key.alias" => ENV["KEYSTORE_KEY_ALIAS"], + "android.injected.signing.key.password" => ENV["KEYSTORE_KEY_PASSWORD"], }, ) upload_to_play_store( From 600bd1b1a43ca97b73f685ec50fa0938ff46cf2b Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 18:21:36 +0900 Subject: [PATCH 021/157] test: working directory remove --- .github/workflows/android-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index a0609afc..da1168be 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -52,7 +52,6 @@ jobs: KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEYSTORE_KEY_ALIAS: ${{ secrets.KEY_ALIAS }} KEYSTORE_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} - working-directory: $GITHUB_WORKSPACE/app run: bundle exec fastlane deploy - name: Remove Credential From 786b6da75ddaf7a250ae6aa7c00ac6a597eaa938 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 18:36:16 +0900 Subject: [PATCH 022/157] test: app file fix --- .github/workflows/android-ci.yml | 14 +++++--------- fastlane/Appfile | 2 +- fastlane/Fastfile | 5 +---- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index da1168be..d55da2a6 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -34,25 +34,21 @@ jobs: run: ./gradlew clean - name: Decode Service Account Key - env: - SERVICE_ACCOUNT_KEY_BASE64: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_KEY }} run: | - echo $SERVICE_ACCOUNT_KEY_BASE64 | base64 --decode > $GITHUB_WORKSPACE/service_account_key.json + echo "${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_KEY }}" | base64 --decode > app/service_account_key.json - name: Decode Keystore File - env: - KEY_STORE_BASE64: ${{ secrets.KEYSTORE_FILE }} run: | - echo $KEY_STORE_BASE64 | base64 --decode > $GITHUB_WORKSPACE/moneymong_keystore.jks + echo "${{ secrets.KEYSTORE_FILE }}" | base64 --decode > app/moneymong_keystore.jks - name: Build & Deploy Android release env: - SERVICE_ACCOUNT_KEY: $GITHUB_WORKSPACE/service_account_key.json - KEYSTORE_FILE: $GITHUB_WORKSPACE/moneymong_keystore.jks + SERVICE_ACCOUNT_KEY: app/service_account_key.json + KEYSTORE_FILE: app/moneymong_keystore.jks KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEYSTORE_KEY_ALIAS: ${{ secrets.KEY_ALIAS }} KEYSTORE_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} run: bundle exec fastlane deploy - name: Remove Credential - run: rm $GITHUB_WORKSPACE/service_account_key.json $GITHUB_WORKSPACE/moneymong_keystore.jks ./local.properties + run: rm app/service_account_key.json app/moneymong_keystore.jks ./local.properties diff --git a/fastlane/Appfile b/fastlane/Appfile index bc0d61c2..d749722b 100644 --- a/fastlane/Appfile +++ b/fastlane/Appfile @@ -1,2 +1,2 @@ -json_key_file("") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one +json_key_file ENV['SERVICE_ACCOUNT_KEY'] # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one package_name("com.moneymong.moneymong") # e.g. com.krausefx.app diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 57043631..a4683a96 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -43,9 +43,6 @@ platform :android do "android.injected.signing.key.password" => ENV["KEYSTORE_KEY_PASSWORD"], }, ) - upload_to_play_store( - track: "internal", - json_key: ENV["SERVICE_ACCOUNT_KEY"] - ) + upload_to_play_store end end From 7be78761c9b89abdfe585a4a67bf2a479f6f62fe Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 18:58:49 +0900 Subject: [PATCH 023/157] test: fix --- .github/workflows/android-ci.yml | 11 ++++++----- fastlane/Appfile | 2 +- fastlane/Fastfile | 12 +++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index d55da2a6..25ccf51b 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -35,20 +35,21 @@ jobs: - name: Decode Service Account Key run: | - echo "${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_KEY }}" | base64 --decode > app/service_account_key.json + echo "${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_KEY }}" | base64 --decode > ./app/service_account_key.json - name: Decode Keystore File run: | - echo "${{ secrets.KEYSTORE_FILE }}" | base64 --decode > app/moneymong_keystore.jks + echo "${{ secrets.KEYSTORE_FILE }}" | base64 --decode > ./app/moneymong_keystore.jks - name: Build & Deploy Android release env: - SERVICE_ACCOUNT_KEY: app/service_account_key.json - KEYSTORE_FILE: app/moneymong_keystore.jks + SERVICE_ACCOUNT_KEY: ./app/service_account_key.json + KEYSTORE_FILE: ./app/moneymong_keystore.jks KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEYSTORE_KEY_ALIAS: ${{ secrets.KEY_ALIAS }} KEYSTORE_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} + CWD: ${{ github.workspace }} run: bundle exec fastlane deploy - name: Remove Credential - run: rm app/service_account_key.json app/moneymong_keystore.jks ./local.properties + run: rm ./app/${SERVICE_ACCOUNT_KEY} && rm ./app/${KEYSTORE_FILE} && rm ./local.properties diff --git a/fastlane/Appfile b/fastlane/Appfile index d749722b..d60ec01f 100644 --- a/fastlane/Appfile +++ b/fastlane/Appfile @@ -1,2 +1,2 @@ -json_key_file ENV['SERVICE_ACCOUNT_KEY'] # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one +json_key_file("./service_account_key.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one package_name("com.moneymong.moneymong") # e.g. com.krausefx.app diff --git a/fastlane/Fastfile b/fastlane/Fastfile index a4683a96..375c90d5 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -30,6 +30,8 @@ platform :android do # You can also use other beta testing services here end + keystore = File.join(Dir.pwd, “my_keystore.jks”) + json_file = File.join(Dir.pwd, “my_json_key.json”) desc "Deploy a new version to the Google Play" lane :deploy do gradle( @@ -37,11 +39,11 @@ platform :android do flavor: "live", build_type: 'Release', properties: { - "android.injected.signing.store.file" => ENV["KEYSTORE_FILE"], - "android.injected.signing.store.password" => ENV["KEYSTORE_PASSWORD"], - "android.injected.signing.key.alias" => ENV["KEYSTORE_KEY_ALIAS"], - "android.injected.signing.key.password" => ENV["KEYSTORE_KEY_PASSWORD"], - }, + "android.injected.signing.store.file" => "#{ENV["CWD"]}/app/#{ENV["KEYSTORE_FILE"]}", + "android.injected.signing.store.password" => "#{ENV["KEYSTORE_PASSWORD"]}", + "android.injected.signing.key.alias" => "#{ENV["KEYSTORE_KEY_ALIAS"]}", + "android.injected.signing.key.password" => "#{ENV["KEYSTORE_KEY_PASSWORD"]}", + }, ) upload_to_play_store end From a67f85a8269bbe6b5510f3959e693ff5bfc307bd Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 23 Jul 2024 19:16:47 +0900 Subject: [PATCH 024/157] test: env --- fastlane/Fastfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 375c90d5..e8d7ac7a 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -39,7 +39,7 @@ platform :android do flavor: "live", build_type: 'Release', properties: { - "android.injected.signing.store.file" => "#{ENV["CWD"]}/app/#{ENV["KEYSTORE_FILE"]}", + "android.injected.signing.store.file" => "#{ENV["KEYSTORE_FILE"]}", "android.injected.signing.store.password" => "#{ENV["KEYSTORE_PASSWORD"]}", "android.injected.signing.key.alias" => "#{ENV["KEYSTORE_KEY_ALIAS"]}", "android.injected.signing.key.password" => "#{ENV["KEYSTORE_KEY_PASSWORD"]}", From c5871580e1c40c579f66dc10ad8cafb954a2d861 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Wed, 24 Jul 2024 10:49:12 +0900 Subject: [PATCH 025/157] test: path --- .github/workflows/android-ci.yml | 4 ++-- fastlane/Fastfile | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index 25ccf51b..4bff2380 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -43,8 +43,8 @@ jobs: - name: Build & Deploy Android release env: - SERVICE_ACCOUNT_KEY: ./app/service_account_key.json - KEYSTORE_FILE: ./app/moneymong_keystore.jks + SERVICE_ACCOUNT_KEY: ${{ github.workspace }}/app/service_account_key.json + KEYSTORE_FILE: ${{ github.workspace }}/app/moneymong_keystore.jks KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEYSTORE_KEY_ALIAS: ${{ secrets.KEY_ALIAS }} KEYSTORE_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} diff --git a/fastlane/Fastfile b/fastlane/Fastfile index e8d7ac7a..d5151135 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -30,8 +30,6 @@ platform :android do # You can also use other beta testing services here end - keystore = File.join(Dir.pwd, “my_keystore.jks”) - json_file = File.join(Dir.pwd, “my_json_key.json”) desc "Deploy a new version to the Google Play" lane :deploy do gradle( From be520d89c5b5c793e102abe48c64f9585773e11c Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Wed, 24 Jul 2024 11:30:03 +0900 Subject: [PATCH 026/157] test: appfile path --- fastlane/Appfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/Appfile b/fastlane/Appfile index d60ec01f..d4dcdac8 100644 --- a/fastlane/Appfile +++ b/fastlane/Appfile @@ -1,2 +1,2 @@ -json_key_file("./service_account_key.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one +json_key_file("./app/service_account_key.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one package_name("com.moneymong.moneymong") # e.g. com.krausefx.app From 6b23a03fbc7ae43a3d0bf254e8d3059581f22c69 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Wed, 24 Jul 2024 14:10:04 +0900 Subject: [PATCH 027/157] test: package name refactor --- fastlane/Appfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/Appfile b/fastlane/Appfile index d4dcdac8..ee1194d6 100644 --- a/fastlane/Appfile +++ b/fastlane/Appfile @@ -1,2 +1,2 @@ json_key_file("./app/service_account_key.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one -package_name("com.moneymong.moneymong") # e.g. com.krausefx.app +package_name("com.moneymong.moneymong.live") # e.g. com.krausefx.app From e8773757067f5910e729deca762f2b1c04479f52 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Wed, 24 Jul 2024 14:50:19 +0900 Subject: [PATCH 028/157] test: increment version code --- fastlane/Fastfile | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index d5151135..cddeecc1 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -16,6 +16,20 @@ default_platform(:android) platform :android do + desc "Increment the Version Code" + lane :increment_version_code do + increment_version_code( + gradle_file_path: './app/build.gradle' + ) + + git_commit( + path: ["./app/build.gradle"], + message: "RELEASE INCREMENT VERSION CODE" + ) + + push_to_git_remote + end + desc "Runs all the tests" lane :test do gradle(task: "test") @@ -32,6 +46,8 @@ platform :android do desc "Deploy a new version to the Google Play" lane :deploy do + increment_version_code + gradle( task: 'bundle', flavor: "live", From d7845c61a79a33b62b26722f722f881b7910bd72 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Wed, 24 Jul 2024 14:54:48 +0900 Subject: [PATCH 029/157] test: lane --- fastlane/Fastfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index cddeecc1..96015c2a 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -17,7 +17,7 @@ default_platform(:android) platform :android do desc "Increment the Version Code" - lane :increment_version_code do + lane :increment_code do increment_version_code( gradle_file_path: './app/build.gradle' ) @@ -46,7 +46,7 @@ platform :android do desc "Deploy a new version to the Google Play" lane :deploy do - increment_version_code + increment_code gradle( task: 'bundle', From f5b789428af1b77eb9485e5626bf27b9bade2298 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Wed, 24 Jul 2024 15:07:13 +0900 Subject: [PATCH 030/157] test: version code --- fastlane/Fastfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 96015c2a..27ebbc6a 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -18,8 +18,11 @@ default_platform(:android) platform :android do desc "Increment the Version Code" lane :increment_code do + latest_release = google_play_track_version_code()[0] + new_release = latest_release + 1 + increment_version_code( - gradle_file_path: './app/build.gradle' + version_code: new_release ) git_commit( From e4c6f9f9f97928b0401bd8b4841e68ea0d19e0e3 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Wed, 24 Jul 2024 15:09:51 +0900 Subject: [PATCH 031/157] test: version code --- fastlane/Fastfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 27ebbc6a..9be77e8c 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -18,7 +18,7 @@ default_platform(:android) platform :android do desc "Increment the Version Code" lane :increment_code do - latest_release = google_play_track_version_code()[0] + latest_release = google_play_track_version_codes()[0] new_release = latest_release + 1 increment_version_code( From 12a951c4c5a733941a8a937628fcab16c386e236 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Wed, 24 Jul 2024 15:34:30 +0900 Subject: [PATCH 032/157] test: add plugin --- Gemfile | 3 + Gemfile.lock | 222 ++++++++++++++++++++++++++++++++++++++++++++ fastlane/Pluginfile | 5 + 3 files changed, 230 insertions(+) create mode 100644 Gemfile.lock create mode 100644 fastlane/Pluginfile diff --git a/Gemfile b/Gemfile index 7a118b49..cdd3a6b3 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,6 @@ source "https://rubygems.org" gem "fastlane" + +plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') +eval_gemfile(plugins_path) if File.exist?(plugins_path) diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 00000000..1a0d306c --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,222 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (3.0.7) + base64 + nkf + rexml + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + artifactory (3.0.17) + atomos (0.1.3) + aws-eventstream (1.3.0) + aws-partitions (1.957.0) + aws-sdk-core (3.201.3) + aws-eventstream (~> 1, >= 1.3.0) + aws-partitions (~> 1, >= 1.651.0) + aws-sigv4 (~> 1.8) + jmespath (~> 1, >= 1.6.1) + aws-sdk-kms (1.88.0) + aws-sdk-core (~> 3, >= 3.201.0) + aws-sigv4 (~> 1.5) + aws-sdk-s3 (1.156.0) + aws-sdk-core (~> 3, >= 3.201.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.5) + aws-sigv4 (1.9.0) + aws-eventstream (~> 1, >= 1.0.2) + babosa (1.0.4) + base64 (0.2.0) + claide (1.1.0) + colored (1.2) + colored2 (3.1.2) + commander (4.6.0) + highline (~> 2.0.0) + declarative (0.0.20) + digest-crc (0.6.5) + rake (>= 12.0.0, < 14.0.0) + domain_name (0.6.20240107) + dotenv (2.8.1) + emoji_regex (3.2.3) + excon (0.111.0) + faraday (1.10.3) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) + http-cookie (~> 1.0.0) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.4) + multipart-post (~> 2) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.2.0) + faraday (~> 1.0) + fastimage (2.3.1) + fastlane (2.221.1) + CFPropertyList (>= 2.3, < 4.0.0) + addressable (>= 2.8, < 3.0.0) + artifactory (~> 3.0) + aws-sdk-s3 (~> 1.0) + babosa (>= 1.0.3, < 2.0.0) + bundler (>= 1.12.0, < 3.0.0) + colored (~> 1.2) + commander (~> 4.6) + dotenv (>= 2.1.1, < 3.0.0) + emoji_regex (>= 0.1, < 4.0) + excon (>= 0.71.0, < 1.0.0) + faraday (~> 1.0) + faraday-cookie_jar (~> 0.0.6) + faraday_middleware (~> 1.0) + fastimage (>= 2.1.0, < 3.0.0) + gh_inspector (>= 1.1.2, < 2.0.0) + google-apis-androidpublisher_v3 (~> 0.3) + google-apis-playcustomapp_v1 (~> 0.1) + google-cloud-env (>= 1.6.0, < 2.0.0) + google-cloud-storage (~> 1.31) + highline (~> 2.0) + http-cookie (~> 1.0.5) + json (< 3.0.0) + jwt (>= 2.1.0, < 3) + mini_magick (>= 4.9.4, < 5.0.0) + multipart-post (>= 2.0.0, < 3.0.0) + naturally (~> 2.2) + optparse (>= 0.1.1, < 1.0.0) + plist (>= 3.1.0, < 4.0.0) + rubyzip (>= 2.0.0, < 3.0.0) + security (= 0.1.5) + simctl (~> 1.6.3) + terminal-notifier (>= 2.0.0, < 3.0.0) + terminal-table (~> 3) + tty-screen (>= 0.6.3, < 1.0.0) + tty-spinner (>= 0.8.0, < 1.0.0) + word_wrap (~> 1.0.0) + xcodeproj (>= 1.13.0, < 2.0.0) + xcpretty (~> 0.3.0) + xcpretty-travis-formatter (>= 0.0.3, < 2.0.0) + fastlane-plugin-increment_version_code (0.4.3) + gh_inspector (1.1.3) + google-apis-androidpublisher_v3 (0.54.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-core (0.11.3) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.a) + rexml + google-apis-iamcredentials_v1 (0.17.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-playcustomapp_v1 (0.13.0) + google-apis-core (>= 0.11.0, < 2.a) + google-apis-storage_v1 (0.31.0) + google-apis-core (>= 0.11.0, < 2.a) + google-cloud-core (1.7.0) + google-cloud-env (>= 1.0, < 3.a) + google-cloud-errors (~> 1.0) + google-cloud-env (1.6.0) + faraday (>= 0.17.3, < 3.0) + google-cloud-errors (1.4.0) + google-cloud-storage (1.47.0) + addressable (~> 2.8) + digest-crc (~> 0.4) + google-apis-iamcredentials_v1 (~> 0.1) + google-apis-storage_v1 (~> 0.31.0) + google-cloud-core (~> 1.6) + googleauth (>= 0.16.2, < 2.a) + mini_mime (~> 1.0) + googleauth (1.8.1) + faraday (>= 0.17.3, < 3.a) + jwt (>= 1.4, < 3.0) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (>= 0.16, < 2.a) + highline (2.0.3) + http-cookie (1.0.6) + domain_name (~> 0.5) + httpclient (2.8.3) + jmespath (1.6.2) + json (2.7.2) + jwt (2.8.2) + base64 + mini_magick (4.13.2) + mini_mime (1.1.5) + multi_json (1.15.0) + multipart-post (2.4.1) + nanaimo (0.3.0) + naturally (2.2.1) + nkf (0.2.0) + optparse (0.5.0) + os (1.1.4) + plist (3.7.1) + public_suffix (6.0.1) + rake (13.2.1) + representable (3.2.0) + declarative (< 0.1.0) + trailblazer-option (>= 0.1.1, < 0.2.0) + uber (< 0.2.0) + retriable (3.1.2) + rexml (3.2.9) + strscan + rouge (2.0.7) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + security (0.1.5) + signet (0.19.0) + addressable (~> 2.8) + faraday (>= 0.17.5, < 3.a) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simctl (1.6.10) + CFPropertyList + naturally + strscan (3.1.0) + terminal-notifier (2.0.0) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + trailblazer-option (0.1.2) + tty-cursor (0.7.1) + tty-screen (0.8.2) + tty-spinner (0.9.3) + tty-cursor (~> 0.7) + uber (0.1.0) + unicode-display_width (2.5.0) + word_wrap (1.0.0) + xcodeproj (1.24.0) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.3) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) + nanaimo (~> 0.3.0) + rexml (~> 3.2.4) + xcpretty (0.3.0) + rouge (~> 2.0.7) + xcpretty-travis-formatter (1.0.1) + xcpretty (~> 0.2, >= 0.0.7) + +PLATFORMS + arm64-darwin-23 + ruby + +DEPENDENCIES + fastlane + fastlane-plugin-increment_version_code + +BUNDLED WITH + 2.5.3 diff --git a/fastlane/Pluginfile b/fastlane/Pluginfile new file mode 100644 index 00000000..412c2ff9 --- /dev/null +++ b/fastlane/Pluginfile @@ -0,0 +1,5 @@ +# Autogenerated by fastlane +# +# Ensure this file is checked in to source control! + +gem 'fastlane-plugin-increment_version_code' From a7c89df90bd857d1b45b585a8373dec32af397a0 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Wed, 24 Jul 2024 15:48:12 +0900 Subject: [PATCH 033/157] test: install dependency --- .github/workflows/android-ci.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index 4bff2380..9b7cfe2c 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -41,6 +41,11 @@ jobs: run: | echo "${{ secrets.KEYSTORE_FILE }}" | base64 --decode > ./app/moneymong_keystore.jks + - name: Install Dependencies + run: | + gem install bundler + bundle install + - name: Build & Deploy Android release env: SERVICE_ACCOUNT_KEY: ${{ github.workspace }}/app/service_account_key.json @@ -52,4 +57,7 @@ jobs: run: bundle exec fastlane deploy - name: Remove Credential - run: rm ./app/${SERVICE_ACCOUNT_KEY} && rm ./app/${KEYSTORE_FILE} && rm ./local.properties + run: | + rm ./app/${SERVICE_ACCOUNT_KEY} + rm ./app/${KEYSTORE_FILE} + rm ./local.properties From 65ea10112ab9d4a2fdfebb3c94617ca3297e70cc Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Wed, 24 Jul 2024 15:57:50 +0900 Subject: [PATCH 034/157] test: git path --- fastlane/Fastfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 9be77e8c..9904d1db 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -26,7 +26,7 @@ platform :android do ) git_commit( - path: ["./app/build.gradle"], + path: ["./app/build.gradle.kts"], message: "RELEASE INCREMENT VERSION CODE" ) From d46f5c0b3b09d14182d99fdd0b7a30540eb87c7e Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Wed, 24 Jul 2024 16:02:07 +0900 Subject: [PATCH 035/157] test: git add --- fastlane/Fastfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 9904d1db..4c98c89b 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -25,6 +25,9 @@ platform :android do version_code: new_release ) + git_add( + path: "./app/build.gradle.kts" + ) git_commit( path: ["./app/build.gradle.kts"], message: "RELEASE INCREMENT VERSION CODE" From 6ee1fd014d5e8d21c7c29e56ceeddde2dea0512f Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Wed, 24 Jul 2024 16:18:20 +0900 Subject: [PATCH 036/157] test: gradle path --- fastlane/Fastfile | 3 ++- fastlane/README.md | 8 ++++++++ fastlane/report.xml | 9 +-------- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 4c98c89b..475a0b0e 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -22,11 +22,12 @@ platform :android do new_release = latest_release + 1 increment_version_code( + gradle_file_path: './app/build.gradle.kts', version_code: new_release ) git_add( - path: "./app/build.gradle.kts" + path: ["./app/build.gradle.kts"] ) git_commit( path: ["./app/build.gradle.kts"], diff --git a/fastlane/README.md b/fastlane/README.md index 7ec1207f..7088ba08 100644 --- a/fastlane/README.md +++ b/fastlane/README.md @@ -15,6 +15,14 @@ For _fastlane_ installation instructions, see [Installing _fastlane_](https://do ## Android +### android increment_code + +```sh +[bundle exec] fastlane android increment_code +``` + +Increment the Version Code + ### android test ```sh diff --git a/fastlane/report.xml b/fastlane/report.xml index c5951ce4..51ae580b 100644 --- a/fastlane/report.xml +++ b/fastlane/report.xml @@ -5,14 +5,7 @@ - - - - - - - - + From dc323fb3e2bd52a284bbcc73bf7a41b380befbbe Mon Sep 17 00:00:00 2001 From: Heon Date: Thu, 25 Jul 2024 11:40:07 +0900 Subject: [PATCH 037/157] test: add permission --- .github/workflows/android-ci.yml | 2 ++ .idea/deploymentTargetSelector.xml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index 9b7cfe2c..9478b9b9 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -10,6 +10,8 @@ jobs: build: runs-on: macos-latest + permissions: + contents: write steps: - uses: actions/checkout@v4 diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index 101ad3e8..67b5f25d 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -4,10 +4,10 @@ DyTFekMeUrEv!C@;VtO`6FJ$xi#q$%>ut93bd5HZ|F3itf8bnB$;kRc=S#(0eV@rARfV8ptecw z7~Lk^!{yVf&a@=DYH;eFv6}Le)EH1E=czR%CCB~jyP-RTBodYY?;h+otu|wRsWSf7 zl}liTw2c$&ytTx3-jM2*gXCK1Nf=3}?!xBAVjzY>694}`l?^fy)t;z+oXh$lHF~Y$Q(_YDvy0je=M3Byd(Kc zk-s`%GUUpLBVqB!btKGH?QIbMR)%jB5@%Pm0uuSG(lkl8Bkf_RMK^OCvT(o16N6#Z zZ^kOi?b^Pu0vs!0kS6Uoyq>|%XDxAFd6zB@C;JEEX)Tk;aj5ik2vsPD<{MuL!2tk- zCmhOOZyge0-R+&c%vY-XPOZkSf>C@Lxv^>(lXlk2@{$$3gMwAr##cT0`+W z_zCFQT0@!B$#EXrLoR7c(;vK|09{ZN32|8shc70EQ7CbS6VwvOWAs&|f$2RTa43ol zhy%+g@ncE;SGs&L7(d!F>W$LKW(Ry3v`h3uU91f)k<+kvv?nOSi|!4keb;^+Miiv* zJ*0Yb51qNQjDC0pShZ0Y`5l8g_*slZGhU3i!kmm-q96GPux82}s zhuzSSBr9i0GlR(g_o`rF8u`(P@#(kRbRmo-IQ1n@$Jph+!(SUbk27)}>-%U^#d0Bu zh;ojUX@ThQxsrJ-DHFOB!y+feNF$+X{j#rKJ_GG#R~Nzc9pN7#%QE@^t!h%J8c)2Z zBScDA9Fn75gERh0d6GT|(5+VfG+FH_XYIK1Gqc}|XrZVYEFVabXV|E?+(c-&_E)Uh z1U@cUiQYZ>2HuS=+ZP@nbZ(Kve^?`ZLB)-WLX~=F`I9>k5uqcDUF)u?gmNi+dqY=J zO8%pn2#M>jcZ#GLTze=^6@*j?HU(@0s7i5o&}fRnZQoBjic5!{^{R;Qsw+e)#G*I9 z6pNWH#}tssQoCGWB=U5AyXKva#;){U-Hs|yRGu?QN=mNqR_{_KqqRdpf>XeDzI;KLD>Vs?FE*0#eici>NTT)Mhoa-_C8>{uJRi-! z5;A0PrPUi~raXaj6&6Yi!PA!d5+)Cww{X*oT7*S?$~DI0TJrxLB0~D;(&pgeYJXN> zpqYrx&1Or7ouj<&?&1FaP(kf!Xc5A}dZ({VuGdHHL^LG|YJ5u_Jb7YQwZBRq!oiGq zSIMeVzqOR)nQQMB5}dhyRs0(uK#lw#krION%vEG)Ef9LSKUa^7?mHbTGdxkxy4G2} z52dWE;}?4y97nx4vCTCR80;=GlaWJlz_Msg(j0}IEt=PK8EPsRu{{#?G8NbJ0 z(Djoiaq*8CNeUQoTTlzkn@)K%??L&u9ChHlRrj1q4{r!b%owX2+Vwa|wwcEVb^pXA z7qcFyuF4D@5gyc7S@XgQGk9V`4RHjkv!lWrB=plCrjGZf%*{ELio3niUHc_2*4{29 zh`-n<`>&-lx0Pc%Xl%C`O5{_@(j2Z!`5w`u?&t#}yD!Cna5$&R*Y%Z-Fi-&So?!d> zb}Bi#i(&7GZm5vC-?jl5M!3(|AQe@&>QN~IZ}Ag^ncMNUbkymE2>$nJhHy1v$@pF# zc|d=)$ry&`<>MqUamK|8Qvhf?W*dO>h*2Y1k{!@Tx~ eCi)e$CoCBX9e2;^=tu { navigateToLogin() } + + is MyMongSideEffect.FollowKakaoChannel -> { + } } } @@ -94,7 +99,11 @@ fun MyMongScreen( grade = state.grade, getInfo = viewModel::getInfo ) - Spacer(modifier = Modifier.height(24.dp)) + Spacer(modifier = Modifier.height(16.dp)) + MyMongFeedbackView( + onClick = viewModel::onClickKakaoChannel + ) + Spacer(modifier = Modifier.height(16.dp)) MyMongSettingView( navigateToTermsOfUse = viewModel::navigateToTermsOfUse, navigateToPrivacyPolicy = viewModel::navigateToPriPolicyButton, @@ -102,4 +111,4 @@ fun MyMongScreen( showLogoutDialog = { viewModel.changeLogoutDialogVisibility(true) } ) } -} +} \ No newline at end of file diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongSideEffect.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongSideEffect.kt index 3546c0ba..6b53802e 100644 --- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongSideEffect.kt +++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongSideEffect.kt @@ -7,4 +7,5 @@ sealed interface MyMongSideEffect : SideEffect { data object NavigateToPrivacyPolicy : MyMongSideEffect data object NavigateToTermsOfUse : MyMongSideEffect data object NavigateToLogin : MyMongSideEffect + data object FollowKakaoChannel : MyMongSideEffect } \ No newline at end of file diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongViewModel.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongViewModel.kt index 83f225cb..a93db28e 100644 --- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongViewModel.kt +++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongViewModel.kt @@ -94,6 +94,8 @@ class MyMongViewModel @Inject constructor( } } + fun onClickKakaoChannel() = eventEmit(MyMongSideEffect.FollowKakaoChannel) + private suspend fun clearLocalData() { saveAgencyIdUseCase(0) saveUserIdUseCase(0) diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongFeedbackView.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongFeedbackView.kt new file mode 100644 index 00000000..8954fffa --- /dev/null +++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongFeedbackView.kt @@ -0,0 +1,79 @@ +package com.moneymong.moneymong.feature.mymong.main.view + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.moneymong.moneymong.design_system.component.button.MDSButton +import com.moneymong.moneymong.design_system.component.button.MDSButtonSize +import com.moneymong.moneymong.design_system.component.button.MDSButtonType +import com.moneymong.moneymong.design_system.theme.Body4 +import com.moneymong.moneymong.design_system.theme.Gray08 +import com.moneymong.moneymong.design_system.R +import com.moneymong.moneymong.design_system.theme.White +import com.moneymong.moneymong.feature.mymong.main.util.myMongRoundRectShadow + +@Composable +fun MyMongFeedbackView( + modifier: Modifier = Modifier, + onClick: () -> Unit +) { + Box( + modifier = modifier + .myMongRoundRectShadow() + .background(color = White, shape = RoundedCornerShape(12.dp)) + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween + ) { + Column { + Text( + text = "머니몽에게 자유롭게\n문의 해보세요!", + style = Body4, + color = Gray08 + ) + Spacer(modifier = Modifier.height(8.dp)) + MDSButton( + modifier = Modifier.padding(end = 10.dp), + text = "머니몽 팀에게 카톡하기", + size = MDSButtonSize.SMALL, + type = MDSButtonType.SECONDARY, + contentHorizontalPadding = 12.dp, + onClick = onClick + ) + } + Image( + modifier = Modifier.size(134.dp), + painter = painterResource(id = R.drawable.img_kakao_feedback), + contentDescription = null + ) + } + } +} + +@Preview(showBackground = true) +@Composable +fun MyMongFeedbackPreview() { + MyMongFeedbackView { + + } +} \ No newline at end of file diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongSettingView.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongSettingView.kt index 4142be59..6e2f6865 100644 --- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongSettingView.kt +++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongSettingView.kt @@ -51,12 +51,6 @@ internal fun MyMongSettingView( }.versionName Column(modifier = modifier.fillMaxWidth()) { - Text( - text = "내 설정", - color = Gray10, - style = Body4 - ) - Spacer(modifier = Modifier.height(8.dp)) Column( modifier = Modifier .fillMaxWidth() From d1c2a62a6d548f771e8c4d283707e99107db1cf6 Mon Sep 17 00:00:00 2001 From: Heon Date: Thu, 15 Aug 2024 23:06:17 +0900 Subject: [PATCH 114/157] =?UTF-8?q?feat:=20=EC=86=8C=EC=86=8D=20=EC=B0=BE?= =?UTF-8?q?=EA=B8=B0=20=ED=94=BC=EB=93=9C=EB=B0=B1=20ui=20=EA=B0=9C?= =?UTF-8?q?=EB=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/res/drawable/img_agency_feedback.png | Bin 0 -> 13014 bytes .../agency/search/AgencySearchScreen.kt | 62 ++++++++----- .../agency/search/item/AgencyFeedbackItem.kt | 87 ++++++++++++++++++ 3 files changed, 128 insertions(+), 21 deletions(-) create mode 100644 core/design-system/src/main/res/drawable/img_agency_feedback.png create mode 100644 feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/item/AgencyFeedbackItem.kt diff --git a/core/design-system/src/main/res/drawable/img_agency_feedback.png b/core/design-system/src/main/res/drawable/img_agency_feedback.png new file mode 100644 index 0000000000000000000000000000000000000000..e1795fe01d2d8143f2bbf043c6f14608c4357a06 GIT binary patch literal 13014 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 literal 0 HcmV?d00001 diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt index 8796ae61..a733b24d 100644 --- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt +++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt @@ -42,6 +42,7 @@ import com.moneymong.moneymong.design_system.theme.Gray08 import com.moneymong.moneymong.design_system.theme.MMHorizontalSpacing import com.moneymong.moneymong.design_system.theme.Red03 import com.moneymong.moneymong.feature.agency.search.component.AgencySearchTopBar +import com.moneymong.moneymong.feature.agency.search.item.AgencyFeedbackItem import com.moneymong.moneymong.feature.agency.search.item.AgencyItem import org.orbitmvi.orbit.compose.collectAsState import org.orbitmvi.orbit.compose.collectSideEffect @@ -159,13 +160,15 @@ private fun AgencySearchContentView( if (pagingItems.itemCount == 0) { ContentViewWithoutAgencies( modifier = modifier, - pagingItems = pagingItems + pagingItems = pagingItems, + onClickFeedbackItem = {} ) } else { ContentViewWithAgencies( modifier = modifier, pagingItems = pagingItems, - onClickItem = onClickItem + onClickItem = onClickItem, + onClickFeedbackItem = {} ) } } @@ -176,13 +179,19 @@ private fun AgencySearchContentView( private fun ContentViewWithAgencies( modifier: Modifier = Modifier, pagingItems: LazyPagingItems, - onClickItem: (agencyId: Long) -> Unit + onClickItem: (agencyId: Long) -> Unit, + onClickFeedbackItem: () -> Unit ) { LazyColumn( modifier = modifier, verticalArrangement = Arrangement.spacedBy(12.dp), contentPadding = PaddingValues(vertical = 4.dp) ) { + item { + AgencyFeedbackItem( + onClick = onClickFeedbackItem + ) + } items( count = pagingItems.itemCount, key = pagingItems.itemKey { it.id } ) { @@ -221,6 +230,7 @@ private fun ContentViewWithAgencies( private fun ContentViewWithoutAgencies( modifier: Modifier = Modifier, pagingItems: LazyPagingItems, + onClickFeedbackItem: () -> Unit ) { when (pagingItems.loadState.refresh) { @@ -238,25 +248,35 @@ private fun ContentViewWithoutAgencies( } is LoadState.NotLoading -> { - Column( - modifier = modifier, - verticalArrangement = Arrangement.spacedBy( - space = 8.dp, - alignment = Alignment.CenterVertically - ), - horizontalAlignment = Alignment.CenterHorizontally - ) { - Image( - modifier = Modifier.size(size = 80.dp), - painter = painterResource(id = R.drawable.img_agency), - contentDescription = "agency image", - ) - Text( - text = "아직 등록된 소속이 없어요\n하단 버튼을 통해 등록해보세요", - textAlign = TextAlign.Center, - color = Gray08, - style = Body4 + Box(modifier = Modifier.fillMaxSize()) { + AgencyFeedbackItem( + modifier = Modifier + .align(Alignment.TopCenter) + .padding(top = 10.dp), + onClick = onClickFeedbackItem ) + Column( + modifier = modifier + .fillMaxSize() + .align(Alignment.Center), + verticalArrangement = Arrangement.spacedBy( + space = 8.dp, + alignment = Alignment.CenterVertically + ), + horizontalAlignment = Alignment.CenterHorizontally + ) { + Image( + modifier = Modifier.size(size = 80.dp), + painter = painterResource(id = R.drawable.img_agency), + contentDescription = "agency image", + ) + Text( + text = "아직 등록된 소속이 없어요\n하단 버튼을 통해 등록해보세요", + textAlign = TextAlign.Center, + color = Gray08, + style = Body4 + ) + } } } } diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/item/AgencyFeedbackItem.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/item/AgencyFeedbackItem.kt new file mode 100644 index 00000000..ddcd7e40 --- /dev/null +++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/item/AgencyFeedbackItem.kt @@ -0,0 +1,87 @@ +package com.moneymong.moneymong.feature.agency.search.item + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.moneymong.moneymong.design_system.theme.Body4 +import com.moneymong.moneymong.design_system.theme.White +import com.moneymong.moneymong.design_system.R +import com.moneymong.moneymong.design_system.theme.Blue04 +import com.moneymong.moneymong.design_system.theme.Body2 +import com.moneymong.moneymong.design_system.theme.SkyBlue01 + +@Composable +fun AgencyFeedbackItem( + modifier: Modifier = Modifier, + onClick: () -> Unit +) { + val colorStops = arrayOf( + 0.0f to Color(0xFF9181F6), + 0.31f to Color(0xFF5562FF), + 0.67f to Color(0xFFC7C2FF), + 1f to Color(0xFFC4EAFF) + ) + + Row( + modifier = modifier + .fillMaxWidth() + .clip(RoundedCornerShape(16.dp)) + .background(Brush.horizontalGradient(colorStops = colorStops)) + .clickable { onClick() } + .padding(horizontal = 18.dp, vertical = 16.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Center + ) { + Text( + text = "머니몽에게 의견 제안하기", + style = Body4, + color = White + ) + Spacer(modifier = Modifier.width(2.dp)) + Image( + modifier = Modifier.size(36.dp), + painter = painterResource(id = R.drawable.img_agency_feedback), + contentDescription = null + ) + Spacer(modifier = Modifier.width(2.dp)) + Box( + modifier = Modifier + .clip(RoundedCornerShape(100.dp)) + .background(SkyBlue01) + ) { + Text( + modifier = Modifier.padding(horizontal = 8.dp, vertical = 6.dp), + text = "스벅 기프티콘", + style = Body2, + color = Blue04 + ) + } + } +} + +@Preview(showBackground = true) +@Composable +fun AgencyFeedbackItemPreview() { + AgencyFeedbackItem { + } +} \ No newline at end of file From 85ca1c8437c44f7dc7346d877717beeb746b9acc Mon Sep 17 00:00:00 2001 From: Heon Date: Fri, 16 Aug 2024 11:35:06 +0900 Subject: [PATCH 115/157] =?UTF-8?q?feat:=20=EC=86=8C=EC=86=8D=20=EC=B0=BE?= =?UTF-8?q?=EA=B8=B0=20empty=20screen=20padding=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/agency/search/AgencySearchScreen.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt index a733b24d..17578a28 100644 --- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt +++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt @@ -36,9 +36,9 @@ import com.moneymong.moneymong.design_system.component.tooltip.MDSToolTipPositio import com.moneymong.moneymong.design_system.error.ErrorDialog import com.moneymong.moneymong.design_system.error.ErrorItem import com.moneymong.moneymong.design_system.error.ErrorScreen -import com.moneymong.moneymong.design_system.theme.Body4 +import com.moneymong.moneymong.design_system.theme.Body3 import com.moneymong.moneymong.design_system.theme.Gray01 -import com.moneymong.moneymong.design_system.theme.Gray08 +import com.moneymong.moneymong.design_system.theme.Gray07 import com.moneymong.moneymong.design_system.theme.MMHorizontalSpacing import com.moneymong.moneymong.design_system.theme.Red03 import com.moneymong.moneymong.feature.agency.search.component.AgencySearchTopBar @@ -157,7 +157,7 @@ private fun AgencySearchContentView( }, ) } else { - if (pagingItems.itemCount == 0) { + if (pagingItems.itemCount != 0) { ContentViewWithoutAgencies( modifier = modifier, pagingItems = pagingItems, @@ -260,7 +260,7 @@ private fun ContentViewWithoutAgencies( .fillMaxSize() .align(Alignment.Center), verticalArrangement = Arrangement.spacedBy( - space = 8.dp, + space = 4.dp, alignment = Alignment.CenterVertically ), horizontalAlignment = Alignment.CenterHorizontally @@ -273,8 +273,8 @@ private fun ContentViewWithoutAgencies( Text( text = "아직 등록된 소속이 없어요\n하단 버튼을 통해 등록해보세요", textAlign = TextAlign.Center, - color = Gray08, - style = Body4 + color = Gray07, + style = Body3 ) } } From 5d54fd46cfa6cdd7c0a49ddca193cf7f963d0b17 Mon Sep 17 00:00:00 2001 From: Heon Date: Fri, 16 Aug 2024 12:07:10 +0900 Subject: [PATCH 116/157] =?UTF-8?q?feat:=20=EC=9D=98=EA=B2=AC=20=EC=A0=9C?= =?UTF-8?q?=EC=95=88=20=ED=81=B4=EB=A6=AD=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/agency/search/AgencySearchScreen.kt | 17 ++++++++++++++--- .../agency/search/AgencySearchSideEffect.kt | 1 + .../agency/search/AgencySearchViewModel.kt | 2 ++ .../feature/mymong/main/MyMongScreen.kt | 5 +++++ .../mymong/main/view/MyMongFeedbackView.kt | 3 ++- 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt index 17578a28..8e7b1d0b 100644 --- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt +++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt @@ -1,5 +1,7 @@ package com.moneymong.moneymong.feature.agency.search +import android.content.Intent +import android.net.Uri import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement @@ -18,6 +20,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp @@ -55,6 +58,7 @@ fun AgencySearchScreen( navigateAgencyJoin: (agencyId: Long) -> Unit ) { val state by viewModel.collectAsState() + val context = LocalContext.current val pagingItems = viewModel.agencies.collectAsLazyPagingItems() viewModel.collectSideEffect { @@ -66,6 +70,11 @@ fun AgencySearchScreen( is AgencySearchSideEffect.NavigateToAgencyJoin -> { navigateAgencyJoin(it.agencyId) } + + is AgencySearchSideEffect.FollowAsk -> { + val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://asked.kr/moneymong")) + context.startActivity(intent) + } } } @@ -100,6 +109,7 @@ fun AgencySearchScreen( viewModel.navigateToJoin(agencyId) } }, + onClickFeedbackItem = viewModel::onClickAskFeedback, isLoading = state.isLoading, isError = state.isError, errorMessage = state.errorMessage, @@ -133,6 +143,7 @@ private fun AgencySearchContentView( modifier: Modifier = Modifier, pagingItems: LazyPagingItems, onClickItem: (agencyId: Long) -> Unit, + onClickFeedbackItem: () -> Unit, isLoading: Boolean, isError: Boolean, errorMessage: String, @@ -157,18 +168,18 @@ private fun AgencySearchContentView( }, ) } else { - if (pagingItems.itemCount != 0) { + if (pagingItems.itemCount == 0) { ContentViewWithoutAgencies( modifier = modifier, pagingItems = pagingItems, - onClickFeedbackItem = {} + onClickFeedbackItem = onClickFeedbackItem ) } else { ContentViewWithAgencies( modifier = modifier, pagingItems = pagingItems, onClickItem = onClickItem, - onClickFeedbackItem = {} + onClickFeedbackItem = onClickFeedbackItem ) } } diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchSideEffect.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchSideEffect.kt index 4934e6e8..84fd3c20 100644 --- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchSideEffect.kt +++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchSideEffect.kt @@ -5,4 +5,5 @@ import com.moneymong.moneymong.common.base.SideEffect sealed interface AgencySearchSideEffect : SideEffect { data class NavigateToRegister(val isUniversityStudent: Boolean) : AgencySearchSideEffect data class NavigateToAgencyJoin(val agencyId: Long) : AgencySearchSideEffect + data object FollowAsk : AgencySearchSideEffect } \ No newline at end of file diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchViewModel.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchViewModel.kt index c27bcd1e..0f7ff711 100644 --- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchViewModel.kt +++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchViewModel.kt @@ -87,4 +87,6 @@ class AgencySearchViewModel @Inject constructor( state.copy(visibleWarningDialog = visible) } } + + fun onClickAskFeedback() = eventEmit(AgencySearchSideEffect.FollowAsk) } \ No newline at end of file diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongScreen.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongScreen.kt index 648fc61b..74d1a373 100644 --- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongScreen.kt +++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/MyMongScreen.kt @@ -1,5 +1,7 @@ package com.moneymong.moneymong.feature.mymong.main +import android.content.Intent +import android.net.Uri import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer @@ -37,6 +39,7 @@ fun MyMongScreen( navigateToLogin: () -> Unit, ) { val state by viewModel.collectAsState() + val context = LocalContext.current viewModel.collectSideEffect { when (it) { @@ -57,6 +60,8 @@ fun MyMongScreen( } is MyMongSideEffect.FollowKakaoChannel -> { + val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://pf.kakao.com/_zDsyG")) + context.startActivity(intent) } } } diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongFeedbackView.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongFeedbackView.kt index 8954fffa..79611e96 100644 --- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongFeedbackView.kt +++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongFeedbackView.kt @@ -17,6 +17,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.moneymong.moneymong.design_system.component.button.MDSButton @@ -48,7 +49,7 @@ fun MyMongFeedbackView( Column { Text( text = "머니몽에게 자유롭게\n문의 해보세요!", - style = Body4, + style = Body4.copy(fontWeight = FontWeight.Bold), color = Gray08 ) Spacer(modifier = Modifier.height(8.dp)) From 39125a4b3c76345f64846f81b669813384f0a87b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=95=88=EB=B3=91=ED=97=8C?= <64366488+Heonbyeong@users.noreply.github.com> Date: Sun, 18 Aug 2024 21:24:15 +0900 Subject: [PATCH 117/157] Update Fastfile --- fastlane/Fastfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 9b78da63..3dc6c53b 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -95,7 +95,7 @@ platform :android do gradle( task: 'clean assemble', flavor: "tb", - build_type: 'Release' + build_type: 'Debug' ) firebase_app_distribution( service_credentials_file: "#{ENV["FIREBASE_CREDENTIALS"]}", From f788a27d9a24f31608f8625ad6aaeb2e18ffd9b7 Mon Sep 17 00:00:00 2001 From: eunseo Date: Mon, 19 Aug 2024 22:20:02 +0900 Subject: [PATCH 118/157] =?UTF-8?q?fix:=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=ED=99=94=EB=A9=B4=20text=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneymong/moneymong/feature/sign/view/SignUpTitleView.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/view/SignUpTitleView.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/view/SignUpTitleView.kt index 0546e5c9..dad5d7e5 100644 --- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/view/SignUpTitleView.kt +++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/view/SignUpTitleView.kt @@ -21,13 +21,13 @@ fun SignUpTitleView(modifier: Modifier = Modifier, subTitleState: Boolean) { horizontalAlignment = Alignment.Start ) { Text( - text = "회원가입을 진행해주세요", + text = "대학정보를 알려주세요!", style = Heading2, color = Black ) Text( modifier = Modifier.padding(top= 8.dp), - text = "아래 항목들을 정확히 채워주세요", + text = "학교 이름과 학년을 선택해주세요.", style = Body3, color = if (!subTitleState) Gray06.copy(alpha = 0.4f) else Gray06 From 614e4019e53201272bbc6a2b017acb0420f7a63d Mon Sep 17 00:00:00 2001 From: Anka Date: Mon, 19 Aug 2024 13:23:13 +0000 Subject: [PATCH 119/157] INCREMENT VERSION CODE --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 14585c04..92d6ee8d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -21,7 +21,7 @@ android { applicationId = "com.moneymong.moneymong" minSdk = 24 targetSdk = 34 - versionCode = 14 + versionCode = 15 versionName = "1.2.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" From 42055848cc2413243a57b612be39cce7fad34e4d Mon Sep 17 00:00:00 2001 From: Heon Date: Wed, 21 Aug 2024 18:55:33 +0900 Subject: [PATCH 120/157] chore: auto reviewer --- .github/reviewer.yml | 10 ++++++++++ .github/workflows/auto-reviewer.yml | 16 ++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 .github/reviewer.yml create mode 100644 .github/workflows/auto-reviewer.yml diff --git a/.github/reviewer.yml b/.github/reviewer.yml new file mode 100644 index 00000000..30d2fe57 --- /dev/null +++ b/.github/reviewer.yml @@ -0,0 +1,10 @@ +addReviewers: true + +addAssignees: author + +reviewers: + - Heonbyeong + - jhg3410 + - eunseo0105 + +numberOfReviewers: 1 \ No newline at end of file diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml new file mode 100644 index 00000000..bfe8ef5e --- /dev/null +++ b/.github/workflows/auto-reviewer.yml @@ -0,0 +1,16 @@ +name: Auto Reviewer + +on: + pull_request: + branches: + - 'develop' + types: [opened, reopened] + +jobs: + assign-reviewer: + runs-on: macos-latest + steps: + - name: Assign Reviewers + uses: kentaro-m/auto-assign-action@v2 + with: + configuration-path: '.github/reviewer.yml' \ No newline at end of file From c3ba1474046be39e8a6a64a88dcfaefb5f447750 Mon Sep 17 00:00:00 2001 From: Heon Date: Wed, 21 Aug 2024 18:57:42 +0900 Subject: [PATCH 121/157] chore: auto assign action version --- .github/workflows/auto-reviewer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index bfe8ef5e..298e50d7 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -11,6 +11,6 @@ jobs: runs-on: macos-latest steps: - name: Assign Reviewers - uses: kentaro-m/auto-assign-action@v2 + uses: kentaro-m/auto-assign-action@v1.2.1 with: configuration-path: '.github/reviewer.yml' \ No newline at end of file From 1cf686aacff5a01719cf3c9ffb8f9b4b15a432de Mon Sep 17 00:00:00 2001 From: Heon Date: Wed, 21 Aug 2024 19:08:18 +0900 Subject: [PATCH 122/157] =?UTF-8?q?chore:=20random=20reviewer=20config=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/reviewer.yml | 21 +++++++++++++++++++-- .github/workflows/auto-reviewer.yml | 4 ++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/.github/reviewer.yml b/.github/reviewer.yml index 30d2fe57..d5066209 100644 --- a/.github/reviewer.yml +++ b/.github/reviewer.yml @@ -1,10 +1,27 @@ +# Set to true to add reviewers to pull requests addReviewers: true -addAssignees: author +# Set to true to add assignees to pull requests +addAssignees: false +# A list of reviewers to be added to pull requests (GitHub user name) reviewers: - Heonbyeong - jhg3410 - eunseo0105 -numberOfReviewers: 1 \ No newline at end of file +# A number of reviewers added to the pull request +# Set 0 to add all the reviewers (default: 0) +numberOfReviewers: 1 +# A list of assignees, overrides reviewers if set +# assignees: +# - assigneeA + +# A number of assignees to add to the pull request +# Set to 0 to add all of the assignees. +# Uses numberOfReviewers if unset. +# numberOfAssignees: 2 + +# A list of keywords to be skipped the process that add reviewers if pull requests include it +# skipKeywords: +# - wip diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index 298e50d7..493adec9 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -8,9 +8,9 @@ on: jobs: assign-reviewer: - runs-on: macos-latest + runs-on: ubuntu-latest steps: - name: Assign Reviewers - uses: kentaro-m/auto-assign-action@v1.2.1 + uses: kentaro-m/auto-assign-action@v2.0.0 with: configuration-path: '.github/reviewer.yml' \ No newline at end of file From 22bfe8ce5f5bc88e28700eb73a2676e0038abc6b Mon Sep 17 00:00:00 2001 From: Heon Date: Wed, 21 Aug 2024 19:09:41 +0900 Subject: [PATCH 123/157] chore: add permissions --- .github/workflows/auto-reviewer.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index 493adec9..1e157909 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -9,6 +9,9 @@ on: jobs: assign-reviewer: runs-on: ubuntu-latest + permissions: + contents: write + steps: - name: Assign Reviewers uses: kentaro-m/auto-assign-action@v2.0.0 From 67c6f697747e4cfc0caa43f88f9713cc41641f0b Mon Sep 17 00:00:00 2001 From: Heon Date: Wed, 21 Aug 2024 19:12:36 +0900 Subject: [PATCH 124/157] =?UTF-8?q?chore:=20pr=20=EA=B6=8C=ED=95=9C?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/auto-reviewer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index 1e157909..a5b31191 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -10,7 +10,7 @@ jobs: assign-reviewer: runs-on: ubuntu-latest permissions: - contents: write + pull-requests: write steps: - name: Assign Reviewers From 5a38de89323e9494ab0a23dc015efceb738a0ced Mon Sep 17 00:00:00 2001 From: Heon Date: Wed, 21 Aug 2024 19:27:21 +0900 Subject: [PATCH 125/157] chore: get label --- .github/workflows/auto-reviewer.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index a5b31191..310fd44d 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -16,4 +16,12 @@ jobs: - name: Assign Reviewers uses: kentaro-m/auto-assign-action@v2.0.0 with: - configuration-path: '.github/reviewer.yml' \ No newline at end of file + configuration-path: '.github/reviewer.yml' + + - name: Get PR Labels + id: get_labels + uses: actions/github-script@v6 + with: + script: | + const labels = context.payload.pull_request.labels.map(label => label.name); + console.log(`Labels: ${labels.join(', ')}`); \ No newline at end of file From 80ef224c648124d0a2312107a044113b154da9a7 Mon Sep 17 00:00:00 2001 From: Heon Date: Wed, 21 Aug 2024 20:00:54 +0900 Subject: [PATCH 126/157] chore: pr url print --- .github/workflows/auto-reviewer.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index 310fd44d..d1e5e413 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -24,4 +24,5 @@ jobs: with: script: | const labels = context.payload.pull_request.labels.map(label => label.name); - console.log(`Labels: ${labels.join(', ')}`); \ No newline at end of file + console.log(`Labels: ${labels.join(', ')}`); + console.log('url : ${{ github.event.pull_request.html_url }}'); \ No newline at end of file From d75d3bd60d2bab59667299919207cd78c7ff0c71 Mon Sep 17 00:00:00 2001 From: Heon Date: Thu, 22 Aug 2024 00:47:26 +0900 Subject: [PATCH 127/157] chore: send slack target opened pr --- .github/workflows/auto-reviewer.yml | 93 +++++++++++++++++++++++++++-- 1 file changed, 88 insertions(+), 5 deletions(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index d1e5e413..4449ad2e 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -4,7 +4,7 @@ on: pull_request: branches: - 'develop' - types: [opened, reopened] + types: [ opened, reopened ] jobs: assign-reviewer: @@ -19,10 +19,93 @@ jobs: configuration-path: '.github/reviewer.yml' - name: Get PR Labels - id: get_labels + id: labels_id + run: echo "::set-output name:labels::${{ github.event.pull_request.labels[*].name }}" + + - name: Get PR URL + id: url_id + run: echo "::set-output name=url::${{ github.event.pull_request.html_url }}" + + - name: Get PR Author + id: author_id + uses: actions/github-script@v6 + with: + script: | + const author = context.payload.pull_request.user.login; + core.setOutput('pr_author', author); + + - name: Get Slack Member ID + id: slack_id uses: actions/github-script@v6 with: script: | - const labels = context.payload.pull_request.labels.map(label => label.name); - console.log(`Labels: ${labels.join(', ')}`); - console.log('url : ${{ github.event.pull_request.html_url }}'); \ No newline at end of file + const author = ${{ steps.author.outputs.pr_author }}; + let selectedId; + + if (author === "Heonbyeong") { + selectedId = ${{ secrets.SLACK_ID_ABH }}; + } else if (author === "jhg3410") { + selectedId = ${{ secrets.SLACK_ID_JHG }}; + } else if (author === "eunseo0105") { + selectedId = ${{ secrets.SLACK_ID_KES }}; + } else { + core.setFailed(`Not Found Author.`); + } + + core.setOutput('selected_id', selectedId); + + - name: Send custom JSON data to Slack workflow + id: slack + uses: slackapi/slack-github-action@v1.26.0 + with: + payload: | + { + "blocks": [ + { + "type": "header", + "text": { + "type": "plain_text", + "text": "새로운 PR이 등록되었습니다! 👾", + "emoji": true + } + }, + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "마감일 전까지 늦지 않게 리뷰를 완료하고, 해당 스레드에 공유해주세요!\n<${{ steps.url_id.outputs.url }}>" + } + }, + { + "type": "divider" + }, + { + "type": "section", + "fields": [ + { + "type": "mrkdwn", + "text": "*PR Author*\${{ steps.author_id.outputs.pr_author }}" + }, + { + "type": "mrkdwn", + "text": "*Reviewer*\n<@${{ steps.slack_id.outputs.pr_author }}>" + } + ] + }, + { + "type": "section", + "fields": [ + { + "type": "mrkdwn", + "text": "*Priority*\n${{ steps.label_id.outputs.labels }}" + }, + { + "type": "mrkdwn", + "text": "*Due Date*\n2024년 8월 22일" + } + ] + } + ] + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.PR_SLACK_WEBHOOK_URL }} From af605455870b25845939f977bbe6062eb6fa8b51 Mon Sep 17 00:00:00 2001 From: Heon Date: Thu, 22 Aug 2024 00:58:25 +0900 Subject: [PATCH 128/157] =?UTF-8?q?chore:=20set-output=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/auto-reviewer.yml | 38 +++++++++++++++++------------ 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index 4449ad2e..6585c2c3 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -19,27 +19,35 @@ jobs: configuration-path: '.github/reviewer.yml' - name: Get PR Labels - id: labels_id - run: echo "::set-output name:labels::${{ github.event.pull_request.labels[*].name }}" + run: echo "PR_LABELS=${{ github.event.pull_request.labels[*].name }}" >> $GITHUB_ENV - name: Get PR URL - id: url_id - run: echo "::set-output name=url::${{ github.event.pull_request.html_url }}" + run: echo "PR_URL=${{ github.event.pull_request.html_url }}" >> $GITHUB_ENV - name: Get PR Author - id: author_id - uses: actions/github-script@v6 - with: - script: | - const author = context.payload.pull_request.user.login; - core.setOutput('pr_author', author); + run: echo "PR_AUTHOR=${{ github.event.pull_request.user.login }}" >> $GITHUB_ENV + +# - name: Get Assigned Reviewer +# uses: actions/github-script@v6 +# id: get_reviewers +# with: +# script: | +# const reviewers = await github.pulls.listRequestedReviewers({ +# owner: context.repo.owner, +# repo: context.repo.repo, +# pull_number: context.payload.pull_request.number +# }); +# +# const reviewerNames = reviewers.data.users.map(user => user.login).join(','); +# console.log(`Assigned reviewers: ${reviewerNames}`); +# return reviewerNames; - name: Get Slack Member ID id: slack_id uses: actions/github-script@v6 with: script: | - const author = ${{ steps.author.outputs.pr_author }}; + const author = $PR_AUTHOR let selectedId; if (author === "Heonbyeong") { @@ -73,7 +81,7 @@ jobs: "type": "section", "text": { "type": "mrkdwn", - "text": "마감일 전까지 늦지 않게 리뷰를 완료하고, 해당 스레드에 공유해주세요!\n<${{ steps.url_id.outputs.url }}>" + "text": "마감일 전까지 늦지 않게 리뷰를 완료하고, 해당 스레드에 공유해주세요!\n<$PR_URL>" } }, { @@ -84,11 +92,11 @@ jobs: "fields": [ { "type": "mrkdwn", - "text": "*PR Author*\${{ steps.author_id.outputs.pr_author }}" + "text": "*PR Author*\$PR_AUTHOR" }, { "type": "mrkdwn", - "text": "*Reviewer*\n<@${{ steps.slack_id.outputs.pr_author }}>" + "text": "*Reviewer*\n<@$PR_AUTHOR>" } ] }, @@ -97,7 +105,7 @@ jobs: "fields": [ { "type": "mrkdwn", - "text": "*Priority*\n${{ steps.label_id.outputs.labels }}" + "text": "*Priority*\n$PR_LABELS" }, { "type": "mrkdwn", From 0ae7e54972376c71948af9118b7fac84378cad08 Mon Sep 17 00:00:00 2001 From: Heon Date: Thu, 22 Aug 2024 01:01:47 +0900 Subject: [PATCH 129/157] =?UTF-8?q?chore:=20js=20github=20env=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/auto-reviewer.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index 6585c2c3..3afa6926 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -47,15 +47,15 @@ jobs: uses: actions/github-script@v6 with: script: | - const author = $PR_AUTHOR + const author = process.env.PR_AUTHOR let selectedId; if (author === "Heonbyeong") { - selectedId = ${{ secrets.SLACK_ID_ABH }}; + selectedId = process.env.SLACK_ID_ABH; } else if (author === "jhg3410") { - selectedId = ${{ secrets.SLACK_ID_JHG }}; + selectedId = process.env.SLACK_ID_JHG; } else if (author === "eunseo0105") { - selectedId = ${{ secrets.SLACK_ID_KES }}; + selectedId = process.env.SLACK_ID_KES; } else { core.setFailed(`Not Found Author.`); } From 208f20d5e5a57d5ef6bb2b2c36f383f005fbb301 Mon Sep 17 00:00:00 2001 From: Heon Date: Thu, 22 Aug 2024 01:04:05 +0900 Subject: [PATCH 130/157] chore: slack webhook type add --- .github/workflows/auto-reviewer.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index 3afa6926..2338e1e9 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -117,3 +117,4 @@ jobs: } env: SLACK_WEBHOOK_URL: ${{ secrets.PR_SLACK_WEBHOOK_URL }} + SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK \ No newline at end of file From 4e2dcd6d82d37d79f24864763a8a79ccd2a7afaf Mon Sep 17 00:00:00 2001 From: Heon Date: Thu, 22 Aug 2024 01:19:15 +0900 Subject: [PATCH 131/157] chore: slack verification add --- .github/workflows/auto-reviewer.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index 2338e1e9..ec47c4bf 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -66,6 +66,7 @@ jobs: id: slack uses: slackapi/slack-github-action@v1.26.0 with: + channel-id: ${{ env.SLACK_CHANNEL_ID }} payload: | { "blocks": [ @@ -116,5 +117,5 @@ jobs: ] } env: - SLACK_WEBHOOK_URL: ${{ secrets.PR_SLACK_WEBHOOK_URL }} - SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK \ No newline at end of file + SLACK_BOT_TOKEN: ${{ secrets.SLACK_PR_BOT_TOKEN }} + SLACK_CHANNEL_ID: ${{ secrets.SLACK_ANDROID_CHANNEL_ID }} \ No newline at end of file From 9f28863f0a12ae1aae799205fad48598544a79ab Mon Sep 17 00:00:00 2001 From: Heon Date: Thu, 22 Aug 2024 01:23:44 +0900 Subject: [PATCH 132/157] chore: fix json payload --- .github/workflows/auto-reviewer.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index ec47c4bf..dad22a26 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -82,7 +82,7 @@ jobs: "type": "section", "text": { "type": "mrkdwn", - "text": "마감일 전까지 늦지 않게 리뷰를 완료하고, 해당 스레드에 공유해주세요!\n<$PR_URL>" + "text": "마감일 전까지 늦지 않게 리뷰를 완료하고, 해당 스레드에 공유해주세요!\n<${{ env.PR_URL }}>" } }, { @@ -93,11 +93,11 @@ jobs: "fields": [ { "type": "mrkdwn", - "text": "*PR Author*\$PR_AUTHOR" + "text": "*PR Author*\n${{ env.PR_AUTHOR }}" }, { "type": "mrkdwn", - "text": "*Reviewer*\n<@$PR_AUTHOR>" + "text": "*Reviewer*\n<@${{ steps.slack_id.outputs.selected_id }}>" } ] }, @@ -106,7 +106,7 @@ jobs: "fields": [ { "type": "mrkdwn", - "text": "*Priority*\n$PR_LABELS" + "text": "*Priority*\n${{ env.PR_LABELS }}" }, { "type": "mrkdwn", From e8ec90e08b8334ae76535320c2d79bc19729dd3f Mon Sep 17 00:00:00 2001 From: Heon Date: Thu, 22 Aug 2024 01:27:24 +0900 Subject: [PATCH 133/157] chore: top-level add text --- .github/workflows/auto-reviewer.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index dad22a26..d229b0ea 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -69,6 +69,7 @@ jobs: channel-id: ${{ env.SLACK_CHANNEL_ID }} payload: | { + "text": "새로운 PR이 등록되었습니다! 👾\n마감일 전까지 늦지 않게 리뷰를 완료하고, 해당 스레드에 공유해주세요!", "blocks": [ { "type": "header", From 2446a3ac41278813a123dbc3010860b3ebff11fe Mon Sep 17 00:00:00 2001 From: Heon Date: Thu, 22 Aug 2024 01:38:08 +0900 Subject: [PATCH 134/157] =?UTF-8?q?chore:=20env=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/auto-reviewer.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index d229b0ea..274d10b4 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -19,7 +19,9 @@ jobs: configuration-path: '.github/reviewer.yml' - name: Get PR Labels - run: echo "PR_LABELS=${{ github.event.pull_request.labels[*].name }}" >> $GITHUB_ENV + run: | + PR_LABELS=$(echo "${{ github.event.pull_request.labels[*].name }}" | tr ' ' ',') + echo "PR_LABELS=$PR_LABELS" >> $GITHUB_ENV - name: Get PR URL run: echo "PR_URL=${{ github.event.pull_request.html_url }}" >> $GITHUB_ENV @@ -62,6 +64,9 @@ jobs: core.setOutput('selected_id', selectedId); + - name: Save Slack Member ID to Github ENV + run: echo "SLACK_MEMBER_ID=${{ steps.slack_id.outputs.selected_id }}" >> $GITHUB_ENV + - name: Send custom JSON data to Slack workflow id: slack uses: slackapi/slack-github-action@v1.26.0 @@ -98,7 +103,7 @@ jobs: }, { "type": "mrkdwn", - "text": "*Reviewer*\n<@${{ steps.slack_id.outputs.selected_id }}>" + "text": "*Reviewer*\n<@${{ env.SLACK_MEMBER_ID }}>" } ] }, From d5c9aeb450d5c9221263436e2af6c96bd52b6bfc Mon Sep 17 00:00:00 2001 From: Heon Date: Thu, 22 Aug 2024 01:42:41 +0900 Subject: [PATCH 135/157] =?UTF-8?q?chore:=20env=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/auto-reviewer.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index 274d10b4..762fb4a5 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -19,9 +19,7 @@ jobs: configuration-path: '.github/reviewer.yml' - name: Get PR Labels - run: | - PR_LABELS=$(echo "${{ github.event.pull_request.labels[*].name }}" | tr ' ' ',') - echo "PR_LABELS=$PR_LABELS" >> $GITHUB_ENV + run: echo "PR_LABELS=${{ github.event.pull_request.labels.[0].name }}" >> $GITHUB_ENV - name: Get PR URL run: echo "PR_URL=${{ github.event.pull_request.html_url }}" >> $GITHUB_ENV From d20c53e19ccdf9de81c30e2c95e73425a6b3d6d9 Mon Sep 17 00:00:00 2001 From: Heon Date: Thu, 22 Aug 2024 01:43:39 +0900 Subject: [PATCH 136/157] =?UTF-8?q?chore:=20env=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/auto-reviewer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index 762fb4a5..a900206c 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -19,7 +19,7 @@ jobs: configuration-path: '.github/reviewer.yml' - name: Get PR Labels - run: echo "PR_LABELS=${{ github.event.pull_request.labels.[0].name }}" >> $GITHUB_ENV + run: echo "PR_LABELS=${{ github.event.pull_request.labels[0].name }}" >> $GITHUB_ENV - name: Get PR URL run: echo "PR_URL=${{ github.event.pull_request.html_url }}" >> $GITHUB_ENV From c1d405f5b49e465acb5f78cb20d1589eee319908 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Thu, 22 Aug 2024 11:04:17 +0900 Subject: [PATCH 137/157] chore: env fix --- .github/workflows/auto-reviewer.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index a900206c..d553e408 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -61,6 +61,11 @@ jobs: } core.setOutput('selected_id', selectedId); + env: + PR_AUTHOR: ${{ env.PR_AUTHOR }} + SLACK_ID_ABH: ${{ secrets.SLACK_ID_ABH }} + SLACK_ID_JHG: ${{ secrets.SLACK_ID_JHG }} + SLACK_ID_KES: ${{ secrets.SLACK_ID_KES }} - name: Save Slack Member ID to Github ENV run: echo "SLACK_MEMBER_ID=${{ steps.slack_id.outputs.selected_id }}" >> $GITHUB_ENV From 886d99813ab1c6d158e33f706b2118a1c5a13c4b Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Thu, 22 Aug 2024 14:04:34 +0900 Subject: [PATCH 138/157] chore: get reviewer --- .github/workflows/auto-reviewer.yml | 37 ++++++++++++++--------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index d553e408..f5bec6cf 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -27,34 +27,33 @@ jobs: - name: Get PR Author run: echo "PR_AUTHOR=${{ github.event.pull_request.user.login }}" >> $GITHUB_ENV -# - name: Get Assigned Reviewer -# uses: actions/github-script@v6 -# id: get_reviewers -# with: -# script: | -# const reviewers = await github.pulls.listRequestedReviewers({ -# owner: context.repo.owner, -# repo: context.repo.repo, -# pull_number: context.payload.pull_request.number -# }); -# -# const reviewerNames = reviewers.data.users.map(user => user.login).join(','); -# console.log(`Assigned reviewers: ${reviewerNames}`); -# return reviewerNames; + - name: Get Assigned Reviewer + uses: actions/github-script@v6 + id: assigned_reviewers_id + with: + script: | + const reviewers = await github.pulls.listRequestedReviewers({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.payload.pull_request.number + }); + + const reviewerNames = reviewers.data.users.map(user => user.login).join(','); + core.setOutput('reviewers', reviewerNames) - name: Get Slack Member ID id: slack_id uses: actions/github-script@v6 with: script: | - const author = process.env.PR_AUTHOR + const reviewer = process.env.PR_AUTHOR let selectedId; - if (author === "Heonbyeong") { + if (reviewer === "Heonbyeong") { selectedId = process.env.SLACK_ID_ABH; - } else if (author === "jhg3410") { + } else if (reviewer === "jhg3410") { selectedId = process.env.SLACK_ID_JHG; - } else if (author === "eunseo0105") { + } else if (reviewer === "eunseo0105") { selectedId = process.env.SLACK_ID_KES; } else { core.setFailed(`Not Found Author.`); @@ -62,7 +61,7 @@ jobs: core.setOutput('selected_id', selectedId); env: - PR_AUTHOR: ${{ env.PR_AUTHOR }} + PR_REVIEWER: ${{ steps.assigned_reviewers_id.outputs.reviewers }} SLACK_ID_ABH: ${{ secrets.SLACK_ID_ABH }} SLACK_ID_JHG: ${{ secrets.SLACK_ID_JHG }} SLACK_ID_KES: ${{ secrets.SLACK_ID_KES }} From ef8264f3e36901d9bc9a55dd00404a65fe0c61f3 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Thu, 22 Aug 2024 14:21:48 +0900 Subject: [PATCH 139/157] chore: fetch pr reviewer --- .github/workflows/auto-reviewer.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index f5bec6cf..a248c7d6 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -28,18 +28,18 @@ jobs: run: echo "PR_AUTHOR=${{ github.event.pull_request.user.login }}" >> $GITHUB_ENV - name: Get Assigned Reviewer - uses: actions/github-script@v6 id: assigned_reviewers_id + uses: actions/github-script@v6 with: script: | - const reviewers = await github.pulls.listRequestedReviewers({ + const { data: pullRequest } = await github.rest.pulls.get({ owner: context.repo.owner, repo: context.repo.repo, pull_number: context.payload.pull_request.number }); - const reviewerNames = reviewers.data.users.map(user => user.login).join(','); - core.setOutput('reviewers', reviewerNames) + const reviewers = pullRequest.requested_reviewers.map(reviewer => reviewer.login).join(','); + core.setOutput('reviewers', reviewers) - name: Get Slack Member ID id: slack_id From 5221094f9f58708b3d7c9e045a4f1456944806a8 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Thu, 22 Aug 2024 14:23:41 +0900 Subject: [PATCH 140/157] chore: fetch pr reviewer --- .github/workflows/auto-reviewer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index a248c7d6..0505da6f 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -46,7 +46,7 @@ jobs: uses: actions/github-script@v6 with: script: | - const reviewer = process.env.PR_AUTHOR + const reviewer = process.env.PR_REVIEWER let selectedId; if (reviewer === "Heonbyeong") { From 3f3282fde7a23870f12d3c815e6984144998f0a7 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Thu, 22 Aug 2024 14:41:47 +0900 Subject: [PATCH 141/157] chore: get pr created at --- .github/workflows/auto-reviewer.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index 0505da6f..d563c8b0 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -41,6 +41,9 @@ jobs: const reviewers = pullRequest.requested_reviewers.map(reviewer => reviewer.login).join(','); core.setOutput('reviewers', reviewers) + - name: Get PR Created Time + run: echo "PR_CREATED_AT=${{ github.event.pull_request.created_at }}" >> $GITHUB_ENV + - name: Get Slack Member ID id: slack_id uses: actions/github-script@v6 From f363f7f557974b0f9841ea40aae057234c8168f1 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Thu, 22 Aug 2024 15:19:50 +0900 Subject: [PATCH 142/157] chore: calculate due date --- .github/workflows/auto-reviewer.yml | 46 ++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index d563c8b0..47234de7 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -41,8 +41,45 @@ jobs: const reviewers = pullRequest.requested_reviewers.map(reviewer => reviewer.login).join(','); core.setOutput('reviewers', reviewers) - - name: Get PR Created Time - run: echo "PR_CREATED_AT=${{ github.event.pull_request.created_at }}" >> $GITHUB_ENV +# highest: until 24hours +# high: until 48hours +# medium: until 72hours +# low: until 120hours +# lowest: until 168hours + - name: Calculate Review Due Date + id: calculate_due_date_id + uses: actions/github-script@v6 + with: + script: | + const createdAt = new Date("${{ github.event.pull_request.created_at }}"); + const label = ${{ env.PR_LABELS }}; + const hour_abs = 60 * 60 * 1000; + let dueDate; + + if (label.includes("highest")) { + dueDate = new Date(createdAt.getTime() + (24 * hour_abs)); + } else if (label.includes("high")) { + dueDate = new Date(createdAt.getTime() + (48 * hour_abs)); + } else if (label.includes("medium")) { + dueDate = new Date(createdAt.getTime() + (72 * hour_abs)); + } else if (label.includes("low")) { + dueDate = new Date(createdAt.getTime() + (120 * hour_abs)); + } else if (label.includes("lowest")) { + dueDate = new Date(createdAt.getTime() + (168 * hour_abs)); + } else { + core.setFailed(`Not Matched Labels.`); + } + + const year = dueDate.getFullYear(); + const month = dueDate.getMonth() + 1; + const day = dueDate.getDate(); + const hours = dueDate.getHours(); + const period = hours >= 12 ? '오후' : '오전'; + const formattedHour = hours % 12 || 12; + + const formattedTime = `${year}년 ${month}월 ${day}일 ${period} ${formattedHour}시`; + + core.setOutput('due_date', formattedTime); - name: Get Slack Member ID id: slack_id @@ -121,7 +158,7 @@ jobs: }, { "type": "mrkdwn", - "text": "*Due Date*\n2024년 8월 22일" + "text": "*Due Date*\n${{ env.DUE_DATE }}" } ] } @@ -129,4 +166,5 @@ jobs: } env: SLACK_BOT_TOKEN: ${{ secrets.SLACK_PR_BOT_TOKEN }} - SLACK_CHANNEL_ID: ${{ secrets.SLACK_ANDROID_CHANNEL_ID }} \ No newline at end of file + SLACK_CHANNEL_ID: ${{ secrets.SLACK_ANDROID_CHANNEL_ID }} + DUE_DATE: ${{ steps.calculate_due_date_id.outputs.due_date }} \ No newline at end of file From fb72aad1aa1916d5e078a582f86d2a693297eca4 Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Thu, 22 Aug 2024 15:25:44 +0900 Subject: [PATCH 143/157] chore: calculate due date --- .github/workflows/auto-reviewer.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/auto-reviewer.yml b/.github/workflows/auto-reviewer.yml index 47234de7..5472a970 100644 --- a/.github/workflows/auto-reviewer.yml +++ b/.github/workflows/auto-reviewer.yml @@ -51,8 +51,8 @@ jobs: uses: actions/github-script@v6 with: script: | - const createdAt = new Date("${{ github.event.pull_request.created_at }}"); - const label = ${{ env.PR_LABELS }}; + const createdAt = new Date(process.env.CREATED_AT); + const label = process.env.PR_LABELS; const hour_abs = 60 * 60 * 1000; let dueDate; @@ -80,6 +80,9 @@ jobs: const formattedTime = `${year}년 ${month}월 ${day}일 ${period} ${formattedHour}시`; core.setOutput('due_date', formattedTime); + env: + PR_LABELS: ${{ env.PR_LABELS }} + CREATED_AT: ${{ github.event.pull_request.created_at }} - name: Get Slack Member ID id: slack_id From 6353955f3a5f05afa1facc71e9a614a1b84f230f Mon Sep 17 00:00:00 2001 From: Heon Date: Fri, 23 Aug 2024 18:36:22 +0900 Subject: [PATCH 144/157] =?UTF-8?q?feat:=20=ED=9D=AC=EC=A7=81=EB=8B=98=20?= =?UTF-8?q?=EB=A6=AC=EB=B7=B0=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneymong/feature/agency/search/AgencySearchScreen.kt | 4 +--- .../moneymong/feature/mymong/main/view/MyMongFeedbackView.kt | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt index 8e7b1d0b..8e3592d9 100644 --- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt +++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchScreen.kt @@ -267,9 +267,7 @@ private fun ContentViewWithoutAgencies( onClick = onClickFeedbackItem ) Column( - modifier = modifier - .fillMaxSize() - .align(Alignment.Center), + modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.spacedBy( space = 4.dp, alignment = Alignment.CenterVertically diff --git a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongFeedbackView.kt b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongFeedbackView.kt index 79611e96..907f7e5c 100644 --- a/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongFeedbackView.kt +++ b/feature/mymong/src/main/java/com/moneymong/moneymong/feature/mymong/main/view/MyMongFeedbackView.kt @@ -37,7 +37,7 @@ fun MyMongFeedbackView( Box( modifier = modifier .myMongRoundRectShadow() - .background(color = White, shape = RoundedCornerShape(12.dp)) + .background(color = White, shape = RoundedCornerShape(16.dp)) ) { Row( modifier = Modifier From 106ba69d638e4eb13bde9b86186d02d1da5b77fa Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 10 Sep 2024 15:09:14 +0900 Subject: [PATCH 145/157] chore: keystore ignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 2aaba2fb..8e093a30 100644 --- a/.gitignore +++ b/.gitignore @@ -19,5 +19,6 @@ keystore.properties # Keystore Files *.jks *.keystore +/keystore *.json \ No newline at end of file From db9d09603939be44b77e58ec87f16e767ce6667c Mon Sep 17 00:00:00 2001 From: Heonbyeong Date: Tue, 10 Sep 2024 15:18:47 +0900 Subject: [PATCH 146/157] chore: keystore ignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8e093a30..5cfecf3e 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,6 @@ keystore.properties # Keystore Files *.jks *.keystore -/keystore +/keystore/ *.json \ No newline at end of file From 3bf755eb870ff5e08e3f9fdf1e1b4b1c37c71fcf Mon Sep 17 00:00:00 2001 From: jhg3410 Date: Sun, 22 Sep 2024 02:32:13 +0900 Subject: [PATCH 147/157] =?UTF-8?q?MONEYMONG-508=20feat:=20MDSButton=20cor?= =?UTF-8?q?ner=20radius,=20Icon=20Size,=20TextStyle=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneymong/design_system/component/button/Button.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/design-system/src/main/java/com/moneymong/moneymong/design_system/component/button/Button.kt b/core/design-system/src/main/java/com/moneymong/moneymong/design_system/component/button/Button.kt index 428762d4..732bd0f1 100644 --- a/core/design-system/src/main/java/com/moneymong/moneymong/design_system/component/button/Button.kt +++ b/core/design-system/src/main/java/com/moneymong/moneymong/design_system/component/button/Button.kt @@ -18,7 +18,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import com.moneymong.moneymong.design_system.theme.Body3 +import com.moneymong.moneymong.design_system.theme.Body2 @Composable fun MDSButton( @@ -38,10 +38,10 @@ fun MDSButton( modifier = modifier .background( color = backgroundColor, - shape = RoundedCornerShape(12.dp) + shape = RoundedCornerShape(10.dp) ) .clip( - RoundedCornerShape(12.dp) + RoundedCornerShape(10.dp) ) .clickable( onClick = onClick, @@ -58,7 +58,7 @@ fun MDSButton( ) { if (iconResource != null) { Icon( - modifier = Modifier.size(20.dp), + modifier = Modifier.size(18.dp), painter = painterResource(id = iconResource), contentDescription = "Button icon", tint = contentColor @@ -67,7 +67,7 @@ fun MDSButton( Text( text = text, color = contentColor, - style = Body3, + style = Body2, ) } } From 4c3cb70131d41b169aa9cf7155ddce63db297d79 Mon Sep 17 00:00:00 2001 From: jhg3410 Date: Sun, 22 Sep 2024 02:33:48 +0900 Subject: [PATCH 148/157] =?UTF-8?q?MONEYMONG-508=20feat:=20MDSNavigationBa?= =?UTF-8?q?r=20=EA=B7=B8=EB=A6=BC=EC=9E=90=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/navigation/NavigationBar.kt | 32 ------------------- 1 file changed, 32 deletions(-) diff --git a/core/design-system/src/main/java/com/moneymong/moneymong/design_system/component/navigation/NavigationBar.kt b/core/design-system/src/main/java/com/moneymong/moneymong/design_system/component/navigation/NavigationBar.kt index 0909c1b2..b86c1ba4 100644 --- a/core/design-system/src/main/java/com/moneymong/moneymong/design_system/component/navigation/NavigationBar.kt +++ b/core/design-system/src/main/java/com/moneymong/moneymong/design_system/component/navigation/NavigationBar.kt @@ -1,6 +1,5 @@ package com.moneymong.moneymong.design_system.component.navigation -import android.graphics.BlurMaskFilter import androidx.annotation.DrawableRes import androidx.compose.foundation.background import androidx.compose.foundation.interaction.MutableInteractionSource @@ -22,9 +21,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawBehind import androidx.compose.ui.geometry.Offset -import androidx.compose.ui.graphics.Paint -import androidx.compose.ui.graphics.drawscope.drawIntoCanvas -import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -33,7 +29,6 @@ import com.moneymong.moneymong.design_system.component.navigation.MDSNavigationB import com.moneymong.moneymong.design_system.component.navigation.MDSNavigationBarItemDefaults.selectedLabelColor import com.moneymong.moneymong.design_system.component.navigation.MDSNavigationBarItemDefaults.unSelectedIconColor import com.moneymong.moneymong.design_system.component.navigation.MDSNavigationBarItemDefaults.unSelectedLabelColor -import com.moneymong.moneymong.design_system.theme.Black import com.moneymong.moneymong.design_system.theme.Blue04 import com.moneymong.moneymong.design_system.theme.Body2 import com.moneymong.moneymong.design_system.theme.Gray02 @@ -49,7 +44,6 @@ fun MDSNavigationBar( modifier = modifier .fillMaxWidth() .navigationBarsPadding() - .navigationBarShadow() .background(color = White) .drawBehind { val strokeWidth = 1.dp.toPx() @@ -66,32 +60,6 @@ fun MDSNavigationBar( ) } -private fun Modifier.navigationBarShadow(): Modifier { - val shadowOffsetY = (-4).dp - val shadowBlurRadius = 8.dp - val shadowColor = Black.copy(alpha = 0.04f).toArgb() - - return this.drawBehind { - drawIntoCanvas { canvas -> - val paint = Paint() - val frameworkPaint = paint.asFrameworkPaint() - frameworkPaint.color = shadowColor - frameworkPaint.maskFilter = BlurMaskFilter( - shadowBlurRadius.toPx(), - BlurMaskFilter.Blur.NORMAL - ) - - canvas.drawRect( - left = 0f, - top = shadowOffsetY.toPx(), - right = size.width, - bottom = size.height + shadowOffsetY.toPx(), - paint = paint - ) - } - } -} - @Composable fun RowScope.MDSNavigationBarItem( From 3adf8a63305bba8b51b86ad17dbb077551e2e2a2 Mon Sep 17 00:00:00 2001 From: jhg3410 Date: Sun, 22 Sep 2024 02:45:43 +0900 Subject: [PATCH 149/157] =?UTF-8?q?MONEYMONG-508=20feat:=20=EB=8C=80?= =?UTF-8?q?=ED=95=99=20=EC=A0=95=EB=B3=B4=EA=B0=80=20=EC=97=86=EC=9D=84=20?= =?UTF-8?q?=EB=95=8C=EC=9D=98=20=EB=B0=98=ED=99=98=EA=B0=92=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD(Null=20->=20"")?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/moneymong/moneymong/model/sign/UnivResponse.kt | 2 +- .../moneymong/feature/agency/search/AgencySearchViewModel.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/model/src/main/java/com/moneymong/moneymong/model/sign/UnivResponse.kt b/core/model/src/main/java/com/moneymong/moneymong/model/sign/UnivResponse.kt index 6a098bd1..46dbf79f 100644 --- a/core/model/src/main/java/com/moneymong/moneymong/model/sign/UnivResponse.kt +++ b/core/model/src/main/java/com/moneymong/moneymong/model/sign/UnivResponse.kt @@ -1,6 +1,6 @@ package com.moneymong.moneymong.model.sign data class UnivResponse( - val universityName: String?, + val universityName: String, val grade: Int ) \ No newline at end of file diff --git a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchViewModel.kt b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchViewModel.kt index 0f7ff711..323d3b74 100644 --- a/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchViewModel.kt +++ b/feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/search/AgencySearchViewModel.kt @@ -65,7 +65,7 @@ class AgencySearchViewModel @Inject constructor( isLoading = false, joinedAgencies = fetchMyAgenciesResult.getOrThrow() .map { myAgencyResponse -> myAgencyResponse.toAgency() }, - isUniversityStudent = fetchMyUniversityResult.getOrThrow().universityName != null, + isUniversityStudent = fetchMyUniversityResult.getOrThrow().universityName.isNotBlank(), ) } } else { From 38127392c903f7cf180e80ce5467f5c0e15080e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=95=88=EB=B3=91=ED=97=8C?= <64366488+Heonbyeong@users.noreply.github.com> Date: Fri, 27 Sep 2024 15:47:56 +0900 Subject: [PATCH 150/157] Release/release 1.2.1 -> develop merge (#33) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: version up * INCREMENT VERSION CODE * feat: 카카오 로그인 에러 로깅 추가 * INCREMENT VERSION CODE * feat: log key hash * INCREMENT VERSION CODE * feat: remove logger * INCREMENT VERSION CODE --------- Co-authored-by: Anka Co-authored-by: Anka Co-authored-by: Anka Co-authored-by: Anka --- app/build.gradle.kts | 4 ++-- .../moneymong/feature/sign/viewmodel/LoginViewModel.kt | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 92d6ee8d..87fded72 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -21,8 +21,8 @@ android { applicationId = "com.moneymong.moneymong" minSdk = 24 targetSdk = 34 - versionCode = 15 - versionName = "1.2.0" + versionCode = 19 + versionName = "1.2.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { diff --git a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/LoginViewModel.kt b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/LoginViewModel.kt index 795dd167..6a777e2e 100644 --- a/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/LoginViewModel.kt +++ b/feature/sign/src/main/java/com/moneymong/moneymong/feature/sign/viewmodel/LoginViewModel.kt @@ -1,5 +1,7 @@ package com.moneymong.moneymong.feature.sign.viewmodel +import android.util.Log +import com.kakao.sdk.common.KakaoSdk import com.moneymong.moneymong.common.base.BaseViewModel import com.moneymong.moneymong.domain.usecase.token.PostAccessTokenUseCase import com.moneymong.moneymong.domain.usecase.token.TokenUseCase From 84c9a73c042ed8336db733bd4d467d7a8d964d1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=95=88=EB=B3=91=ED=97=8C?= <64366488+Heonbyeong@users.noreply.github.com> Date: Tue, 1 Oct 2024 16:54:02 +0900 Subject: [PATCH 151/157] =?UTF-8?q?Feature/moneymong=20509=20=EC=9E=A5?= =?UTF-8?q?=EB=B6=80=20=EB=82=B4=EC=97=AD=20=EA=B8=B0=EA=B0=84=EB=B3=84=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EC=9D=B4=EC=8A=88=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?(#34)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: 장부 조회 종료 연도가 시작 연도보다 작아도 동작하는 이슈 수정 * fix: 소속 변경 시 조회 기간 초기화 --- .../datepicker/MDSBottomSheetDatePicker.kt | 7 +---- .../moneymong/ledger/LedgerViewModel.kt | 27 ++++++++++--------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/core/design-system/src/main/java/com/moneymong/moneymong/design_system/component/datepicker/MDSBottomSheetDatePicker.kt b/core/design-system/src/main/java/com/moneymong/moneymong/design_system/component/datepicker/MDSBottomSheetDatePicker.kt index 499fe81b..80dbcf93 100644 --- a/core/design-system/src/main/java/com/moneymong/moneymong/design_system/component/datepicker/MDSBottomSheetDatePicker.kt +++ b/core/design-system/src/main/java/com/moneymong/moneymong/design_system/component/datepicker/MDSBottomSheetDatePicker.kt @@ -135,12 +135,7 @@ fun MDSWheelDatePicker( snappedEndYear, snappedEndMonth ) { - isValidValue = if (snappedStartYear < snappedEndYear) { - true - } else { - snappedStartMonth <= snappedEndMonth - } - + isValidValue = snappedStartYear <= snappedEndYear && snappedStartMonth <= snappedEndMonth confirmValidValue(isValidValue) } diff --git a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerViewModel.kt b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerViewModel.kt index 5c0ec38a..1da493e5 100644 --- a/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerViewModel.kt +++ b/feature/ledger/src/main/java/com/moneymong/moneymong/ledger/LedgerViewModel.kt @@ -74,7 +74,7 @@ class LedgerViewModel @Inject constructor( reduce { state.copy(isAgencyExistLoading = true) } fetchAgencyExistLedgerUseCase(state.agencyId) .onSuccess { - Log.d("fetchAgencyExistLedger${state.agencyId}",it.toString() ) + Log.d("fetchAgencyExistLedger${state.agencyId}", it.toString()) reduce { state.copy( isExistLedger = it, @@ -96,7 +96,7 @@ class LedgerViewModel @Inject constructor( page = 0, limit = 100 ).onSuccess { - Log.d("fetchLedgerTransactionList${state.existAgency}",it.toString() ) + Log.d("fetchLedgerTransactionList${state.existAgency}", it.toString()) reduce { state.copy( @@ -127,7 +127,7 @@ class LedgerViewModel @Inject constructor( reduce { state.copy(isMyAgencyLoading = true) } fetchMyAgencyListUseCase() .onSuccess { - Log.d("fetchMyAgencyList${state.existAgency}",it.toString() ) + Log.d("fetchMyAgencyList${state.existAgency}", it.toString()) reduce { state.copy( @@ -188,6 +188,7 @@ class LedgerViewModel @Inject constructor( fun reFetchLedgerData(agencyId: Int) { saveAgencyId(agencyId) + updateSelectedDate(startDate = LocalDate.now().minusMonths(6), endDate = LocalDate.now()) fetchAgencyExistLedger() fetchAgencyMemberList() fetchLedgerTransactionList() @@ -227,15 +228,8 @@ class LedgerViewModel @Inject constructor( } fun onClickDateChange(startDate: LocalDate, endDate: LocalDate) { - intent { - reduce { - state.copy( - startDate = startDate, - endDate = endDate - ) - } - postSideEffect(LedgerSideEffect.LedgerCloseSheet) - } + updateSelectedDate(startDate = startDate, endDate = endDate) + eventEmit(LedgerSideEffect.LedgerCloseSheet) fetchLedgerTransactionList() } @@ -262,4 +256,13 @@ class LedgerViewModel @Inject constructor( ) } } + + fun updateSelectedDate(startDate: LocalDate, endDate: LocalDate) = intent { + reduce { + state.copy( + startDate = startDate, + endDate = endDate + ) + } + } } From 7bd794b46273531b19ae672b74ff6cc6d0c368c0 Mon Sep 17 00:00:00 2001 From: Heon Date: Tue, 1 Oct 2024 17:17:42 +0900 Subject: [PATCH 152/157] chore: version code up --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 87fded72..812dfc6b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -21,7 +21,7 @@ android { applicationId = "com.moneymong.moneymong" minSdk = 24 targetSdk = 34 - versionCode = 19 + versionCode = 20 versionName = "1.2.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" From ae0ce1a00c6b580f3c4325dfedddca2c74df9beb Mon Sep 17 00:00:00 2001 From: Anka Date: Tue, 1 Oct 2024 08:19:58 +0000 Subject: [PATCH 153/157] INCREMENT VERSION CODE --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 812dfc6b..97e2ca18 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -21,7 +21,7 @@ android { applicationId = "com.moneymong.moneymong" minSdk = 24 targetSdk = 34 - versionCode = 20 + versionCode = 24 versionName = "1.2.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" From 731ee55e6c39f4d7dedd08332f1a494f324339ce Mon Sep 17 00:00:00 2001 From: Heon Date: Tue, 1 Oct 2024 17:48:20 +0900 Subject: [PATCH 154/157] chore: version code up --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 97e2ca18..8116f8d6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -21,7 +21,7 @@ android { applicationId = "com.moneymong.moneymong" minSdk = 24 targetSdk = 34 - versionCode = 24 + versionCode = 25 versionName = "1.2.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" From e86d4f5c0868993f047bc1a52ca02cafdd8548f3 Mon Sep 17 00:00:00 2001 From: Heon Date: Tue, 1 Oct 2024 18:03:23 +0900 Subject: [PATCH 155/157] fix: debug keystore --- .github/workflows/android-ci.yml | 4 ++++ fastlane/Fastfile | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index b50b667f..f0100f3c 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -103,6 +103,10 @@ jobs: - name: Build & Deploy Distribute env: FIREBASE_CREDENTIALS: ${{ github.workspace }}/app/firebase_credentials.json + DEBUG_KEYSTORE_FILE: ${{ github.workspace }}/app/debug_keystore.jks + DEBUG_KEYSTORE_PASSWORD: ${{ secrets.DEBUG_KEYSTORE_PASSWORD }} + DEBUG_KEYSTORE_KEY_ALIAS: ${{ secrets.DEBUG_KEYSTORE_KEY_ALIAS }} + DEBUG_KEYSTORE_KEY_PASSWORD: ${{ secrets.DEBUG_KEYSTORE_KEY_PASSWORD }} APP_ID: ${{ secrets.FIREBASE_TB_APP_ID }} WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} CWD: ${{ github.workspace }} diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 3dc6c53b..f3fe70e2 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -93,9 +93,15 @@ platform :android do ) gradle( - task: 'clean assemble', + task: 'assemble', flavor: "tb", - build_type: 'Debug' + build_type: 'Debug', + properties: { + "android.injected.signing.store.file" => "#{ENV["DEBUG_KEYSTORE_FILE"]}", + "android.injected.signing.store.password" => "#{ENV["DEBUG_KEYSTORE_PASSWORD"]}", + "android.injected.signing.key.alias" => "#{ENV["DEBUG_KEYSTORE_KEY_ALIAS"]}", + "android.injected.signing.key.password" => "#{ENV["DEBUG_KEYSTORE_KEY_PASSWORD"]}", + } ) firebase_app_distribution( service_credentials_file: "#{ENV["FIREBASE_CREDENTIALS"]}", From 31323e17c014dc569643f56fb925c96fa53b5f4e Mon Sep 17 00:00:00 2001 From: Anka Date: Tue, 1 Oct 2024 09:05:00 +0000 Subject: [PATCH 156/157] INCREMENT VERSION CODE --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 8116f8d6..4ae50412 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -21,7 +21,7 @@ android { applicationId = "com.moneymong.moneymong" minSdk = 24 targetSdk = 34 - versionCode = 25 + versionCode = 26 versionName = "1.2.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" From 7e9c742e7873952bea541525067f2f831db4b289 Mon Sep 17 00:00:00 2001 From: Heon Date: Tue, 1 Oct 2024 18:15:30 +0900 Subject: [PATCH 157/157] fix: decode debug keystore --- .github/workflows/android-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index f0100f3c..79c35f00 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -95,6 +95,10 @@ jobs: run: | echo "${{ secrets.FIREBASE_SERVICE_ACCOUNT_KEY }}" | base64 --decode > ./app/firebase_credentials.json + - name: Decode Keystore File + run: | + echo "${{ secrets.DEBUG_KEYSTORE_FILE }}" | base64 --decode > ./app/debug_keystore.jks + - name: Install Dependencies run: | gem install bundler