mirror of
https://github.com/openMF/mifos-mobile.git
synced 2026-02-06 11:26:51 +00:00
93 lines
3.1 KiB
YAML
93 lines
3.1 KiB
YAML
## Overview
|
|
#
|
|
# This reusable GitHub Actions workflow provides a comprehensive Continuous Integration (CI) pipeline
|
|
# for multi-platform mobile and desktop applications, specifically designed for projects using Gradle and Java/Kotlin.
|
|
#
|
|
### Key Features
|
|
# - Automated code quality checks
|
|
# - Dependency management and verification
|
|
# - Cross-platform desktop application builds (Windows, Linux, MacOS)
|
|
# - Android APK build generation
|
|
# - Artifact generation and storage
|
|
#
|
|
### Workflow Jobs
|
|
# 1. **Setup**: Prepares the build environment
|
|
# - Checks out repository code
|
|
# - Sets up Java 17
|
|
# - Configures Gradle
|
|
# - Manages dependency caching
|
|
#
|
|
# 2. **Code Quality Checks**:
|
|
# - Build logic verification
|
|
# - Code formatting checks (Spotless)
|
|
# - Static code analysis (Detekt)
|
|
#
|
|
# 3. **Dependency Guard**:
|
|
# - Verifies dependencies against baseline
|
|
# - Prevents unauthorized dependency changes
|
|
# - Supports automatic baseline updates
|
|
#
|
|
# 4. **Android App Build**:
|
|
# - Builds debug APK for demo flavor
|
|
# - Uploads APK artifacts
|
|
#
|
|
# 5. **Desktop App Build**:
|
|
# - Builds applications for Windows, Linux, and MacOS
|
|
# - Generates platform-specific executables and packages
|
|
#
|
|
### Prerequisites
|
|
# - Java 17
|
|
# - Gradle
|
|
# - Configured build scripts for:
|
|
# - Android module
|
|
# - Desktop module
|
|
# - Installed Gradle plugins:
|
|
# - Spotless
|
|
# - Detekt
|
|
# - Dependency Guard
|
|
#
|
|
### Configuration Parameters
|
|
# The workflow requires two input parameters:
|
|
#
|
|
# | Parameter | Description | Type | Required |
|
|
# |------------------------|------------------------------------|--------|----------|
|
|
# | `android_package_name` | Name of the Android project module | String | Yes |
|
|
# | `desktop_package_name` | Name of the Desktop project module | String | Yes |
|
|
#
|
|
|
|
# https://github.com/openMF/mifos-mobile-github-actions/blob/main/.github/workflows/pr-check.yaml
|
|
|
|
# ##############################################################################
|
|
# DON'T EDIT THIS FILE UNLESS NECESSARY #
|
|
# ##############################################################################
|
|
|
|
|
|
name: PR Checks
|
|
|
|
# Trigger conditions for the workflow
|
|
on:
|
|
push:
|
|
branches: [ dev ] # Runs on pushes to dev branch
|
|
pull_request:
|
|
branches: [ dev ] # Runs on pushes to dev branch
|
|
|
|
# Concurrency settings to prevent multiple simultaneous workflow runs
|
|
concurrency:
|
|
group: pr-${{ github.ref }}
|
|
cancel-in-progress: true # Cancels previous runs if a new one is triggered
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
pr_checks:
|
|
name: PR Checks
|
|
uses: openMF/mifos-mobile-github-actions/.github/workflows/pr-check.yaml@main
|
|
secrets: inherit
|
|
with:
|
|
android_package_name: 'cmp-android' # <-- Change Your Android Package Name
|
|
desktop_package_name: 'cmp-desktop' # <-- Change Your Desktop Package Name
|
|
web_package_name: 'cmp-web' # <-- Change Your Web Package Name
|
|
ios_package_name: 'cmp-ios' # <-- Change Your iOS Package Name
|
|
build_ios: false # <-- Change to 'false' if you don't want to build iOS
|