From e2d9825d87e42c3a03c8860a113dac9ea7a8a362 Mon Sep 17 00:00:00 2001 From: Sk Niyaj Ali Date: Sun, 8 Dec 2024 01:52:09 +0530 Subject: [PATCH] Created pr-check.yml --- .github/workflows/pr-check.yml | 88 ++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 .github/workflows/pr-check.yml diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml new file mode 100644 index 000000000..19cc05dac --- /dev/null +++ b/.github/workflows/pr-check.yml @@ -0,0 +1,88 @@ +## 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: # 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-mobile-github-actions/.github/workflows/pr-check.yaml@main + secrets: inherit + with: + android_package_name: 'mifospay-android' + desktop_package_name: 'mifospay-desktop'