Skip to content

Commit b1d9104

Browse files
committed
Merge branch 'dev' into MW-260-add-basic-upi-payment-support
# Conflicts: # cmp-android/prodRelease-badging.txt
2 parents fa8e9af + e8b7c94 commit b1d9104

File tree

19 files changed

+275
-99
lines changed

19 files changed

+275
-99
lines changed

.github/ci-gradle.properties

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Disable daemon for CI to avoid leftover processes
2+
org.gradle.daemon=false
3+
4+
# Run tasks in parallel where possible
5+
org.gradle.parallel=true
6+
7+
# Increase heap and metaspace for larger builds (macOS-latest has ~7 GB available)
8+
org.gradle.jvmargs=-Xmx7g
9+
10+
# Limit max workers to avoid memory pressure in CI
11+
org.gradle.workers.max=3
12+
13+
# Disable Kotlin incremental compilation in CI for clean, consistent builds
14+
kotlin.incremental=false
15+
16+
# Use in-process Kotlin compiler to avoid extra forked processes
17+
kotlin.compiler.execution.strategy=in-process

.github/workflows/multi-platform-build-and-publish.yml

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,20 @@ on:
7474
default: 'development'
7575
description: 'Target branch for release'
7676

77-
build_ios:
77+
distribute_ios_firebase:
7878
type: boolean
7979
default: false
80-
description: Build iOS App
80+
description: Distribute iOS App via Firebase App Distribution
8181

82-
publish_ios:
82+
distribute_ios_testflight:
8383
type: boolean
8484
default: false
85-
description: Publish iOS App On App Store
85+
description: Distribute iOS App via TestFlight (App Store Connect)
86+
87+
distribute_ios_appstore:
88+
type: boolean
89+
default: false
90+
description: Distribute iOS App to Appstore
8691

8792
permissions:
8893
contents: write
@@ -96,17 +101,27 @@ concurrency:
96101
jobs:
97102
multi_platform_build_and_publish:
98103
name: Multi-Platform Build and Publish
99-
uses: openMF/mifos-x-actionhub/.github/workflows/multi-platform-build-and-publish.yaml@v1.0.0
104+
uses: openMF/mifos-x-actionhub/.github/workflows/multi-platform-build-and-publish.yaml@main
100105
with:
101106
release_type: ${{ inputs.release_type }}
102107
target_branch: ${{ inputs.target_branch }}
103-
android_package_name: 'mifospay-android' # <-- Change this to your android package name
104-
ios_package_name: 'mifospay-ios' # <-- Change this to your ios package name
105-
desktop_package_name: 'mifospay-desktop' # <-- Change this to your desktop package name
106-
web_package_name: 'mifospay-web' # <-- Change this to your web package name
107-
tester_groups: 'mifos-mobile-apps' # <-- Change this to your Firebase tester group
108-
build_ios: ${{ inputs.build_ios }}
109-
publish_ios: ${{ inputs.publish_ios }}
108+
android_package_name: 'cmp-android'
109+
ios_package_name: 'cmp-ios'
110+
desktop_package_name: 'cmp-desktop'
111+
web_package_name: 'cmp-web'
112+
tester_groups: 'mifos-mobile-apps'
113+
app_identifier: 'org.mifospay'
114+
git_url: '[email protected]:openMF/ios-provisioning-profile.git'
115+
git_branch: 'mifospay'
116+
match_type: 'adhoc'
117+
provisioning_profile_name: 'match AdHoc org.mifospay'
118+
firebase_app_id: '1:728434912738:ios:86a7badfaed88b841a1dbb'
119+
metadata_path: './fastlane/metadata'
120+
use_cocoapods: true # <-- Set to true if using CocoaPods integration for KMP
121+
shared_module: ':cmp-shared' # <-- Gradle path to your shared KMP module (e.g., :shared)
122+
distribute_ios_firebase: ${{ inputs.distribute_ios_firebase }}
123+
distribute_ios_testflight: ${{ inputs.distribute_ios_testflight }}
124+
distribute_ios_appstore: ${{ inputs.distribute_ios_appstore }}
110125
secrets:
111126
original_keystore_file: ${{ secrets.ORIGINAL_KEYSTORE_FILE }}
112127
original_keystore_file_password: ${{ secrets.ORIGINAL_KEYSTORE_FILE_PASSWORD }}
@@ -121,6 +136,11 @@ jobs:
121136
notarization_apple_id: ${{ secrets.NOTARIZATION_APPLE_ID }}
122137
notarization_password: ${{ secrets.NOTARIZATION_PASSWORD }}
123138
notarization_team_id: ${{ secrets.NOTARIZATION_TEAM_ID }}
139+
appstore_key_id: ${{ secrets.APPSTORE_KEY_ID }}
140+
appstore_issuer_id: ${{ secrets.APPSTORE_ISSUER_ID }}
141+
appstore_auth_key: ${{ secrets.APPSTORE_AUTH_KEY }}
142+
match_password: ${{ secrets.MATCH_PASSWORD }}
143+
match_ssh_private_key: ${{ secrets.MATCH_SSH_PRIVATE_KEY }}
124144

