Skip to content

Commit edcb6a6

Browse files
authored
Merge branch 'kmp-impl' into datatable-cmp
2 parents 37b9ed4 + c840321 commit edcb6a6

File tree

178 files changed

+10371
-1133
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

178 files changed

+10371
-1133
lines changed

.github/workflows/cache-cleanup.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: Cleanup Cache
2+
3+
on:
4+
pull_request:
5+
types: [ closed ]
6+
workflow_dispatch:
7+
8+
jobs:
9+
cleanup:
10+
uses: openMF/mifos-x-actionhub/.github/workflows/cache-cleanup.yaml@v1.0.0
11+
with:
12+
cleanup_pr: ${{ github.event_name == 'pull_request' && github.event.repository.private == true }}
13+
cleanup_all: ${{ github.event_name == 'workflow_dispatch' }}
14+
secrets:
15+
token: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Automated Monthly Release Versioning Workflow
2+
# ============================================
3+
4+
# Purpose:
5+
# - Automatically create consistent monthly version tags
6+
# - Implement a calendar-based versioning strategy
7+
# - Facilitate easy tracking of monthly releases
8+
9+
# Versioning Strategy:
10+
# - Tag format: YYYY.MM.0 (e.g., 2024.01.0 for January 2024)
11+
# - First digit: Full year
12+
# - Second digit: Month (01-12)
13+
# - Third digit: Patch version (starts at 0, allows for potential updates)
14+
15+
# Key Features:
16+
# - Runs automatically on the first day of each month at 3:30 AM UTC
17+
# - Can be manually triggered via workflow_dispatch
18+
# - Uses GitHub Actions to generate tags programmatically
19+
# - Provides a predictable and systematic versioning approach
20+
21+
# Prerequisites:
22+
# - Repository configured with GitHub Actions
23+
# - Permissions to create tags
24+
# - Access to actions/checkout and tag creation actions
25+
26+
# Workflow Triggers:
27+
# - Scheduled monthly run
28+
# - Manual workflow dispatch
29+
# - Callable from other workflows
30+
31+
# Actions Used:
32+
# 1. actions/checkout@v4 - Checks out repository code
33+
# 2. josStorer/get-current-time - Retrieves current timestamp
34+
# 3. rickstaa/action-create-tag - Creates Git tags
35+
36+
# Example Generated Tags:
37+
# - 2024.01.0 (January 2024 initial release)
38+
# - 2024.02.0 (February 2024 initial release)
39+
# - 2024.02.1 (Potential patch for February 2024)
40+
41+
# https://github.com/openMF/mifos-x-actionhub/blob/main/.github/workflows/monthly-version-tag.yaml
42+
43+
# ##############################################################################
44+
# DON'T EDIT THIS FILE UNLESS NECESSARY #
45+
# ##############################################################################
46+
47+
name: Tag Monthly Release
48+
49+
on:
50+
# Allow manual triggering of the workflow
51+
workflow_dispatch:
52+
# Schedule the workflow to run monthly
53+
schedule:
54+
# Runs at 03:30 UTC on the first day of every month
55+
# Cron syntax: minute hour day-of-month month day-of-week
56+
- cron: '30 3 1 * *'
57+
58+
concurrency:
59+
group: "monthly-release"
60+
cancel-in-progress: false
61+
62+
jobs:
63+
monthly_release:
64+
name: Tag Monthly Release
65+
uses: openMF/mifos-x-actionhub/.github/workflows/monthly-version-tag.yaml@v1.0.0
66+
secrets: inherit
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
# GitHub Actions Workflow for Kotlin Multi-Platform Application Deployment
2+
#
3+
# OVERVIEW:
4+
# This workflow supports building and publishing applications across multiple platforms:
5+
# - Android (APK/AAB)
6+
# - iOS (IPA)
7+
# - Desktop (EXE, MSI, DMG, DEB)
8+
# - Web (GitHub Pages)
9+
#
10+
# PREREQUISITES:
11+
# Ensure your project is configured with:
12+
# - Gradle build system
13+
# - Kotlin Multiplatform Project with Android, iOS, Desktop, and Web modules
14+
# - Fastlane for deployment automation
15+
# - Separate modules/package names for each platform
16+
#
17+
# REQUIRED SECRETS:
18+
# Configure the following secrets in GitHub repository settings:
19+
# - ORIGINAL_KEYSTORE_FILE: Base64 encoded Android release keystore
20+
# - ORIGINAL_KEYSTORE_FILE_PASSWORD: Keystore password
21+
# - ORIGINAL_KEYSTORE_ALIAS: Keystore alias
22+
# - ORIGINAL_KEYSTORE_ALIAS_PASSWORD: Keystore alias password
23+
24+
# - UPLOAD_KEYSTORE_FILE: Base64 encoded Android release keystore
25+
# - UPLOAD_KEYSTORE_FILE_PASSWORD: Keystore password
26+
# - UPLOAD_KEYSTORE_ALIAS: Keystore alias
27+
# - UPLOAD_KEYSTORE_ALIAS_PASSWORD: Keystore alias password
28+
29+
# - GOOGLESERVICES: Google Services configuration JSON
30+
# - PLAYSTORECREDS: Play Store service account credentials
31+
# - FIREBASECREDS: Firebase distribution credentials
32+
33+
# - NOTARIZATION_APPLE_ID: Apple ID for macOS app notarization
34+
# - NOTARIZATION_PASSWORD: Notarization password
35+
# - NOTARIZATION_TEAM_ID: Apple developer team ID
36+
37+
# WORKFLOW INPUTS:
38+
# - release_type: 'internal' (default) or 'beta'
39+
# - target_branch: Branch to use for release (default: 'dev')
40+
# - android_package_name: Name of Android module
41+
# - ios_package_name: Name of iOS module
42+
# - desktop_package_name: Name of desktop module
43+
# - web_package_name: Name of web module
44+
# - publish_android: Enable/disable Android Play Store publishing
45+
# - build_ios: Enable/disable iOS build
46+
# - publish_ios: Enable/disable iOS App Store publishing
47+
48+
# USAGE:
49+
# 1. Ensure all required secrets are configured
50+
# 2. Customize package names in workflow inputs
51+
# 3. Toggle platform-specific publishing flags
52+
# 4. Trigger workflow manually or via GitHub Actions UI
53+
54+
# https://github.com/openMF/mifos-x-actionhub/blob/main/.github/workflows/multi-platform-build-and-publish.yaml
55+
56+
# ##############################################################################
57+
# DON'T EDIT THIS FILE UNLESS NECESSARY #
58+
# ##############################################################################
59+
name: Multi-Platform Build and Publish
60+
61+
on:
62+
workflow_dispatch:
63+
inputs:
64+
release_type:
65+
type: choice
66+
options:
67+
- internal
68+
- beta
69+
default: internal
70+
description: Release Type
71+
72+
target_branch:
73+
type: string
74+
default: 'development'
75+
description: 'Target branch for release'
76+
77+
distribute_ios_firebase:
78+
type: boolean
79+
default: false
80+
description: Distribute iOS App via Firebase App Distribution
81+
82+
distribute_ios_testflight:
83+
type: boolean
84+
default: false
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
91+
92+
permissions:
93+
contents: write
94+
id-token: write
95+
pages: write
96+
97+
concurrency:
98+
group: "reusable"
99+
cancel-in-progress: false
100+
101+
jobs:
102+
multi_platform_build_and_publish:
103+
name: Multi-Platform Build and Publish
104+
uses: openMF/mifos-x-actionhub/.github/workflows/multi-platform-build-and-publish.yaml@v1.0.1
105+
with:
106+
release_type: ${{ inputs.release_type }}
107+
target_branch: ${{ inputs.target_branch }}
108+
android_package_name: 'cmp-android' # <-- Change this to your android package name
109+
ios_package_name: 'cmp-ios' # <-- Change this to your ios package name
110+
desktop_package_name: 'cmp-desktop' # <-- Change this to your desktop package name
111+
web_package_name: 'cmp-web' # <-- Change this to your web package name
112+
tester_groups: 'mifos-mobile-apps' # <-- Change this to your Firebase tester group
113+
app_identifier: 'org.mifos.kmp.template'
114+
git_url: 'git@github.com:openMF/ios-provisioning-profile.git'
115+
git_branch: 'master'
116+
match_type: 'adhoc'
117+
provisioning_profile_name: 'match AdHoc org.mifos.kmp.template'
118+
firebase_app_id: '1:728434912738:ios:1d81f8e53ca7a6f31a1dbb'
119+
metadata_path: './fastlane/metadata'
120+
distribute_ios_firebase: ${{ inputs.distribute_ios_firebase }}
121+
distribute_ios_testflight: ${{ inputs.distribute_ios_testflight }}
122+
distribute_ios_appstore: ${{ inputs.distribute_ios_appstore }}
123+
secrets:
124+
original_keystore_file: ${{ secrets.ORIGINAL_KEYSTORE_FILE }}
125+
original_keystore_file_password: ${{ secrets.ORIGINAL_KEYSTORE_FILE_PASSWORD }}
126+
original_keystore_alias: ${{ secrets.ORIGINAL_KEYSTORE_ALIAS }}
127+
original_keystore_alias_password: ${{ secrets.ORIGINAL_KEYSTORE_ALIAS_PASSWORD }}
128+
129+
upload_keystore_file: ${{ secrets.UPLOAD_KEYSTORE_FILE }}
130+
upload_keystore_file_password: ${{ secrets.UPLOAD_KEYSTORE_FILE_PASSWORD }}
131+
upload_keystore_alias: ${{ secrets.UPLOAD_KEYSTORE_ALIAS }}
132+
upload_keystore_alias_password: ${{ secrets.UPLOAD_KEYSTORE_ALIAS_PASSWORD }}
133+
134+
notarization_apple_id: ${{ secrets.NOTARIZATION_APPLE_ID }}
135+
notarization_password: ${{ secrets.NOTARIZATION_PASSWORD }}
136+
notarization_team_id: ${{ secrets.NOTARIZATION_TEAM_ID }}
137+
appstore_key_id: ${{ secrets.APPSTORE_KEY_ID }}
138+
appstore_issuer_id: ${{ secrets.APPSTORE_ISSUER_ID }}
139+
appstore_auth_key: ${{ secrets.APPSTORE_AUTH_KEY }}
140+
match_password: ${{ secrets.MATCH_PASSWORD }}
141+
match_ssh_private_key: ${{ secrets.MATCH_SSH_PRIVATE_KEY }}
142+
143+
windows_signing_key: ${{ secrets.WINDOWS_SIGNING_KEY }}
144+
windows_signing_password: ${{ secrets.WINDOWS_SIGNING_PASSWORD }}
145+
windows_signing_certificate: ${{ secrets.WINDOWS_SIGNING_CERTIFICATE }}
146+
147+
macos_signing_key: ${{ secrets.MACOS_SIGNING_KEY }}
148+
macos_signing_password: ${{ secrets.MACOS_SIGNING_PASSWORD }}
149+
macos_signing_certificate: ${{ secrets.MACOS_SIGNING_CERTIFICATE }}
150+
151+
linux_signing_key: ${{ secrets.LINUX_SIGNING_KEY }}
152+
linux_signing_password: ${{ secrets.LINUX_SIGNING_PASSWORD }}
153+
linux_signing_certificate: ${{ secrets.LINUX_SIGNING_CERTIFICATE }}
154+
155+
google_services: ${{ secrets.GOOGLESERVICES }}
156+
firebase_creds: ${{ secrets.FIREBASECREDS }}
157+
playstore_creds: ${{ secrets.PLAYSTORECREDS }}
158+
token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/pr-check-android.yml

Lines changed: 0 additions & 84 deletions
This file was deleted.

0 commit comments

Comments
 (0)