-
Notifications
You must be signed in to change notification settings - Fork 449
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added multi-platform-build-and-publish.yml Workflow
- Loading branch information
Showing
1 changed file
with
129 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,129 @@ | ||
# GitHub Actions Workflow for Kotlin Multi-Platform Application Deployment | ||
# | ||
# OVERVIEW: | ||
# This workflow supports building and publishing applications across multiple platforms: | ||
# - Android (APK/AAB) | ||
# - iOS (IPA) | ||
# - Desktop (EXE, MSI, DMG, DEB) | ||
# - Web (GitHub Pages) | ||
# | ||
# 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 | ||
|
||
# - NOTARIZATION_APPLE_ID: Apple ID for macOS app notarization | ||
# - NOTARIZATION_PASSWORD: Notarization password | ||
# - NOTARIZATION_TEAM_ID: Apple developer team ID | ||
|
||
# WORKFLOW INPUTS: | ||
# - release_type: 'internal' (default) or 'beta' | ||
# - target_branch: Branch to use for release (default: 'dev') | ||
# - android_package_name: Name of Android module | ||
# - ios_package_name: Name of iOS module | ||
# - desktop_package_name: Name of desktop module | ||
# - web_package_name: Name of web module | ||
# - publish_android: Enable/disable Android Play Store publishing | ||
# - build_ios: Enable/disable iOS build | ||
# - publish_ios: Enable/disable iOS App Store publishing | ||
# - publish_desktop: Enable/disable desktop app publishing | ||
# - publish_web: Enable/disable web app deployment (default: true) | ||
|
||
# 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/multi-platform-build-and-publish.yaml | ||
|
||
# ############################################################################## | ||
# DON'T EDIT THIS FILE UNLESS NECESSARY # | ||
# ############################################################################## | ||
name: Multi-Platform Build and Publish | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
release_type: | ||
type: choice | ||
options: | ||
- internal | ||
- beta | ||
default: internal | ||
description: Release Type | ||
|
||
target_branch: | ||
type: string | ||
default: 'dev' | ||
description: 'Target branch for release' | ||
|
||
publish_android: | ||
type: boolean | ||
default: false | ||
description: Publish Android App On Play Store | ||
|
||
publish_ios: | ||
type: boolean | ||
default: false | ||
description: Publish iOS App On App Store | ||
|
||
publish_desktop: | ||
type: boolean | ||
default: false | ||
description: Publish Desktop Apps On App Store | ||
|
||
publish_web: | ||
type: boolean | ||
default: true | ||
description: Publish Web App | ||
|
||
build_ios: | ||
type: boolean | ||
default: false | ||
description: Build iOS App | ||
|
||
permissions: | ||
contents: write | ||
id-token: write | ||
pages: write | ||
|
||
concurrency: | ||
group: "reusable" | ||
cancel-in-progress: false | ||
|
||
jobs: | ||
multi_platform_build_and_publish: | ||
name: Multi-Platform Build and Publish | ||
uses: openMF/mifos-mobile-github-actions/.github/workflows/multi-platform-build-and-publish.yaml@main | ||
secrets: inherit | ||
with: | ||
release_type: ${{ inputs.release_type }} | ||
target_branch: ${{ inputs.target_branch }} | ||
android_package_name: 'mifospay-android' # <-- Change this to your android package name | ||
ios_package_name: 'mifospay-ios' # <-- Change this to your ios package name | ||
desktop_package_name: 'mifospay-desktop' # <-- Change this to your desktop package name | ||
web_package_name: 'mifospay-web' # <-- Change this to your web package name | ||
publish_android: ${{ inputs.publish_android }} | ||
build_ios: ${{ inputs.build_ios }} | ||
publish_ios: ${{ inputs.publish_ios }} | ||
publish_desktop: ${{ inputs.publish_desktop }} | ||
publish_web: ${{ inputs.publish_web }} |