## 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-x-actionhub/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: # Runs on all pull requests # 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-x-actionhub/.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: true use_cocoapods: true shared_module: ':cmp-shared' java-version: '21'