From 86678200695fc5df9b4b1848c1e6d9816e8878f5 Mon Sep 17 00:00:00 2001 From: Sk Niyaj Ali Date: Wed, 18 Dec 2024 16:59:38 +0530 Subject: [PATCH] Create pr-check-android.yml --- .github/workflows/pr-check-android.yml | 83 ++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 .github/workflows/pr-check-android.yml diff --git a/.github/workflows/pr-check-android.yml b/.github/workflows/pr-check-android.yml new file mode 100644 index 0000000000..bd8c878249 --- /dev/null +++ b/.github/workflows/pr-check-android.yml @@ -0,0 +1,83 @@ +## 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 +# +### 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 | +# + +# https://github.com/openMF/mifos-mobile-github-actions/blob/main/.github/workflows/pr-check-android.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 + workflow_dispatch: # Allows manual triggering of the workflow + +# 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-android.yaml@main + secrets: inherit + with: + android_package_name: 'mifosng-android' # <-- Change Your Android Package Name