Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
99c19bd
Sync iOS configuration
Aryan-Baglane Feb 25, 2026
3dce68e
Sync iOS configuration
Aryan-Baglane Feb 25, 2026
7ba7604
Sync iOS configuration
Aryan-Baglane Feb 25, 2026
ebb9a42
Merge branch 'development' into update-fastlane
Aryan-Baglane Feb 27, 2026
9120c47
Change default target branch from 'dev' to 'development'
Aryan-Baglane Mar 2, 2026
a9b5000
Sync iOS configuration
Aryan-Baglane Mar 2, 2026
1b0bf33
Merge branch 'development' into update-fastlane
niyajali Mar 3, 2026
3c8c7a2
Merge branch 'development' into update-fastlane
Aryan-Baglane Mar 4, 2026
4dc3d06
Merge branch 'development' into update-fastlane
biplab1 Mar 4, 2026
e0e4c37
Merge branch 'development' into update-fastlane
niyajali Mar 6, 2026
3d3afb6
Rename PR Checks job for clarity
Aryan-Baglane Mar 13, 2026
541e36f
Merge branch 'development' into update-fastlane
Aryan-Baglane Mar 18, 2026
14676c4
Sync iOS configuration
Aryan-Baglane Mar 18, 2026
e192127
Merge branch 'development' into update-fastlane
biplab1 Mar 18, 2026
6a36cd5
Merge branch 'development' into update-fastlane
Aryan-Baglane Mar 18, 2026
7d3cbb9
Sync iOS configuration
Aryan-Baglane Mar 18, 2026
9ad4457
Add Java version to PR check workflow
Aryan-Baglane Mar 18, 2026
ec47680
Merge branch 'development' into update-fastlane
Aryan-Baglane Mar 26, 2026
6caa1ce
updated secrets.env file
Aryan-Baglane Apr 9, 2026
163867f
Merge branch 'development' into update-fastlane
Aryan-Baglane Apr 22, 2026
06db574
Merge branch 'dev' into update-fastlane
Aryan-Baglane May 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
714 changes: 714 additions & 0 deletions .github/CLAUDE.md
Comment thread
Aryan-Baglane marked this conversation as resolved.

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .github/workflows/multi-platform-build-and-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ concurrency:
jobs:
multi_platform_build_and_publish:
name: Multi-Platform Build and Publish
uses: openMF/mifos-x-actionhub/.github/workflows/multi-platform-build-and-publish.yaml@v1.0.8
uses: openMF/mifos-x-actionhub/.github/workflows/multi-platform-build-and-publish.yaml@v1.0.11
with:
release_type: ${{ inputs.release_type }}
target_branch: ${{ inputs.target_branch }}
Expand Down
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ gem "fastlane"
gem "cocoapods", "~> 1.16"

plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)
eval_gemfile(plugins_path) if File.exist?(plugins_path)
119 changes: 68 additions & 51 deletions Gemfile.lock
Comment thread
Aryan-Baglane marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.8)
abbrev (0.1.2)
CFPropertyList (3.0.7)
base64
nkf
rexml
activesupport (7.2.2.1)
activesupport (7.2.3)
base64
benchmark (>= 0.3)
bigdecimal
Expand All @@ -18,34 +15,36 @@ GEM
minitest (>= 5.1)
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
addressable (2.8.8)
public_suffix (>= 2.0.2, < 8.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.0)
aws-partitions (1.1048.0)
aws-sdk-core (3.218.1)
aws-eventstream (1.4.0)
aws-partitions (1.1208.0)
aws-sdk-core (3.241.4)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
base64
bigdecimal
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.98.0)
aws-sdk-core (~> 3, >= 3.216.0)
logger
aws-sdk-kms (1.121.0)
aws-sdk-core (~> 3, >= 3.241.4)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.180.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sdk-s3 (1.212.0)
aws-sdk-core (~> 3, >= 3.241.4)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.11.0)
aws-sigv4 (1.12.1)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.2.0)
benchmark (0.3.0)
bigdecimal (3.1.9)
benchmark (0.5.0)
bigdecimal (4.0.1)
claide (1.1.0)
cocoapods (1.16.2)
addressable (~> 2.8)
Expand Down Expand Up @@ -88,18 +87,18 @@ GEM
colored2 (3.1.2)
commander (4.6.0)
highline (~> 2.0.0)
concurrent-ruby (1.3.5)
connection_pool (2.5.0)
concurrent-ruby (1.3.6)
connection_pool (3.0.2)
csv (3.3.5)
declarative (0.0.20)
digest-crc (0.7.0)
rake (>= 12.0.0, < 14.0.0)
domain_name (0.6.20240107)
dotenv (2.8.1)
drb (2.2.0)
ruby2_keywords
drb (2.2.3)
emoji_regex (3.2.3)
escape (0.0.4)
ethon (0.16.0)
ethon (0.15.0)
ffi (>= 1.15.0)
excon (0.112.0)
faraday (1.10.4)
Expand All @@ -114,14 +113,14 @@ GEM
faraday-rack (~> 1.0)
faraday-retry (~> 1.0)
ruby2_keywords (>= 0.0.4)
faraday-cookie_jar (0.0.7)
faraday-cookie_jar (0.0.8)
faraday (>= 0.8.0)
http-cookie (~> 1.0.0)
http-cookie (>= 1.0.0)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-em_synchrony (1.0.1)
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-multipart (1.1.0)
faraday-multipart (1.2.0)
multipart-post (~> 2.0)
faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0)
Expand All @@ -131,15 +130,19 @@ GEM
faraday_middleware (1.2.1)
faraday (~> 1.0)
fastimage (2.4.0)
fastlane (2.226.0)
fastlane (2.231.1)
CFPropertyList (>= 2.3, < 4.0.0)
abbrev (~> 0.1.2)
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)
base64 (~> 0.2.0)
benchmark (>= 0.1.0)
bundler (>= 1.17.3, < 5.0.0)
colored (~> 1.2)
commander (~> 4.6)
csv (~> 3.3)
dotenv (>= 2.1.1, < 3.0.0)
emoji_regex (>= 0.1, < 4.0)
excon (>= 0.71.0, < 1.0.0)
Expand All @@ -157,10 +160,14 @@ GEM
http-cookie (~> 1.0.5)
json (< 3.0.0)
jwt (>= 2.1.0, < 3)
logger (>= 1.6, < 2.0)
mini_magick (>= 4.9.4, < 5.0.0)
multipart-post (>= 2.0.0, < 3.0.0)
mutex_m (~> 0.3.0)
naturally (~> 2.2)
nkf (~> 0.2.0)
optparse (>= 0.1.1, < 1.0.0)
ostruct (>= 0.1.0)
plist (>= 3.1.0, < 4.0.0)
rubyzip (>= 2.0.0, < 3.0.0)
security (= 0.1.5)
Expand All @@ -171,15 +178,16 @@ GEM
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.4.0)
xcpretty (~> 0.4.1)
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
fastlane-plugin-firebase_app_distribution (0.10.0)
fastlane-plugin-firebase_app_distribution (0.10.1)
google-apis-firebaseappdistribution_v1 (~> 0.3.0)
google-apis-firebaseappdistribution_v1alpha (~> 0.2.0)
fastlane-plugin-increment_build_number (0.0.4)
fastlane-sirp (1.0.0)
sysrandom (~> 1.0)
ffi (1.17.1-arm64-darwin)
ffi (1.17.3)
ffi (1.17.3-arm64-darwin)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
Expand All @@ -203,12 +211,12 @@ GEM
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.1)
google-cloud-core (1.8.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-errors (1.5.0)
google-cloud-storage (1.47.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
Expand All @@ -226,47 +234,51 @@ GEM
highline (2.0.3)
http-cookie (1.0.8)
domain_name (~> 0.5)
httpclient (2.8.3)
i18n (1.14.7)
httpclient (2.9.0)
mutex_m
i18n (1.14.8)
concurrent-ruby (~> 1.0)
jmespath (1.6.2)
json (2.9.1)
jwt (2.10.1)
json (2.18.0)
jwt (2.10.2)
base64
logger (1.7.0)
mini_magick (4.13.2)
mini_mime (1.1.5)
minitest (5.20.0)
minitest (6.0.1)
prism (~> 1.5)
molinillo (0.8.0)
multi_json (1.15.0)
multi_json (1.19.1)
multipart-post (2.4.1)
mutex_m (0.3.0)
nanaimo (0.4.0)
nap (1.1.0)
naturally (2.2.1)
naturally (2.3.0)
netrc (0.11.0)
nkf (0.2.0)
optparse (0.6.0)
optparse (0.8.1)
os (1.1.4)
ostruct (0.6.3)
plist (3.7.2)
prism (1.8.0)
public_suffix (4.0.7)
rake (13.2.1)
rake (13.3.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.4.0)
rexml (3.4.4)
rouge (3.28.0)
ruby-macho (2.5.1)
ruby2_keywords (0.0.5)
rubyzip (2.4.1)
securerandom (0.3.1)
securerandom (0.4.1)
security (0.1.5)
signet (0.19.0)
signet (0.21.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
jwt (>= 1.5, < 4.0)
multi_json (~> 1.10)
simctl (1.6.10)
CFPropertyList
Expand All @@ -280,8 +292,8 @@ GEM
tty-screen (0.8.2)
tty-spinner (0.9.3)
tty-cursor (~> 0.7)
typhoeus (1.4.1)
ethon (>= 0.9.0)
typhoeus (1.5.0)
ethon (>= 0.9.0, < 0.16.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
uber (0.1.0)
Expand All @@ -294,13 +306,15 @@ GEM
colored2 (~> 3.1)
nanaimo (~> 0.4.0)
rexml (>= 3.3.6, < 4.0)
xcpretty (0.4.0)
xcpretty (0.4.1)
rouge (~> 3.28.0)
xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7)

PLATFORMS
arm64-darwin-24
arm64-darwin-21
arm64-darwin-23
arm64-darwin-25
ruby

DEPENDENCIES
Expand All @@ -313,5 +327,8 @@ DEPENDENCIES
fastlane-plugin-increment_build_number
mutex_m

RUBY VERSION
ruby 3.3.5p100

BUNDLED WITH
2.5.18
2.7.2
22 changes: 11 additions & 11 deletions fastlane-config/android_config.rb
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
module FastlaneConfig
module AndroidConfig
STORE_CONFIG = {
default_store_file: "release_keystore.keystore",
default_store_password: "mifos1234",
default_key_alias: "mifos-mobile",
default_key_password: "mifos1234"
default_store_file: ProjectConfig::ANDROID[:keystore][:file],
default_store_password: ProjectConfig::ANDROID[:keystore][:password],
default_key_alias: ProjectConfig::ANDROID[:keystore][:key_alias],
default_key_password: ProjectConfig::ANDROID[:keystore][:key_password]
}

FIREBASE_CONFIG = {
firebase_prod_app_id: "1:728434912738:android:d853a78f14af0c381a1dbb",
firebase_demo_app_id: "1:728434912738:android:7845cce9777d9cf11a1dbb",
firebase_service_creds_file: "secrets/firebaseAppDistributionServiceCredentialsFile.json",
firebase_groups: "mifos-mobile-apps"
firebase_prod_app_id: ProjectConfig::ANDROID[:firebase][:prod_app_id],
firebase_demo_app_id: ProjectConfig::ANDROID[:firebase][:demo_app_id],
firebase_service_creds_file: ProjectConfig.firebase_credentials_file,
firebase_groups: ProjectConfig::ANDROID[:firebase][:groups]
}

BUILD_PATHS = {
prod_apk_path: "cmp-android/build/outputs/apk/prod/release/cmp-android-prod-release.apk",
demo_apk_path: "cmp-android/build/outputs/apk/demo/release/cmp-android-demo-release.apk",
prod_aab_path: "cmp-android/build/outputs/bundle/prodRelease/cmp-android-prod-release.aab"
prod_apk_path: ProjectConfig::ANDROID[:apk_paths][:prod],
demo_apk_path: ProjectConfig::ANDROID[:apk_paths][:demo],
prod_aab_path: ProjectConfig::ANDROID[:aab_path]
}
end
end
60 changes: 60 additions & 0 deletions fastlane-config/extract_config.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
#!/usr/bin/env ruby
# ==============================================================================
# iOS Configuration Extraction Script for GitHub Actions
# ==============================================================================
# This script extracts iOS configuration from project_config.rb and outputs
# it as JSON for consumption by GitHub Actions workflows.
#
# Usage:
# ruby fastlane-config/extract_config.rb
#
# Output:
# JSON object with iOS configuration values
# ==============================================================================

require 'json'
require_relative 'project_config'

begin
# Extract iOS configuration from project_config.rb
config = {
# App-specific configuration (from IOS)
app_identifier: FastlaneConfig::ProjectConfig::IOS[:app_identifier],
firebase_app_id: FastlaneConfig::ProjectConfig::IOS[:firebase][:app_id],
firebase_groups: FastlaneConfig::ProjectConfig::IOS[:firebase][:groups],
metadata_path: FastlaneConfig::ProjectConfig::IOS[:metadata_path],
version_number: FastlaneConfig::ProjectConfig::IOS[:version_number],

# Shared configuration (from IOS_SHARED)
team_id: FastlaneConfig::ProjectConfig::IOS_SHARED[:team_id],
match_git_url: FastlaneConfig::ProjectConfig::IOS_SHARED[:code_signing][:match_git_url],
match_git_branch: FastlaneConfig::ProjectConfig::IOS_SHARED[:code_signing][:match_git_branch],
match_type: FastlaneConfig::ProjectConfig::IOS_SHARED[:code_signing][:match_type],

# Dynamically computed provisioning profiles
provisioning_profile_adhoc: FastlaneConfig::ProjectConfig::IOS_SHARED[:code_signing][:provisioning_profiles][:adhoc],
provisioning_profile_appstore: FastlaneConfig::ProjectConfig::IOS_SHARED[:code_signing][:provisioning_profiles][:appstore]
}

# Output as pretty-printed JSON
puts JSON.pretty_generate(config)

# Exit successfully
exit 0

rescue => e
# Error handling
STDERR.puts "Error extracting iOS configuration:"
STDERR.puts " #{e.class}: #{e.message}"
STDERR.puts
STDERR.puts "Stack trace:"
e.backtrace.each { |line| STDERR.puts " #{line}" }
STDERR.puts
STDERR.puts "Please ensure:"
STDERR.puts " 1. fastlane-config/project_config.rb exists and is valid Ruby"
STDERR.puts " 2. Both IOS and IOS_SHARED configurations are defined"
STDERR.puts " 3. All required keys are present in the configuration"

# Exit with error
exit 1
end
Loading