Skip to content

Commit

Permalink
Refactor: Migrate CI to Use Github Actions
Browse files Browse the repository at this point in the history
This commit migrates the CI workflows from reusable workflows to local workflows within the repository. This change provides greater control and flexibility in managing the CI process.

The following changes were made:

- Removed the dependency on the `mifos-mobile-github-actions` repository for CI workflows.
- Implemented local workflows for tagging weekly releases, PR checks, and building/publishing multi-platform artifacts.
- Updated the weekly release workflow to trigger the multi-platform build and publish workflow for beta releases.
- Added package name inputs to the PR check workflow for Android, desktop, web, and iOS platforms.
- Removed unused workflows for publishing Android and web apps to Firebase and GitHub Pages, respectively.
  • Loading branch information
niyajali committed Dec 17, 2024
1 parent ed09977 commit 08dfe61
Show file tree
Hide file tree
Showing 6 changed files with 73 additions and 90 deletions.
35 changes: 0 additions & 35 deletions .github/workflows/deploy-android-app-to-firebase.yaml

This file was deleted.

29 changes: 0 additions & 29 deletions .github/workflows/deploy-android-app-to-pages.yaml

This file was deleted.

6 changes: 4 additions & 2 deletions .github/workflows/pr-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,7 @@ jobs:
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'
android_package_name: 'mifospay-android' # <-- Change Your Android Package Name
desktop_package_name: 'mifospay-desktop' # <-- Change Your Desktop Package Name
web_package_name: 'mifospay-web' # <-- Change Your Web Package Name
ios_package_name: 'mifospay-ios' # <-- Change Your iOS Package Name
44 changes: 37 additions & 7 deletions .github/workflows/tag-weekly-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,6 @@
# - Manual workflow dispatch
# - Callable from other workflows


# https://github.com/openMF/mifos-mobile-github-actions/blob/main/.github/workflows/tag-weekly-release.yaml

# ##############################################################################
# DON'T EDIT THIS FILE UNLESS NECESSARY #
# ##############################################################################
Expand All @@ -79,7 +76,40 @@ concurrency:
jobs:
tag:
name: Tag Weekly Release
uses: openMF/mifos-mobile-github-actions/.github/workflows/tag-weekly-release.yaml@main
secrets: inherit
with:
target_branch: 'dev'
runs-on: ubuntu-latest
steps:
# Checkout the repository with full history for proper versioning
- uses: actions/checkout@v4
with:
fetch-depth: 0

# Setup Java environment for Gradle operations
- name: Set up JDK 17
uses: actions/[email protected]
with:
distribution: 'temurin'
java-version: '17'

# Create and push a new version tag using Reckon
# This uses the 'final' stage for production-ready releases
- name: Tag Weekly Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./gradlew :reckonTagPush -Preckon.stage=final

# Trigger the build and publish workflow for beta release
# This starts the process of building and deploying the app to various platforms
- name: Trigger Workflow
uses: actions/github-script@v7
with:
script: |
github.rest.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: 'multi-platform-build-and-publish.yml',
ref: 'dev',
inputs: {
"release_type": "beta",
},
})
20 changes: 10 additions & 10 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ GEM
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.0)
aws-partitions (1.1013.0)
aws-partitions (1.1023.0)
aws-sdk-core (3.214.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
Expand All @@ -19,7 +19,7 @@ GEM
aws-sdk-kms (1.96.0)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.174.0)
aws-sdk-s3 (1.176.1)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
Expand Down Expand Up @@ -68,7 +68,7 @@ GEM
faraday_middleware (1.2.1)
faraday (~> 1.0)
fastimage (2.3.1)
fastlane (2.225.0)
fastlane (2.226.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
Expand Down Expand Up @@ -108,7 +108,7 @@ GEM
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty (~> 0.4.0)
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
fastlane-plugin-firebase_app_distribution (0.9.1)
google-apis-firebaseappdistribution_v1 (~> 0.3.0)
Expand Down Expand Up @@ -158,11 +158,11 @@ GEM
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
highline (2.0.3)
http-cookie (1.0.7)
http-cookie (1.0.8)
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.6.2)
json (2.8.2)
json (2.9.0)
jwt (2.9.3)
base64
mini_magick (4.13.2)
Expand All @@ -182,8 +182,8 @@ GEM
trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0)
retriable (3.1.2)
rexml (3.3.9)
rouge (2.0.7)
rexml (3.4.0)
rouge (3.28.0)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
security (0.1.5)
Expand Down Expand Up @@ -214,8 +214,8 @@ GEM
colored2 (~> 3.1)
nanaimo (~> 0.4.0)
rexml (>= 3.3.6, < 4.0)
xcpretty (0.3.0)
rouge (~> 2.0.7)
xcpretty (0.4.0)
rouge (~> 3.28.0)
xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7)

Expand Down
29 changes: 22 additions & 7 deletions fastlane/FastFile
Original file line number Diff line number Diff line change
Expand Up @@ -53,29 +53,44 @@ platform :ios do
desc "Build iOS application"
lane :build_ios do
build_ios_app(
project: "mifospay-ios/iosApp.xcodeproj/project.pbxproj",
project: "mifospay-ios/iosApp.xcodeproj",
scheme: "iosApp",
# Set configuration to debug for now
configuration: "Debug",
output_directory: "mifospay-ios/",
output_name: "mifospay-ios-app"
output_name: "mifospay-ios-app.ipa",
skip_codesigning: "true",
skip_archive: "true"
)
end

lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "1:728434912738:ios:86a7badfaed88b841a1dbb"
)
increment_build_number(
xcodeproj: "mifospay-ios/iosApp.xcodeproj",
build_number: latest_release[:buildVersion].to_i + 1
)
end

desc "Upload iOS application to Firebase App Distribution"
lane :deploy_on_firebase do
increment_build_number(
xcodeproj: "mifospay-ios/iosApp.xcodeproj/project.pbxproj"
xcodeproj: "mifospay-ios/iosApp.xcodeproj"
)

build_ios_app(
project: "mifospay-ios/iosApp.xcodeproj/project.pbxproj",
# Set configuration to debug for now
project: "mifospay-ios/iosApp.xcodeproj",
scheme: "iosApp",
configuration: "Debug",
skip_codesigning: "true",
skip_archive: "true"
)
release = firebase_app_distribution(
app: "1:728434912738:ios:86a7badfaed88b841a1dbb",
service_credentials_file: "mifospay-android/firebaseAppDistributionServiceCredentialsFile.json",
release_notes_file: "mifospay-android/build/outputs/changelogBeta",
service_credentials_file: "mifospay-ios/firebaseAppDistributionServiceCredentialsFile.json",
release_notes_file: "mifospay-ios/changelogBeta",
groups: "mifos-wallet-testers"
)

Expand Down

0 comments on commit 08dfe61

Please sign in to comment.