125145
windows_signing_key: ${{ secrets.WINDOWS_SIGNING_KEY }}
126146
windows_signing_password: ${{ secrets.WINDOWS_SIGNING_PASSWORD }}

.github/workflows/pr-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ permissions:
8181
jobs:
8282
pr_checks:
8383
name: PR Checks
84-
uses: openMF/mifos-x-actionhub/.github/workflows/pr-check.yaml@v1.0.3
84+
uses: openMF/mifos-x-actionhub/.github/workflows/pr-check.yaml@main
8585
secrets: inherit
8686
with:
8787
android_package_name: 'cmp-android' # <-- Change Your Android Package Name

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ rescue Errno::ENOENT
77
end
88

99
gem "fastlane"
10+
gem "cocoapods"
1011

1112
plugins_path = File.join(File.dirname(__FILE__), "fastlane", "Pluginfile")
1213
eval_gemfile(plugins_path) if File.exist?(plugins_path)

Gemfile.lock

Lines changed: 78 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,23 @@ GEM
55
base64
66
nkf
77
rexml
8+
activesupport (7.2.2.1)
9+
base64
10+
benchmark (>= 0.3)
11+
bigdecimal
12+
concurrent-ruby (~> 1.0, >= 1.3.1)
13+
connection_pool (>= 2.2.5)
14+
drb
15+
i18n (>= 1.6, < 2)
16+
logger (>= 1.4.2)
17+
minitest (>= 5.1)
18+
securerandom (>= 0.3)
19+
tzinfo (~> 2.0, >= 2.0.5)
820
addressable (2.8.7)
921
public_suffix (>= 2.0.2, < 7.0)
22+
algoliasearch (1.27.5)
23+
httpclient (~> 2.8, >= 2.8.3)
24+
json (>= 1.5.1)
1025
artifactory (3.0.17)
1126
atomos (0.1.3)
1227
aws-eventstream (1.4.0)
@@ -30,18 +45,63 @@ GEM
3045
aws-eventstream (~> 1, >= 1.0.2)
3146
babosa (1.0.4)
3247
base64 (0.3.0)
48+
benchmark (0.3.0)
3349
bigdecimal (3.2.2)
3450
claide (1.1.0)
51+
cocoapods (1.16.2)
52+
addressable (~> 2.8)
53+
claide (>= 1.0.2, < 2.0)
54+
cocoapods-core (= 1.16.2)
55+
cocoapods-deintegrate (>= 1.0.3, < 2.0)
56+
cocoapods-downloader (>= 2.1, < 3.0)
57+
cocoapods-plugins (>= 1.0.0, < 2.0)
58+
cocoapods-search (>= 1.0.0, < 2.0)
59+
cocoapods-trunk (>= 1.6.0, < 2.0)
60+
cocoapods-try (>= 1.1.0, < 2.0)
61+
colored2 (~> 3.1)
62+
escape (~> 0.0.4)
63+
fourflusher (>= 2.3.0, < 3.0)
64+
gh_inspector (~> 1.0)
65+
molinillo (~> 0.8.0)
66+
nap (~> 1.0)
67+
ruby-macho (>= 2.3.0, < 3.0)
68+
xcodeproj (>= 1.27.0, < 2.0)
69+
cocoapods-core (1.16.2)
70+
activesupport (>= 5.0, < 8)
71+
addressable (~> 2.8)
72+
algoliasearch (~> 1.0)
73+
concurrent-ruby (~> 1.1)
74+
fuzzy_match (~> 2.0.4)
75+
nap (~> 1.0)
76+
netrc (~> 0.11)
77+
public_suffix (~> 4.0)
78+
typhoeus (~> 1.0)
79+
cocoapods-deintegrate (1.0.5)
80+
cocoapods-downloader (2.1)
81+
cocoapods-plugins (1.0.0)
82+
nap
83+
cocoapods-search (1.0.1)
84+
cocoapods-trunk (1.6.0)
85+
nap (>= 0.8, < 2.0)
86+
netrc (~> 0.11)
87+
cocoapods-try (1.2.0)
3588
colored (1.2)
3689
colored2 (3.1.2)
3790
commander (4.6.0)
3891
highline (~> 2.0.0)
92+
concurrent-ruby (1.3.5)
93+
connection_pool (2.5.0)
3994
declarative (0.0.20)
4095
digest-crc (0.7.0)
4196
rake (>= 12.0.0, < 14.0.0)
4297
domain_name (0.6.20240107)
4398
dotenv (2.8.1)
99+
drb (2.2.0)
100+
ruby2_keywords
44101
emoji_regex (3.2.3)
102+
escape (0.0.4)
103+
ethon (0.16.0)
104+
ffi (>= 1.15.0)
45105
excon (0.112.0)
46106
faraday (1.10.4)
47107
faraday-em_http (~> 1.0)
@@ -120,6 +180,9 @@ GEM
120180
fastlane-plugin-increment_build_number (0.0.4)
121181
fastlane-sirp (1.0.0)
122182
sysrandom (~> 1.0)
183+
ffi (1.17.1-arm64-darwin)
184+
fourflusher (2.3.1)
185+
fuzzy_match (2.0.4)
123186
gh_inspector (1.1.3)
124187
google-apis-androidpublisher_v3 (0.54.0)
125188
google-apis-core (>= 0.11.0, < 2.a)
@@ -166,23 +229,29 @@ GEM
166229
domain_name (~> 0.5)
167230
httpclient (2.9.0)
168231
mutex_m
232+
i18n (1.14.7)
233+
concurrent-ruby (~> 1.0)
169234
jmespath (1.6.2)
170235
json (2.13.2)
171236
jwt (2.10.2)
172237
base64
173238
logger (1.7.0)
174239
mini_magick (4.13.2)
175240
mini_mime (1.1.5)
241+
minitest (5.20.0)
242+
molinillo (0.8.0)
176243
multi_json (1.17.0)
177244
multipart-post (2.4.1)
178245
mutex_m (0.3.0)
179246
nanaimo (0.4.0)
247+
nap (1.1.0)
180248
naturally (2.3.0)
249+
netrc (0.11.0)
181250
nkf (0.2.0)
182251
optparse (0.6.0)
183252
os (1.1.4)
184253
plist (3.7.2)
185-
public_suffix (6.0.2)
254+
public_suffix (4.0.7)
186255
rake (13.3.0)
187256
representable (3.2.0)
188257
declarative (< 0.1.0)
@@ -191,8 +260,10 @@ GEM
191260
retriable (3.1.2)
192261
rexml (3.4.1)
193262
rouge (3.28.0)
263+
ruby-macho (2.5.1)
194264
ruby2_keywords (0.0.5)
195265
rubyzip (2.4.1)
266+
securerandom (0.3.1)
196267
security (0.1.5)
197268
signet (0.20.0)
198269
addressable (~> 2.8)
@@ -211,6 +282,10 @@ GEM
211282
tty-screen (0.8.2)
212283
tty-spinner (0.9.3)
213284
tty-cursor (~> 0.7)
285+
typhoeus (1.4.1)
286+
ethon (>= 0.9.0)
287+
tzinfo (2.0.6)
288+
concurrent-ruby (~> 1.0)
214289
uber (0.1.0)
215290
unicode-display_width (2.6.0)
216291
word_wrap (1.0.0)
@@ -227,10 +302,11 @@ GEM
227302
xcpretty (~> 0.2, >= 0.0.7)
228303

