Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: openMF/mifos-mobile
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 2024.12.4
Choose a base ref
...
head repository: openMF/mifos-mobile
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: development
Choose a head ref
  • 11 commits
  • 186 files changed
  • 5 contributors

Commits on Dec 24, 2024

  1. fix: Fix visibility issues in Saving Account Withdraw screen (#2724)

    Changed background color to make fields visible in dark mode.
    HekmatullahAmin authored Dec 24, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    f863c27 View commit details

Commits on Dec 26, 2024

  1. chore(docs): updated readme and wiki

    niyajali committed Dec 26, 2024

    Verified

    This commit was signed with the committer’s verified signature.
    niyajali Sk Niyaj Ali
    Copy the full SHA
    495b60f View commit details
  2. Merge pull request #2727 from niyajali/update-readme

    chore(docs): updated readme and wiki
    niyajali authored Dec 26, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    0297116 View commit details

Commits on Jan 3, 2025

  1. feat[notifications, clientCharges]: DB flow to room database (#2728)

    * feat[notifications, clientCharges]: DB flow to room database
    
    * fix: clientChargeRepositoryImpl test
    
    * fix: module name, entity name
    
    * fix: Dependency Guard
    
    * fix: Database Implementation
    
    * fix: Fix Test & Lint Issue
    
    ---------
    
    Co-authored-by: Sk Niyaj Ali <[email protected]>
    Nagarjuna0033 and niyajali authored Jan 3, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    efb38f5 View commit details

Commits on Jan 9, 2025

  1. fix: API endpoint (#2733)

    * MM-102 KMP dependencies setup (#2729)
    
    * fix: API endpoint
    
    ---------
    
    Co-authored-by: Sk Niyaj Ali <[email protected]>
    Co-authored-by: Pronay Sarker <[email protected]>
    3 people authored Jan 9, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    d3d673f View commit details

Commits on Jan 11, 2025

  1. ci: Configured GitHub Workflow For Play Store & FAD Publishing (#2738)

    niyajali authored Jan 11, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    466b245 View commit details

Commits on Jan 12, 2025

  1. ci: Generate Firebase version and deploy to Firebase App Distribution (

    niyajali authored Jan 12, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    a286500 View commit details
  2. chore: Update Fastlane and add GitHub Action for Demo app (#2741)

    niyajali authored Jan 12, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    3f3c22b View commit details
  3. chore: update workflow for demo app upload (#2742)

    niyajali authored Jan 12, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    31b92de View commit details

Commits on Jan 14, 2025

  1. chore(ci): Automated Versioning & Fixed Issue (#2744)

    niyajali authored Jan 14, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    4844e26 View commit details

Commits on Jan 26, 2025

  1. fix: Prevent app crash when clicking Mifos Initiative License and Cha…

    …nge icon colors (#2748)
    HekmatullahAmin authored Jan 26, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    26cf8c7 View commit details
Showing with 5,309 additions and 3,196 deletions.
  1. +1 −26 .github/ISSUE_TEMPLATE.md
  2. +9 −4 .github/PULL_REQUEST_TEMPLATE.md
  3. +0 −56 .github/actions/create-release-notes/action.yml
  4. +0 −54 .github/actions/create-release-number/action.yml
  5. +0 −40 .github/actions/inflate-secrets/action.yml
  6. +0 −55 .github/mock-google-services.json
  7. +96 −0 .github/workflows/android-release.yml
  8. +5 −59 .github/workflows/master_dev_ci.yml
  9. +66 −0 .github/workflows/monthly-release.yaml
  10. +0 −21 .github/workflows/monthly_release.yaml
  11. +5 −86 .github/workflows/{feature_branch_ci.yml → pr-check.yml}
  12. +75 −0 .github/workflows/promote-to-production.yml
  13. +0 −162 .github/workflows/release_to_internal_or_beta.yml
  14. +0 −35 .github/workflows/release_to_production.yml
  15. +1 −1 .github/workflows/{weekly_release.yaml → tag-weekly-release.yaml}
  16. +43 −0 .github/workflows/upload-demo-app-on-firebase.yaml
  17. +18 −4 .gitignore
  18. +1 −0 .ruby-version
  19. +134 −0 CODE_OF_CONDUCT.md
  20. +154 −73 CONTRIBUTING.md
  21. +43 −30 Gemfile.lock
  22. 0 LICENSE.md → LICENSE
  23. +42 −85 README.md
  24. +24 −18 androidApp/build.gradle.kts
  25. +258 −0 androidApp/dependencies/demoDebugRuntimeClasspath.txt
  26. +253 −0 androidApp/dependencies/demoReleaseRuntimeClasspath.txt
  27. +258 −0 androidApp/dependencies/prodDebugRuntimeClasspath.txt
  28. +253 −0 androidApp/dependencies/prodReleaseRuntimeClasspath.txt
  29. +1,121 −1,073 androidApp/dependencies/releaseRuntimeClasspath.tree.txt
  30. +152 −139 androidApp/dependencies/releaseRuntimeClasspath.txt
  31. +44 −36 androidApp/google-services.json
  32. +1 −2 androidApp/release-badging.txt
  33. BIN androidApp/src/demo/ic_launcher-playstore.png
  34. +14 −0 androidApp/src/demo/res/mipmap-anydpi-v26/ic_launcher.xml
  35. +14 −0 androidApp/src/demo/res/mipmap-anydpi-v26/ic_launcher_round.xml
  36. BIN androidApp/src/demo/res/mipmap-hdpi/ic_launcher.webp
  37. BIN androidApp/src/demo/res/mipmap-hdpi/ic_launcher_foreground.webp
  38. BIN androidApp/src/demo/res/mipmap-hdpi/ic_launcher_round.webp
  39. BIN androidApp/src/demo/res/mipmap-mdpi/ic_launcher.webp
  40. BIN androidApp/src/demo/res/mipmap-mdpi/ic_launcher_foreground.webp
  41. BIN androidApp/src/demo/res/mipmap-mdpi/ic_launcher_round.webp
  42. BIN androidApp/src/demo/res/mipmap-xhdpi/ic_launcher.webp
  43. BIN androidApp/src/demo/res/mipmap-xhdpi/ic_launcher_foreground.webp
  44. BIN androidApp/src/demo/res/mipmap-xhdpi/ic_launcher_round.webp
  45. BIN androidApp/src/demo/res/mipmap-xxhdpi/ic_launcher.webp
  46. BIN androidApp/src/demo/res/mipmap-xxhdpi/ic_launcher_foreground.webp
  47. BIN androidApp/src/demo/res/mipmap-xxhdpi/ic_launcher_round.webp
  48. BIN androidApp/src/demo/res/mipmap-xxxhdpi/ic_launcher.webp
  49. BIN androidApp/src/demo/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
  50. BIN androidApp/src/demo/res/mipmap-xxxhdpi/ic_launcher_round.webp
  51. +3 −5 ...ore/src/debug/res/values/api_keys.xml → androidApp/src/demo/res/values/ic_launcher_background.xml
  52. +12 −5 androidApp/src/main/AndroidManifest.xml
  53. BIN androidApp/src/main/ic_launcher-playstore.png
  54. +1 −1 androidApp/src/main/kotlin/org/mifos/mobile/HomeActivity.kt
  55. +0 −9 androidApp/src/main/kotlin/org/mifos/mobile/MifosSelfServiceApp.kt
  56. BIN androidApp/src/main/res/drawable/splash_icon.png
  57. +0 −21 androidApp/src/main/res/drawable/splash_icon.xml
  58. +1 −1 androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
  59. +1 −1 androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
  60. BIN androidApp/src/main/res/mipmap-hdpi/ic_launcher.webp
  61. BIN androidApp/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp
  62. BIN androidApp/src/main/res/mipmap-hdpi/ic_launcher_round.webp
  63. BIN androidApp/src/main/res/mipmap-mdpi/ic_launcher.webp
  64. BIN androidApp/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp
  65. BIN androidApp/src/main/res/mipmap-mdpi/ic_launcher_round.webp
  66. BIN androidApp/src/main/res/mipmap-xhdpi/ic_launcher.webp
  67. BIN androidApp/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp
  68. BIN androidApp/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
  69. BIN androidApp/src/main/res/mipmap-xxhdpi/ic_launcher.webp
  70. BIN androidApp/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp
  71. BIN androidApp/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
  72. BIN androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
  73. BIN androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
  74. BIN androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
  75. +2 −2 androidApp/src/main/res/values/ic_launcher_background.xml
  76. +1 −0 androidApp/src/main/res/values/strings.xml
  77. +36 −40 build-logic/convention/build.gradle.kts
  78. +1 −3 build-logic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt
  79. +0 −39 build-logic/convention/src/main/kotlin/AndroidApplicationFirebaseConventionPlugin.kt
  80. +15 −0 build-logic/convention/src/main/kotlin/AndroidApplicationFlavorsConventionPlugin.kt
  81. +0 −24 build-logic/convention/src/main/kotlin/AndroidApplicationJacocoConventionPlugin.kt
  82. +0 −1 build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt
  83. +17 −11 build-logic/convention/src/main/kotlin/AndroidHiltConventionPlugin.kt
  84. +4 −4 build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt
  85. +0 −24 build-logic/convention/src/main/kotlin/AndroidLibraryJacocoConventionPlugin.kt
  86. +0 −38 build-logic/convention/src/main/kotlin/AndroidLintConventionPlugin.kt
  87. +8 −4 build-logic/convention/src/main/kotlin/AndroidRoomConventionPlugin.kt
  88. +0 −21 build-logic/convention/src/main/kotlin/AndroidTestConventionPlugin.kt
  89. +56 −0 build-logic/convention/src/main/kotlin/CMPFeatureConventionPlugin.kt
  90. +0 −15 build-logic/convention/src/main/kotlin/JvmLibraryConventionPlugin.kt
  91. +25 −0 build-logic/convention/src/main/kotlin/KMPKoinConventionPlugin.kt
  92. +46 −0 build-logic/convention/src/main/kotlin/KMPLibraryConventionPlugin.kt
  93. +0 −16 build-logic/convention/src/main/kotlin/MifosKtlintConventionPlugin.kt
  94. +2 −5 build-logic/convention/src/main/kotlin/org/mifos/mobile/AndroidCompose.kt
  95. +6 −6 build-logic/convention/src/main/kotlin/org/mifos/mobile/Badging.kt
  96. +4 −4 build-logic/convention/src/main/kotlin/org/mifos/mobile/KotlinAndroid.kt
  97. +32 −0 build-logic/convention/src/main/kotlin/org/mifos/mobile/KotlinMultiplatform.kt
  98. +9 −0 build-logic/convention/src/main/kotlin/org/mifos/mobile/MifosBuildType.kt
  99. +42 −0 build-logic/convention/src/main/kotlin/org/mifos/mobile/MifosFlavor.kt
  100. +12 −8 build.gradle.kts
  101. +0 −3 ci-prepush.bat
  102. +0 −3 ci-prepush.sh
  103. +1 −1 core/common/src/main/java/org/mifos/mobile/core/common/utils/Utils.kt
  104. +2 −0 core/data/build.gradle.kts
  105. +1 −0 core/data/kotlin/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
  106. +95 −0 core/data/src/main/java/org/mifos/mobile/core/data/model/Charge.kt
  107. +29 −0 core/data/src/main/java/org/mifos/mobile/core/data/model/MifosNotification.kt
  108. +9 −5 core/data/src/main/java/org/mifos/mobile/core/data/repository/ClientChargeRepository.kt
  109. +1 −1 core/data/src/main/java/org/mifos/mobile/core/data/repository/HomeRepository.kt
  110. +10 −2 core/data/src/main/java/org/mifos/mobile/core/data/repository/NotificationRepository.kt
  111. +29 −7 core/data/src/main/java/org/mifos/mobile/core/data/repositoryImpl/ClientChargeRepositoryImp.kt
  112. +4 −4 core/data/src/main/java/org/mifos/mobile/core/data/repositoryImpl/HomeRepositoryImp.kt
  113. +40 −7 core/data/src/main/java/org/mifos/mobile/core/data/repositoryImpl/NotificationRepositoryImp.kt
  114. +21 −7 core/data/src/test/kotlin/org/mifos/mobile/core/data/repositories/ClientChargeRepositoryImpTest.kt
  115. +8 −3 core/data/src/test/kotlin/org/mifos/mobile/core/data/repositories/HomeRepositoryImpTest.kt
  116. +17 −7 core/data/src/test/kotlin/org/mifos/mobile/core/data/repositories/NotificationRepositoryImpTest.kt
  117. +1 −0 core/data/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
  118. +1 −0 core/database/.gitignore
  119. +29 −0 core/database/build.gradle.kts
  120. 0 core/database/consumer-rules.pro
  121. +174 −0 core/database/schemas/org.mifos.mobile.core.database.SelfServiceDatabase/1.json
  122. +3 −5 core/{datastore/src/release/res/values/api_keys.xml → database/src/main/AndroidManifest.xml}
  123. +41 −0 core/database/src/main/kotlin/org/mifos/mobile/core/database/SelfServiceDatabase.kt
  124. +30 −0 core/database/src/main/kotlin/org/mifos/mobile/core/database/dao/ChargeDao.kt
  125. +36 −0 core/database/src/main/kotlin/org/mifos/mobile/core/database/dao/MifosNotificationDao.kt
  126. +32 −0 core/database/src/main/kotlin/org/mifos/mobile/core/database/di/DaoModule.kt
  127. +35 −0 core/database/src/main/kotlin/org/mifos/mobile/core/database/di/DatabaseModule.kt
  128. +19 −0 core/database/src/main/kotlin/org/mifos/mobile/core/database/entity/ChargeCalculationTypeEntity.kt
  129. +37 −0 core/database/src/main/kotlin/org/mifos/mobile/core/database/entity/ChargeEntity.kt
  130. +2 −2 ...ore/model → database/src/main/kotlin/org/mifos/mobile/core/database/entity}/ChargeListResponse.kt
  131. +19 −0 core/database/src/main/kotlin/org/mifos/mobile/core/database/entity/ChargeTimeTypeEntity.kt
  132. +22 −0 core/database/src/main/kotlin/org/mifos/mobile/core/database/entity/CurrencyEntity.kt
  133. +9 −7 ...e.kt → database/src/main/kotlin/org/mifos/mobile/core/database/entity/MifosNotificationEntity.kt}
  134. +60 −0 core/database/src/main/kotlin/org/mifos/mobile/core/database/utils/ChargeTypeConverters.kt
  135. +4 −15 core/datastore/build.gradle.kts
  136. +0 −21 core/datastore/proguard-rules.pro
  137. +0 −76 core/datastore/src/main/java/org/mifos/mobile/core/datastore/DatabaseHelper.kt
  138. +0 −132 core/datastore/src/main/java/org/mifos/mobile/core/datastore/model/Charge.kt
  139. +0 −50 core/datastore/src/main/java/org/mifos/mobile/core/datastore/model/MifosNotification.kt
  140. +0 −29 core/datastore/src/main/java/org/mifos/mobile/core/datastore/utils/NotificationComparator.kt
  141. +11 −11 core/datastore/src/main/{java → kotlin}/org/mifos/mobile/core/datastore/PreferencesHelper.kt
  142. +0 −28 core/datastore/src/release/java/org/mifos/mobile/core/datastore/BaseURL.kt
  143. +0 −45 core/datastore/src/release/java/org/mifos/mobile/core/datastore/SelfServiceInterceptor.kt
  144. +0 −2 core/designsystem/build.gradle.kts
  145. +1 −1 core/designsystem/src/main/kotlin/org/mifos/mobile/core/designsystem/theme/Color.kt
  146. +1 −0 core/model/build.gradle.kts
  147. +35 −0 core/model/src/main/java/org/mifos/mobile/core/model/entity/Charge.kt
  148. +2 −0 core/model/src/main/java/org/mifos/mobile/core/model/entity/ChargeCalculationType.kt
  149. +0 −1 core/model/src/main/java/org/mifos/mobile/core/model/entity/Currency.kt
  150. +26 −0 core/model/src/main/java/org/mifos/mobile/core/model/entity/MifosNotification.kt
  151. +4 −4 ...org/mifos/mobile/core/datastore → network/src/main/java/org/mifos/mobile/core/network}/BaseURL.kt
  152. +2 −15 core/network/src/main/java/org/mifos/mobile/core/network/DataManager.kt
  153. +4 −7 ...e/core/datastore → network/src/main/java/org/mifos/mobile/core/network}/SelfServiceInterceptor.kt
  154. +0 −1 core/network/src/main/java/org/mifos/mobile/core/network/SelfServiceOkHttpClient.kt
  155. +2 −2 core/network/src/main/java/org/mifos/mobile/core/network/di/NetworkModule.kt
  156. +1 −5 core/network/src/main/java/org/mifos/mobile/core/network/services/ClientChargeService.kt
  157. +8 −8 core/testing/src/main/java/org/mifos/mobile/core/testing/util/FakeRemoteDataSource.kt
  158. +1 −1 fastlane/AppFile
  159. +473 −7 fastlane/FastFile
  160. +2 −0 fastlane/Pluginfile
  161. +105 −4 fastlane/README.md
  162. +6 −0 fastlane/metadata/android/en-US/changelogs/default.txt
  163. +23 −20 feature/about/src/main/java/org/mifos/mobile/feature/about/ui/AboutUsScreen.kt
  164. +1 −1 feature/about/src/main/res/drawable/feature_about_source_code.xml
  165. +1 −1 feature/about/src/main/res/drawable/feature_about_website.xml
  166. +31 −54 ...ciary/src/main/java/org/mifos/mobile/feature/beneficiary/beneficiaryList/BeneficiaryListScreen.kt
  167. +1 −1 feature/client-charge/build.gradle.kts
  168. +1 −1 feature/client-charge/src/main/java/org/mifos/mobile/feature/charge/screens/ClientChargeScreen.kt
  169. +1 −1 feature/client-charge/src/main/java/org/mifos/mobile/feature/charge/utils/ClientChargeState.kt
  170. +6 −4 ...re/client-charge/src/main/java/org/mifos/mobile/feature/charge/viewmodel/ClientChargeViewModel.kt
  171. +1 −2 feature/notification/build.gradle.kts
  172. +17 −28 feature/notification/src/main/java/org/mifos/mobile/feature/notification/NotificationScreen.kt
  173. +22 −5 feature/notification/src/main/java/org/mifos/mobile/feature/notification/NotificationViewModel.kt
  174. +2 −5 feature/qr/src/main/java/org/mifos/mobile/feature/qr/qrCodeImport/QrCodeImportContent.kt
  175. +37 −53 ...transaction/src/main/java/org/mifos/mobile/feature/transaction/screens/RecentTransactionScreen.kt
  176. +5 −1 ...main/java/org/mifos/mobile/feature/savings/savingsAccountWithdraw/SavingsAccountWithdrawScreen.kt
  177. +216 −74 gradle/libs.versions.toml
  178. +1 −1 gradle/wrapper/gradle-wrapper.properties
  179. BIN androidApp/debug_keystore.jks → keystores/release_keystore.keystore
  180. +4 −0 libs/country-code-picker/build.gradle.kts
  181. +1 −1 libs/country-code-picker/src/main/kotlin/com/mifos/library/countrycodepicker/CountryCodePicker.kt
  182. +1 −1 libs/pullrefresh/src/main/kotlin/com.mifos.library.pullrefresh/PullRefresh.kt
  183. +0 −18 scripts/pre-commit.sh
  184. +0 −19 scripts/pre-push.sh
  185. +3 −1 settings.gradle.kts
  186. +8 −8 shared/build.gradle.kts
27 changes: 1 addition & 26 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,26 +1 @@
**Summary:**

Summarize your issue in one sentence (what goes wrong, what did you expect to happen).

**Steps to reproduce:**

How can we reproduce the issue?

**Expected behaviour:**

What did you expect the app to do?

**Observed behaviour:**

What did you see instead? Describe your issue in detail here.

**Device and Android version:**

What make and model device (e.g., Samsung Galaxy S3) did you encounter this on? What Android
version (e.g., Android 4.0 Ice Cream Sandwich or Android 6.0 Marshmallow) are you running? Is it
the stock
version from the manufacturer or a custom ROM?

**Screenshots:**

Can be created by pressing the Volume Down and Power Button at the same time on Android 4.0 and higher.
#### We are transitioning to [Jira](https://mifosforge.jira.com/jira/software/c/projects/MM/issues/) for issue tracking. Additionally, we encourage you to join our Slack channel #mifos-mobile to discuss all aspects of Mifos Mobile development. Please ensure that your messages are not cross-posted in multiple channels. Kindly direct your questions to the most appropriate channel for efficient communication.
13 changes: 9 additions & 4 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
Fixes #Issue_Number
Fixes - [Jira-#Issue_Number](https://mifosforge.jira.com/browse/MM-)

Didn't create a Jira ticket, click [here](https://mifosforge.jira.com/jira/software/c/projects/MM/issues/) to create new.

Please Add Screenshots If there are any UI changes.

Please make sure these boxes are checked before submitting your pull request - thanks!
| Before | After |
|--------------------------------------------|----------------------------------------|
| | |

- [ ] Apply the `AndroidStyle.xml` style template to your code in Android Studio.

- [ ] Run the unit tests with `./gradlew check` to make sure you didn't break anything
Please make sure these boxes are checked before submitting your pull request - thanks!

- [ ] Run the static analysis check `./gradlew check` or `ci-prepush.sh` to make sure you didn't break anything

- [ ] If you have multiple commits please combine them into one commit by squashing them.
56 changes: 0 additions & 56 deletions .github/actions/create-release-notes/action.yml

This file was deleted.

54 changes: 0 additions & 54 deletions .github/actions/create-release-number/action.yml

This file was deleted.

40 changes: 0 additions & 40 deletions .github/actions/inflate-secrets/action.yml

This file was deleted.

55 changes: 0 additions & 55 deletions .github/mock-google-services.json

This file was deleted.

96 changes: 96 additions & 0 deletions .github/workflows/android-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# GitHub Actions Workflow for Kotlin Android Application Deployment
#
# OVERVIEW:
# This workflow supports building and publishing applications across multiple platforms:
# - Android (APK/AAB)
#
# PREREQUISITES:
# Ensure your project is configured with:
# - Gradle build system
# - Kotlin Multiplatform Project with Android, iOS, Desktop, and Web modules
# - Fastlane for deployment automation
# - Separate modules/package names for each platform
#
# REQUIRED SECRETS:
# Configure the following secrets in GitHub repository settings:
# - ORIGINAL_KEYSTORE_FILE: Base64 encoded Android release keystore
# - ORIGINAL_KEYSTORE_FILE_PASSWORD: Keystore password
# - ORIGINAL_KEYSTORE_ALIAS: Keystore alias
# - ORIGINAL_KEYSTORE_ALIAS_PASSWORD: Keystore alias password

# - UPLOAD_KEYSTORE_FILE: Base64 encoded Android release keystore
# - UPLOAD_KEYSTORE_FILE_PASSWORD: Keystore password
# - UPLOAD_KEYSTORE_ALIAS: Keystore alias
# - UPLOAD_KEYSTORE_ALIAS_PASSWORD: Keystore alias password

# - GOOGLESERVICES: Google Services configuration JSON
# - PLAYSTORECREDS: Play Store service account credentials
# - FIREBASECREDS: Firebase distribution credentials

# WORKFLOW INPUTS:
# - release_type: 'internal' (default) or 'beta'
# - target_branch: Branch to use for release (default: 'dev')
# - android_package_name: Name of Android module

# USAGE:
# 1. Ensure all required secrets are configured
# 2. Customize package names in workflow inputs
# 3. Toggle platform-specific publishing flags
# 4. Trigger workflow manually or via GitHub Actions UI

# https://github.com/openMF/mifos-mobile-github-actions/blob/main/.github/workflows/android-build-and-publish.yaml

# ##############################################################################
# DON'T EDIT THIS FILE UNLESS NECESSARY #
# ##############################################################################
name: Android Build and Publish

on:
workflow_dispatch:
inputs:
release_type:
type: choice
options:
- internal
- beta
default: internal
description: Release Type

target_branch:
type: string
default: 'development'
description: 'Target branch for release'

permissions:
contents: write
id-token: write
pages: write

concurrency:
group: "reusable"
cancel-in-progress: false

jobs:
android_build_and_publish:
name: Android Build and Publish
uses: openMF/mifos-mobile-github-actions/.github/workflows/android-build-and-publish.yaml@main
with:
release_type: ${{ inputs.release_type }}
target_branch: ${{ inputs.target_branch }}
android_package_name: 'androidApp' # <-- Change this to your android package name
tester_groups: 'mifos-mobile-testers' # <-- Change this to your Firebase tester group
secrets:
original_keystore_file: ${{ secrets.ORIGINAL_KEYSTORE_FILE }}
original_keystore_file_password: ${{ secrets.ORIGINAL_KEYSTORE_FILE_PASSWORD }}
original_keystore_alias: ${{ secrets.ORIGINAL_KEYSTORE_ALIAS }}
original_keystore_alias_password: ${{ secrets.ORIGINAL_KEYSTORE_ALIAS_PASSWORD }}

upload_keystore_file: ${{ secrets.UPLOAD_KEYSTORE_FILE }}
upload_keystore_file_password: ${{ secrets.UPLOAD_KEYSTORE_FILE_PASSWORD }}
upload_keystore_alias: ${{ secrets.UPLOAD_KEYSTORE_ALIAS }}
upload_keystore_alias_password: ${{ secrets.UPLOAD_KEYSTORE_ALIAS_PASSWORD }}

google_services: ${{ secrets.GOOGLESERVICES }}
firebase_creds: ${{ secrets.FIREBASECREDS }}
playstore_creds: ${{ secrets.PLAYSTORECREDS }}
token: ${{ secrets.GITHUB_TOKEN }}
Loading