229304
PLATFORMS
305+
arm64-darwin-24
230306
ruby
231-
x64-mingw-ucrt
232307

233308
DEPENDENCIES
309+
cocoapods
234310
fastlane
235311
fastlane-plugin-firebase_app_distribution
236312
fastlane-plugin-increment_build_number

build-logic/convention/src/main/kotlin/org/mifospay/KotlinMultiplatform.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ internal fun Project.configureKotlinMultiplatform() {
1313

1414
jvm("desktop")
1515
androidTarget()
16+
iosArm64()
1617
iosSimulatorArm64()
1718
iosX64()
18-
iosArm64()
1919
js(IR) {
2020
this.nodejs()
2121
binaries.executable()

cmp-android/prodRelease-badging.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package: name='org.mifospay' versionCode='1' versionName='2025.8.3-beta.0.5' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
1+
package: name='org.mifospay' versionCode='1' versionName='2025.8.2-beta.0.3' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
22
minSdkVersion:'26'
33
targetSdkVersion:'34'
44
uses-permission: name='android.permission.INTERNET'

cmp-ios/Podfile

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
1-
platform :ios, '16.0'
2-
use_frameworks!
1+
deployment_target = '16.0'
32

43
target 'iosApp' do
5-
project 'iosApp.xcodeproj'
4+
use_frameworks!
5+
platform :ios, deployment_target
6+
# Pods for iosApp
67
pod 'cmp_shared', :path => '../cmp-shared'
8+
end
79

8-
# Native Firebase iOS Pods required by firebase-kotlin-sdk
9-
pod 'FirebaseCore'
10-
pod 'FirebaseAnalytics'
11-
pod 'FirebaseCrashlytics'
10+
post_install do |installer|
11+
installer.generated_projects.each do |project|
12+
project.targets.each do |target|
13+
target.build_configurations.each do |config|
14+
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target
15+
end
16+
end
17+
project.build_configurations.each do |config|
18+
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target
19+
end
20+
end
1221
end

cmp-ios/Podfile.lock

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
PODS:
2+
- cmp_shared (1.0)
3+
4+
DEPENDENCIES:
5+
- cmp_shared (from `../cmp-shared`)
6+
7+
EXTERNAL SOURCES:
8+
cmp_shared:
9+
:path: "../cmp-shared"
10+
11+
SPEC CHECKSUMS:
12+
cmp_shared: 572f72160ae05ea5b3f48ce339a45689782322e3
13+
14+
PODFILE CHECKSUM: fba668dc0eba2e4694ef273d90789cf739b8504c
15+
16+
COCOAPODS: 1.16.2

0 commit comments

Comments
 (0)