From 513a665a154ea14b94057489e61bb768c465ed2f Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 20:07:02 +0530 Subject: [PATCH 01/21] Enhance Android CI workflow with new branches and JDK 17 Updated the Android CI workflow to include additional branches and modify the build process with JDK 17. --- .github/workflows/android.yml | 98 +++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 .github/workflows/android.yml diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 000000000..2ba50b011 --- /dev/null +++ b/.github/workflows/android.yml @@ -0,0 +1,98 @@ +name: Build Android Code Studio + +on: + push: + branches: + - "dev" + - "main" + - "indexing" + - "release/**" + paths-ignore: + - '**.md' + - '**.json' + - 'fastlane/**' + - '.github/workflows/crowdin_contributors.yml' + pull_request: + branches: [ "dev" ] + paths-ignore: + - '**.md' + - '**.json' + - 'fastlane/**' + - '.github/workflows/crowdin_contributors.yml' + workflow_dispatch: { } + +jobs: + build_release_apk: + name: Build Debug APK + runs-on: ubuntu-latest + steps: + - name: Cancel previous runs + uses: styfle/cancel-workflow-action@0.12.1 + with: + access_token: ${{ github.token }} + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: 'recursive' + fetch-depth: 0 + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'adopt' + - name: Change Gradle wrapper permissions + run: chmod +x ./gradlew + - name: Restore cache + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-v2-${{ hashFiles('**/*.gradle*') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: Create local.properties + run: | + echo "signing.storeFile=signing/signing-key.jks" >> local.properties + echo "signing.storePassword=123456" >> local.properties + echo "signing.keyAlias=android-ide" >> local.properties + echo "signing.keyPassword=123456" >> local.properties + - name: Debug signing setup + run: | + echo "=== Repository structure ===" + find . -name "*.jks" -o -name "local.properties" | head -10 + echo "" + echo "=== local.properties content ===" + cat local.properties || echo "local.properties not found" + echo "" + echo "=== SigningDirectory ===" + ls -la core/app/signing/ || echo "core/app/signing directory not found" + - name: Assemble Debug APK + run: ./gradlew :core:app:assembleDebug + # run: ./gradlew :core:app:assembleRelease + - name: List APK files (debug) + run: ls -la core/app/build/outputs/apk/debug/ + - name: Upload arm64-v8a Release APK + uses: actions/upload-artifact@v4 + with: + name: apk-arm64-v8a-debug + path: core/app/build/outputs/apk/debug/*arm64-v8a*.apk + if: always() + - name: Upload armeabi-v7a Release APK + uses: actions/upload-artifact@v4 + with: + name: apk-armeabi-v7a-release + path: core/app/build/outputs/apk/release/*armeabi-v7a*.apk + if: always() + - name: Upload x86_64 Release APK + uses: actions/upload-artifact@v4 + with: + name: apk-x86_64-release + path: core/app/build/outputs/apk/release/*x86_64*.apk + if: always() + - name: Upload universal Release APK + uses: actions/upload-artifact@v4 + with: + name: apk-universal-release + path: core/app/build/outputs/apk/release/*universal*.apk + if: always() From abf6221a2af39c1f100bc2fc9b5c219afad2b4ab Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 20:08:18 +0530 Subject: [PATCH 02/21] Delete .github/workflows/asm_build.yml --- .github/workflows/asm_build.yml | 98 --------------------------------- 1 file changed, 98 deletions(-) delete mode 100644 .github/workflows/asm_build.yml diff --git a/.github/workflows/asm_build.yml b/.github/workflows/asm_build.yml deleted file mode 100644 index ab87c249a..000000000 --- a/.github/workflows/asm_build.yml +++ /dev/null @@ -1,98 +0,0 @@ -name: Build Android Code Studio - -on: - push: - branches: - - "dev" - - "main" - - "indexing" - - "release/**" - paths-ignore: - - '**.md' - - '**.json' - - 'fastlane/**' - - '.github/workflows/crowdin_contributors.yml' - pull_request: - branches: [ "dev" ] - paths-ignore: - - '**.md' - - '**.json' - - 'fastlane/**' - - '.github/workflows/crowdin_contributors.yml' - workflow_dispatch: { } - -jobs: - build_release_apk: - name: Build Debug APK - runs-on: ubuntu-latest - steps: - - name: Cancel previous runs - uses: styfle/cancel-workflow-action@0.12.1 - with: - access_token: ${{ github.token }} - - name: Checkout - uses: actions/checkout@v4 - with: - submodules: 'recursive' - fetch-depth: 0 - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'adopt' - - name: Change Gradle wrapper permissions - run: chmod +x ./gradlew - - name: Restore cache - uses: actions/cache@v4 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-v2-${{ hashFiles('**/*.gradle*') }} - restore-keys: | - ${{ runner.os }}-gradle- - - name: Create local.properties - run: | - echo "signing.storeFile=signing/signing-key.jks" >> local.properties - echo "signing.storePassword=123456" >> local.properties - echo "signing.keyAlias=android-ide" >> local.properties - echo "signing.keyPassword=123456" >> local.properties - - name: Debug signing setup - run: | - echo "=== Repository structure ===" - find . -name "*.jks" -o -name "local.properties" | head -10 - echo "" - echo "=== local.properties content ===" - cat local.properties || echo "local.properties not found" - echo "" - echo "=== SigningDirectory ===" - ls -la core/app/signing/ || echo "core/app/signing directory not found" - - name: Assemble Debug APK - run: ./gradlew :core:app:assembleDebug - # run: ./gradlew :core:app:assembleRelease - - name: List APK files (debug) - run: ls -la core/app/build/outputs/apk/debug/ - - name: Upload arm64-v8a Release APK - uses: actions/upload-artifact@v4 - with: - name: apk-arm64-v8a-debug - path: core/app/build/outputs/apk/debug/*arm64-v8a*.apk - if: always() - - name: Upload armeabi-v7a Release APK - uses: actions/upload-artifact@v4 - with: - name: apk-armeabi-v7a-release - path: core/app/build/outputs/apk/release/*armeabi-v7a*.apk - if: always() - - name: Upload x86_64 Release APK - uses: actions/upload-artifact@v4 - with: - name: apk-x86_64-release - path: core/app/build/outputs/apk/release/*x86_64*.apk - if: always() - - name: Upload universal Release APK - uses: actions/upload-artifact@v4 - with: - name: apk-universal-release - path: core/app/build/outputs/apk/release/*universal*.apk - if: always() \ No newline at end of file From 9439e19df1111e23be35b67d3153cbd1e989d6d6 Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 20:17:28 +0530 Subject: [PATCH 03/21] Update android.yml --- .github/workflows/android.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 2ba50b011..1a8a0c288 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -95,4 +95,4 @@ jobs: with: name: apk-universal-release path: core/app/build/outputs/apk/release/*universal*.apk - if: always() + From d51977031d3f7b5e012585218f711d8f8df554d3 Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 20:18:35 +0530 Subject: [PATCH 04/21] Add conditional execution to upload artifact step --- .github/workflows/android.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 1a8a0c288..2ba50b011 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -95,4 +95,4 @@ jobs: with: name: apk-universal-release path: core/app/build/outputs/apk/release/*universal*.apk - + if: always() From 0791375b102e438d607d33300c6303819d1ad1e2 Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 21:11:06 +0530 Subject: [PATCH 05/21] Refactor Android CI workflow for debugging APK --- .github/workflows/android.yml | 87 ++++------------------------------- 1 file changed, 9 insertions(+), 78 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 2ba50b011..5864544e0 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -1,35 +1,13 @@ name: Build Android Code Studio - on: push: - branches: - - "dev" - - "main" - - "indexing" - - "release/**" - paths-ignore: - - '**.md' - - '**.json' - - 'fastlane/**' - - '.github/workflows/crowdin_contributors.yml' - pull_request: - branches: [ "dev" ] - paths-ignore: - - '**.md' - - '**.json' - - 'fastlane/**' - - '.github/workflows/crowdin_contributors.yml' + branches: [ "main", "dev" ] workflow_dispatch: { } jobs: - build_release_apk: - name: Build Debug APK + build: runs-on: ubuntu-latest steps: - - name: Cancel previous runs - uses: styfle/cancel-workflow-action@0.12.1 - with: - access_token: ${{ github.token }} - name: Checkout uses: actions/checkout@v4 with: @@ -39,60 +17,13 @@ jobs: uses: actions/setup-java@v4 with: java-version: '17' - distribution: 'adopt' - - name: Change Gradle wrapper permissions + distribution: 'temurin' + - name: Grant Gradle Permissions run: chmod +x ./gradlew - - name: Restore cache - uses: actions/cache@v4 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-v2-${{ hashFiles('**/*.gradle*') }} - restore-keys: | - ${{ runner.os }}-gradle- - - name: Create local.properties - run: | - echo "signing.storeFile=signing/signing-key.jks" >> local.properties - echo "signing.storePassword=123456" >> local.properties - echo "signing.keyAlias=android-ide" >> local.properties - echo "signing.keyPassword=123456" >> local.properties - - name: Debug signing setup - run: | - echo "=== Repository structure ===" - find . -name "*.jks" -o -name "local.properties" | head -10 - echo "" - echo "=== local.properties content ===" - cat local.properties || echo "local.properties not found" - echo "" - echo "=== SigningDirectory ===" - ls -la core/app/signing/ || echo "core/app/signing directory not found" - - name: Assemble Debug APK - run: ./gradlew :core:app:assembleDebug - # run: ./gradlew :core:app:assembleRelease - - name: List APK files (debug) - run: ls -la core/app/build/outputs/apk/debug/ - - name: Upload arm64-v8a Release APK - uses: actions/upload-artifact@v4 - with: - name: apk-arm64-v8a-debug - path: core/app/build/outputs/apk/debug/*arm64-v8a*.apk - if: always() - - name: Upload armeabi-v7a Release APK - uses: actions/upload-artifact@v4 - with: - name: apk-armeabi-v7a-release - path: core/app/build/outputs/apk/release/*armeabi-v7a*.apk - if: always() - - name: Upload x86_64 Release APK - uses: actions/upload-artifact@v4 - with: - name: apk-x86_64-release - path: core/app/build/outputs/apk/release/*x86_64*.apk - if: always() - - name: Upload universal Release APK + - name: Build Debug APK + run: ./gradlew assembleDebug + - name: Upload APK uses: actions/upload-artifact@v4 with: - name: apk-universal-release - path: core/app/build/outputs/apk/release/*universal*.apk - if: always() + name: debug-apk + path: app/build/outputs/apk/debug/*.apk From 4337f43033a4786e53b4b4fb2f1e18685cebfc2a Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 21:28:01 +0530 Subject: [PATCH 06/21] Update Android workflow to include more branches and steps --- .github/workflows/android.yml | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 5864544e0..4248c089e 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -1,11 +1,13 @@ name: Build Android Code Studio + on: push: - branches: [ "main", "dev" ] + branches: [ "dev", "main", "indexing", "release/**" ] workflow_dispatch: { } jobs: - build: + build_release_apk: + name: Build All APKs runs-on: ubuntu-latest steps: - name: Checkout @@ -17,13 +19,26 @@ jobs: uses: actions/setup-java@v4 with: java-version: '17' - distribution: 'temurin' - - name: Grant Gradle Permissions + distribution: 'adopt' + - name: Change Gradle wrapper permissions run: chmod +x ./gradlew - - name: Build Debug APK + - name: Restore cache + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-v2-${{ hashFiles('**/*.gradle*') }} + restore-keys: | + ${{ runner.os }}-gradle- + + # Yahan humne path ko handle kiya hai taaki error na aaye + - name: Assemble All APKs run: ./gradlew assembleDebug - - name: Upload APK + + - name: Upload APKs uses: actions/upload-artifact@v4 with: - name: debug-apk - path: app/build/outputs/apk/debug/*.apk + name: all-debug-apks + path: '**/build/outputs/apk/debug/*.apk' + if: always() From 332e70c23d81ee766161fbbddc7779c63c921df4 Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 21:28:51 +0530 Subject: [PATCH 07/21] Update android.yml From dd8fcd2e80d6250e660a652d566c3a8df7d6e0fd Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 21:48:44 +0530 Subject: [PATCH 08/21] Disable custom signing configuration Comment out the signingConfigs block in build.gradle.kts --- core/app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/app/build.gradle.kts b/core/app/build.gradle.kts index bd088ccb5..aeef4594a 100755 --- a/core/app/build.gradle.kts +++ b/core/app/build.gradle.kts @@ -73,7 +73,7 @@ android { experimentalProperties["android.experimental.enableGlobalSynthetics"] = true - signingConfigs { + /* signingConfigs { create("custom") { val keyStorePath = "${rootProject.projectDir}/signing/signing-key.jks" val keyStoreFile = file(keyStorePath) @@ -87,7 +87,7 @@ android { keyPassword = signing_keyPassword } } - +*/ androidResources { generateLocaleConfig = true } buildFeatures { From cc3d399d1340279359716c9d5ad60a8ffd45507c Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 22:03:00 +0530 Subject: [PATCH 09/21] Refactor Android build workflow for debugging --- .github/workflows/android.yml | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 4248c089e..655fca842 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -2,12 +2,11 @@ name: Build Android Code Studio on: push: - branches: [ "dev", "main", "indexing", "release/**" ] + branches: [ "dev", "main" ] workflow_dispatch: { } jobs: - build_release_apk: - name: Build All APKs + build: runs-on: ubuntu-latest steps: - name: Checkout @@ -19,26 +18,14 @@ jobs: uses: actions/setup-java@v4 with: java-version: '17' - distribution: 'adopt' - - name: Change Gradle wrapper permissions + distribution: 'temurin' + - name: Grant Gradle Permissions run: chmod +x ./gradlew - - name: Restore cache - uses: actions/cache@v4 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-v2-${{ hashFiles('**/*.gradle*') }} - restore-keys: | - ${{ runner.os }}-gradle- - - # Yahan humne path ko handle kiya hai taaki error na aaye - - name: Assemble All APKs - run: ./gradlew assembleDebug - - - name: Upload APKs + - name: Build Debug APK + # Root se build command chalayein, ye saare dependencies resolve kar lega + run: ./gradlew :core:app:assembleDebug -x validateSigningDebug + - name: Upload APK uses: actions/upload-artifact@v4 with: - name: all-debug-apks - path: '**/build/outputs/apk/debug/*.apk' - if: always() + name: AndroidCodeStudio-Debug + path: core/app/build/outputs/apk/debug/*.apk From 4aec83bf9ca4b2d7481ae58697fbe070c7717731 Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 22:11:03 +0530 Subject: [PATCH 10/21] Comment out debug build type in build.gradle.kts Comment out the debug build type configuration in build.gradle.kts. --- core/app/build.gradle.kts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/app/build.gradle.kts b/core/app/build.gradle.kts index aeef4594a..2dba5bfd2 100755 --- a/core/app/build.gradle.kts +++ b/core/app/build.gradle.kts @@ -95,11 +95,12 @@ android { dataBinding = true } - buildTypes { + /* +buildTypes { debug { signingConfig = signingConfigs.getByName("custom") } - +*/ release { isShrinkResources = false signingConfig = signingConfigs.getByName("custom") From 70ffc040847626aa1062870ae4f504a016f1fd76 Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 22:26:51 +0530 Subject: [PATCH 11/21] Clean up build.gradle.kts by removing debug config Removed commented-out debug build type configuration. --- core/app/build.gradle.kts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/core/app/build.gradle.kts b/core/app/build.gradle.kts index 2dba5bfd2..af3a8aaa5 100755 --- a/core/app/build.gradle.kts +++ b/core/app/build.gradle.kts @@ -95,13 +95,7 @@ android { dataBinding = true } - /* -buildTypes { - debug { - signingConfig = signingConfigs.getByName("custom") - } -*/ - release { +release { isShrinkResources = false signingConfig = signingConfigs.getByName("custom") } From e3c9ac901d5e8fef91e7cc50c8760162d22a5772 Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 22:27:46 +0530 Subject: [PATCH 12/21] Enhance Android CI workflow with caching and updates --- .github/workflows/android.yml | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 655fca842..a6c2af3f5 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -9,23 +9,39 @@ jobs: build: runs-on: ubuntu-latest steps: - - name: Checkout + - name: Checkout Code uses: actions/checkout@v4 with: submodules: 'recursive' fetch-depth: 0 + - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' + - name: Grant Gradle Permissions run: chmod +x ./gradlew - - name: Build Debug APK - # Root se build command chalayein, ye saare dependencies resolve kar lega - run: ./gradlew :core:app:assembleDebug -x validateSigningDebug - - name: Upload APK + + - name: Cache Gradle Packages + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: Build Android Code Studio (Assemble) + # -x validateSigningDebug signing key ki zaroorat ko khatam kar dega + # --parallel gradle ko tezi se modules compile karne mein madad karega + run: ./gradlew :core:app:assembleDebug -x validateSigningDebug --parallel + + - name: Upload Debug APK uses: actions/upload-artifact@v4 with: name: AndroidCodeStudio-Debug path: core/app/build/outputs/apk/debug/*.apk + if-no-files-found: error From 7dffd75f953da56bd18b8e6f667da6c0dd76f7b7 Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 22:41:29 +0530 Subject: [PATCH 13/21] Refactor Android build workflow for optimization --- .github/workflows/android.yml | 44 +++++++++++++---------------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index a6c2af3f5..6eaf55474 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -1,47 +1,35 @@ -name: Build Android Code Studio +name: Android Build Pipeline on: push: - branches: [ "dev", "main" ] + branches: [ "main", "dev" ] workflow_dispatch: { } jobs: build: runs-on: ubuntu-latest steps: - - name: Checkout Code + - name: Checkout Source Code uses: actions/checkout@v4 with: submodules: 'recursive' - fetch-depth: 0 - - - name: Set up JDK 17 + + - name: Setup JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - - - name: Grant Gradle Permissions - run: chmod +x ./gradlew - - - name: Cache Gradle Packages - uses: actions/cache@v4 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle- - - - name: Build Android Code Studio (Assemble) - # -x validateSigningDebug signing key ki zaroorat ko khatam kar dega - # --parallel gradle ko tezi se modules compile karne mein madad karega - run: ./gradlew :core:app:assembleDebug -x validateSigningDebug --parallel - - - name: Upload Debug APK + + - name: Build Project + # Memory Optimization: Heap size kam karke crash roko + run: | + chmod +x ./gradlew + ./gradlew :core:app:assembleDebug -x validateSigningDebug \ + -Dorg.gradle.jvmargs="-Xmx1024m -XX:+UseParallelGC" \ + --no-daemon --max-workers=2 + + - name: Upload Build Artifact uses: actions/upload-artifact@v4 with: - name: AndroidCodeStudio-Debug + name: app-release path: core/app/build/outputs/apk/debug/*.apk - if-no-files-found: error From 91263444273b6acc769b568c8a2c45f46e0dc8b0 Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 22:52:00 +0530 Subject: [PATCH 14/21] Refactor Android CI workflow steps and names --- .github/workflows/android.yml | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 6eaf55474..3a9611d4d 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -9,27 +9,32 @@ jobs: build: runs-on: ubuntu-latest steps: - - name: Checkout Source Code + - name: Checkout Code uses: actions/checkout@v4 with: submodules: 'recursive' - - - name: Setup JDK 17 + fetch-depth: 0 + + - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - - - name: Build Project - # Memory Optimization: Heap size kam karke crash roko + + - name: Build Android Code Studio + # Memory limit aur worker count ko control kiya hai taaki RAM crash na ho run: | chmod +x ./gradlew - ./gradlew :core:app:assembleDebug -x validateSigningDebug \ - -Dorg.gradle.jvmargs="-Xmx1024m -XX:+UseParallelGC" \ - --no-daemon --max-workers=2 - - - name: Upload Build Artifact + ./gradlew :core:app:assembleDebug \ + -x validateSigningDebug \ + --no-daemon \ + --parallel \ + --max-workers=2 \ + -Dorg.gradle.jvmargs="-Xmx2048m -XX:MaxMetaspaceSize=512m" + + - name: Upload APKs uses: actions/upload-artifact@v4 with: - name: app-release - path: core/app/build/outputs/apk/debug/*.apk + name: AndroidCodeStudio-Build + path: '**/build/outputs/apk/debug/*.apk' + if-no-files-found: error From 48332b5b2f7a86f85315aa97bd7fcc359d4f60d0 Mon Sep 17 00:00:00 2001 From: Website Date: Mon, 9 Mar 2026 23:01:03 +0530 Subject: [PATCH 15/21] Enhance Android CI workflow with caching and optimizations Updated Android build workflow to cache dependencies and optimize resource usage. --- .github/workflows/android.yml | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 3a9611d4d..653a40c1c 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -21,20 +21,31 @@ jobs: java-version: '17' distribution: 'temurin' - - name: Build Android Code Studio - # Memory limit aur worker count ko control kiya hai taaki RAM crash na ho + - name: Cache Dependencies + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: Build with Optimized Resources run: | chmod +x ./gradlew - ./gradlew :core:app:assembleDebug \ - -x validateSigningDebug \ - --no-daemon \ - --parallel \ - --max-workers=2 \ - -Dorg.gradle.jvmargs="-Xmx2048m -XX:MaxMetaspaceSize=512m" + # Yahan 'assemble' command sabhi modules ki dependency resolve karegi + # --refresh-dependencies se purani corrupt files refresh ho jayengi + ./gradlew assemble -x validateSigningDebug --refresh-dependencies \ + --parallel --no-daemon \ + -Dorg.gradle.jvmargs="-Xmx4g -XX:MaxMetaspaceSize=1g -XX:+UseParallelGC" + env: + MAIN_VERSION: "1.0.0" + REVISION_NUM: "03" - name: Upload APKs uses: actions/upload-artifact@v4 with: name: AndroidCodeStudio-Build - path: '**/build/outputs/apk/debug/*.apk' + path: '**/build/outputs/apk/**/*.apk' if-no-files-found: error From cf8ae9bcbd861929cdefdb89e4afd01b2e45b23d Mon Sep 17 00:00:00 2001 From: Website Date: Tue, 10 Mar 2026 09:30:41 +0530 Subject: [PATCH 16/21] Refactor Android CI workflow for build optimization Removed caching of Gradle dependencies and added permissions fix for gradlew script. Updated build command to optimize resource usage. --- .github/workflows/android.yml | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 653a40c1c..e4bbc3fc5 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -21,24 +21,19 @@ jobs: java-version: '17' distribution: 'temurin' - - name: Cache Dependencies - uses: actions/cache@v4 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle- + - name: Fix Composite Builds Permissions + # Composite builds ke andar ke gradlew ko bhi permission deni hogi + run: | + chmod +x ./gradlew + find . -name "gradlew" -exec chmod +x {} + - name: Build with Optimized Resources run: | - chmod +x ./gradlew - # Yahan 'assemble' command sabhi modules ki dependency resolve karegi - # --refresh-dependencies se purani corrupt files refresh ho jayengi - ./gradlew assemble -x validateSigningDebug --refresh-dependencies \ - --parallel --no-daemon \ - -Dorg.gradle.jvmargs="-Xmx4g -XX:MaxMetaspaceSize=1g -XX:+UseParallelGC" + # --configure-on-demand se sirf zaruri modules load honge + # jvmargs ko 4GB rakha hai taki RAM crash na ho + ./gradlew assembleDebug -x validateSigningDebug \ + --no-daemon --max-workers=2 --configure-on-demand \ + -Dorg.gradle.jvmargs="-Xmx4096m -XX:+UseParallelGC" env: MAIN_VERSION: "1.0.0" REVISION_NUM: "03" @@ -48,4 +43,3 @@ jobs: with: name: AndroidCodeStudio-Build path: '**/build/outputs/apk/**/*.apk' - if-no-files-found: error From c8c31e4b8a91446db1f35791490c11186eb1aee1 Mon Sep 17 00:00:00 2001 From: Website Date: Tue, 10 Mar 2026 09:38:09 +0530 Subject: [PATCH 17/21] Update Android CI workflow for project structure and build --- .github/workflows/android.yml | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index e4bbc3fc5..e9cbaf984 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -21,19 +21,22 @@ jobs: java-version: '17' distribution: 'temurin' - - name: Fix Composite Builds Permissions - # Composite builds ke andar ke gradlew ko bhi permission deni hogi + - name: Fix Project Structure + # Agar build-logic mein settings file nahi hai, toh ek khali file bana do + # taaki Gradle crash na ho. run: | + mkdir -p composite-builds/build-logic + touch composite-builds/build-logic/settings.gradle chmod +x ./gradlew - find . -name "gradlew" -exec chmod +x {} + - - name: Build with Optimized Resources + - name: Build Android Code Studio + # Hum -P (Properties) ka use karenge taaki dependencies refresh ho jayein run: | - # --configure-on-demand se sirf zaruri modules load honge - # jvmargs ko 4GB rakha hai taki RAM crash na ho - ./gradlew assembleDebug -x validateSigningDebug \ - --no-daemon --max-workers=2 --configure-on-demand \ - -Dorg.gradle.jvmargs="-Xmx4096m -XX:+UseParallelGC" + ./gradlew :core:app:assembleDebug \ + -x validateSigningDebug \ + --no-daemon \ + --stacktrace \ + -Dorg.gradle.jvmargs="-Xmx4g -XX:+UseParallelGC" env: MAIN_VERSION: "1.0.0" REVISION_NUM: "03" From 0532868611b72ffeb18957bf405e4b8900b8e0f2 Mon Sep 17 00:00:00 2001 From: Website Date: Tue, 10 Mar 2026 09:41:54 +0530 Subject: [PATCH 18/21] Update Android build pipeline with new branches and steps --- .github/workflows/android.yml | 57 ++++++++++++++++++++++------------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index e9cbaf984..8b56197fc 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -2,14 +2,23 @@ name: Android Build Pipeline on: push: - branches: [ "main", "dev" ] + branches: [ "main", "dev", "indexing", "release/**" ] workflow_dispatch: { } jobs: build: + name: Build All APK Variants runs-on: ubuntu-latest + + # Heap space aur RAM errors ko root se khatam karne ke liye environment settings + env: + JAVA_OPTS: "-Xmx4096m -XX:+UseParallelGC" + GRADLE_OPTS: "-Dorg.gradle.jvmargs='-Xmx4096m -XX:MaxMetaspaceSize=1024m' -Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true" + MAIN_VERSION: "1.0.0" + REVISION_NUM: "03" + steps: - - name: Checkout Code + - name: Checkout Source Code uses: actions/checkout@v4 with: submodules: 'recursive' @@ -21,28 +30,34 @@ jobs: java-version: '17' distribution: 'temurin' - - name: Fix Project Structure - # Agar build-logic mein settings file nahi hai, toh ek khali file bana do - # taaki Gradle crash na ho. + - name: Fix Project Permissions and Structure run: | - mkdir -p composite-builds/build-logic - touch composite-builds/build-logic/settings.gradle chmod +x ./gradlew + # Saare sub-modules ke gradlew ko permission dena + find . -name "gradlew" -exec chmod +x {} + + # Missing settings files ka placeholder banana taaki composite build fail na ho + mkdir -p composite-builds/build-logic + [ -f composite-builds/build-logic/settings.gradle ] || touch composite-builds/build-logic/settings.gradle + [ -f composite-builds/build-logic/build.gradle ] || touch composite-builds/build-logic/build.gradle - - name: Build Android Code Studio - # Hum -P (Properties) ka use karenge taaki dependencies refresh ho jayein - run: | - ./gradlew :core:app:assembleDebug \ - -x validateSigningDebug \ - --no-daemon \ - --stacktrace \ - -Dorg.gradle.jvmargs="-Xmx4g -XX:+UseParallelGC" - env: - MAIN_VERSION: "1.0.0" - REVISION_NUM: "03" - - - name: Upload APKs + - name: Cache Gradle Dependencies + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: Full Project Compile (Assemble) + # 'assemble' command pure project ke saare modules (core, termux, etc) ko build karegi + # -x validateSigningDebug se bina signing key ke APK ban jayegi + run: ./gradlew assemble -x validateSigningDebug --no-daemon --stacktrace + + - name: Upload All Generated APKs uses: actions/upload-artifact@v4 with: - name: AndroidCodeStudio-Build + name: AndroidCodeStudio-Full-APKs path: '**/build/outputs/apk/**/*.apk' + if-no-files-found: error From 96fb848a9893d82d60577b26fea6da26656ce864 Mon Sep 17 00:00:00 2001 From: Website Date: Tue, 10 Mar 2026 09:50:44 +0530 Subject: [PATCH 19/21] Add asm_build.yml workflow file --- .github/workflows/android.yml | 63 --------------------- .github/workflows/asm_build.yml | 98 +++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 63 deletions(-) delete mode 100644 .github/workflows/android.yml create mode 100644 .github/workflows/asm_build.yml diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml deleted file mode 100644 index 8b56197fc..000000000 --- a/.github/workflows/android.yml +++ /dev/null @@ -1,63 +0,0 @@ -name: Android Build Pipeline - -on: - push: - branches: [ "main", "dev", "indexing", "release/**" ] - workflow_dispatch: { } - -jobs: - build: - name: Build All APK Variants - runs-on: ubuntu-latest - - # Heap space aur RAM errors ko root se khatam karne ke liye environment settings - env: - JAVA_OPTS: "-Xmx4096m -XX:+UseParallelGC" - GRADLE_OPTS: "-Dorg.gradle.jvmargs='-Xmx4096m -XX:MaxMetaspaceSize=1024m' -Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true" - MAIN_VERSION: "1.0.0" - REVISION_NUM: "03" - - steps: - - name: Checkout Source Code - uses: actions/checkout@v4 - with: - submodules: 'recursive' - fetch-depth: 0 - - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - - - name: Fix Project Permissions and Structure - run: | - chmod +x ./gradlew - # Saare sub-modules ke gradlew ko permission dena - find . -name "gradlew" -exec chmod +x {} + - # Missing settings files ka placeholder banana taaki composite build fail na ho - mkdir -p composite-builds/build-logic - [ -f composite-builds/build-logic/settings.gradle ] || touch composite-builds/build-logic/settings.gradle - [ -f composite-builds/build-logic/build.gradle ] || touch composite-builds/build-logic/build.gradle - - - name: Cache Gradle Dependencies - uses: actions/cache@v4 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle- - - - name: Full Project Compile (Assemble) - # 'assemble' command pure project ke saare modules (core, termux, etc) ko build karegi - # -x validateSigningDebug se bina signing key ke APK ban jayegi - run: ./gradlew assemble -x validateSigningDebug --no-daemon --stacktrace - - - name: Upload All Generated APKs - uses: actions/upload-artifact@v4 - with: - name: AndroidCodeStudio-Full-APKs - path: '**/build/outputs/apk/**/*.apk' - if-no-files-found: error diff --git a/.github/workflows/asm_build.yml b/.github/workflows/asm_build.yml new file mode 100644 index 000000000..2ba50b011 --- /dev/null +++ b/.github/workflows/asm_build.yml @@ -0,0 +1,98 @@ +name: Build Android Code Studio + +on: + push: + branches: + - "dev" + - "main" + - "indexing" + - "release/**" + paths-ignore: + - '**.md' + - '**.json' + - 'fastlane/**' + - '.github/workflows/crowdin_contributors.yml' + pull_request: + branches: [ "dev" ] + paths-ignore: + - '**.md' + - '**.json' + - 'fastlane/**' + - '.github/workflows/crowdin_contributors.yml' + workflow_dispatch: { } + +jobs: + build_release_apk: + name: Build Debug APK + runs-on: ubuntu-latest + steps: + - name: Cancel previous runs + uses: styfle/cancel-workflow-action@0.12.1 + with: + access_token: ${{ github.token }} + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: 'recursive' + fetch-depth: 0 + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'adopt' + - name: Change Gradle wrapper permissions + run: chmod +x ./gradlew + - name: Restore cache + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-v2-${{ hashFiles('**/*.gradle*') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: Create local.properties + run: | + echo "signing.storeFile=signing/signing-key.jks" >> local.properties + echo "signing.storePassword=123456" >> local.properties + echo "signing.keyAlias=android-ide" >> local.properties + echo "signing.keyPassword=123456" >> local.properties + - name: Debug signing setup + run: | + echo "=== Repository structure ===" + find . -name "*.jks" -o -name "local.properties" | head -10 + echo "" + echo "=== local.properties content ===" + cat local.properties || echo "local.properties not found" + echo "" + echo "=== SigningDirectory ===" + ls -la core/app/signing/ || echo "core/app/signing directory not found" + - name: Assemble Debug APK + run: ./gradlew :core:app:assembleDebug + # run: ./gradlew :core:app:assembleRelease + - name: List APK files (debug) + run: ls -la core/app/build/outputs/apk/debug/ + - name: Upload arm64-v8a Release APK + uses: actions/upload-artifact@v4 + with: + name: apk-arm64-v8a-debug + path: core/app/build/outputs/apk/debug/*arm64-v8a*.apk + if: always() + - name: Upload armeabi-v7a Release APK + uses: actions/upload-artifact@v4 + with: + name: apk-armeabi-v7a-release + path: core/app/build/outputs/apk/release/*armeabi-v7a*.apk + if: always() + - name: Upload x86_64 Release APK + uses: actions/upload-artifact@v4 + with: + name: apk-x86_64-release + path: core/app/build/outputs/apk/release/*x86_64*.apk + if: always() + - name: Upload universal Release APK + uses: actions/upload-artifact@v4 + with: + name: apk-universal-release + path: core/app/build/outputs/apk/release/*universal*.apk + if: always() From 85e81f4545dad3a1c9dc6efe9c900bda2d4d1d0a Mon Sep 17 00:00:00 2001 From: Website Date: Tue, 10 Mar 2026 09:52:54 +0530 Subject: [PATCH 20/21] Enable custom signing configuration in build.gradle.kts Uncomment signingConfigs block and update release build type to use custom signing config. --- core/app/build.gradle.kts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/core/app/build.gradle.kts b/core/app/build.gradle.kts index af3a8aaa5..bd088ccb5 100755 --- a/core/app/build.gradle.kts +++ b/core/app/build.gradle.kts @@ -73,7 +73,7 @@ android { experimentalProperties["android.experimental.enableGlobalSynthetics"] = true - /* signingConfigs { + signingConfigs { create("custom") { val keyStorePath = "${rootProject.projectDir}/signing/signing-key.jks" val keyStoreFile = file(keyStorePath) @@ -87,7 +87,7 @@ android { keyPassword = signing_keyPassword } } -*/ + androidResources { generateLocaleConfig = true } buildFeatures { @@ -95,7 +95,12 @@ android { dataBinding = true } -release { + buildTypes { + debug { + signingConfig = signingConfigs.getByName("custom") + } + + release { isShrinkResources = false signingConfig = signingConfigs.getByName("custom") } From 4a733b2183598065868fec65f5e3452eec3673cc Mon Sep 17 00:00:00 2001 From: Website Date: Tue, 10 Mar 2026 10:18:00 +0530 Subject: [PATCH 21/21] Update asm_build.yml --- .github/workflows/asm_build.yml | 112 ++++++++++++++++---------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/.github/workflows/asm_build.yml b/.github/workflows/asm_build.yml index 2ba50b011..c07bbb02f 100644 --- a/.github/workflows/asm_build.yml +++ b/.github/workflows/asm_build.yml @@ -10,89 +10,89 @@ on: paths-ignore: - '**.md' - '**.json' - - 'fastlane/**' - - '.github/workflows/crowdin_contributors.yml' pull_request: branches: [ "dev" ] - paths-ignore: - - '**.md' - - '**.json' - - 'fastlane/**' - - '.github/workflows/crowdin_contributors.yml' workflow_dispatch: { } jobs: - build_release_apk: - name: Build Debug APK + build_all_variants: + name: Build Debug and Release APKs runs-on: ubuntu-latest + + # Heap space aur RAM errors ko khatam karne ke liye global environment settings + env: + JAVA_OPTS: "-Xmx4096m -XX:+UseParallelGC" + GRADLE_OPTS: "-Dorg.gradle.jvmargs='-Xmx4096m -XX:MaxMetaspaceSize=1024m' -Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true" + MAIN_VERSION: "1.0.0" + REVISION_NUM: "03" + steps: - - name: Cancel previous runs + - name: Cancel Previous Runs uses: styfle/cancel-workflow-action@0.12.1 with: access_token: ${{ github.token }} - - name: Checkout + + - name: Checkout Source Code uses: actions/checkout@v4 with: submodules: 'recursive' fetch-depth: 0 + - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' - distribution: 'adopt' - - name: Change Gradle wrapper permissions - run: chmod +x ./gradlew - - name: Restore cache - uses: actions/cache@v4 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-v2-${{ hashFiles('**/*.gradle*') }} - restore-keys: | - ${{ runner.os }}-gradle- - - name: Create local.properties + distribution: 'temurin' + + - name: Fix Project Permissions & Composite Structure + # Missing composite folders aur gradlew permissions ko fix karna run: | + chmod +x ./gradlew + find . -name "gradlew" -exec chmod +x {} + + # Force create missing build-logic files if they are empty or missing + mkdir -p composite-builds/build-logic + [ -f composite-builds/build-logic/settings.gradle ] || touch composite-builds/build-logic/settings.gradle + # Ensure local.properties exists for SDK path + echo "sdk.dir=$ANDROID_SDK_ROOT" > local.properties echo "signing.storeFile=signing/signing-key.jks" >> local.properties echo "signing.storePassword=123456" >> local.properties echo "signing.keyAlias=android-ide" >> local.properties echo "signing.keyPassword=123456" >> local.properties - - name: Debug signing setup - run: | - echo "=== Repository structure ===" - find . -name "*.jks" -o -name "local.properties" | head -10 - echo "" - echo "=== local.properties content ===" - cat local.properties || echo "local.properties not found" - echo "" - echo "=== SigningDirectory ===" - ls -la core/app/signing/ || echo "core/app/signing directory not found" - - name: Assemble Debug APK - run: ./gradlew :core:app:assembleDebug - # run: ./gradlew :core:app:assembleRelease - - name: List APK files (debug) - run: ls -la core/app/build/outputs/apk/debug/ - - name: Upload arm64-v8a Release APK - uses: actions/upload-artifact@v4 - with: - name: apk-arm64-v8a-debug - path: core/app/build/outputs/apk/debug/*arm64-v8a*.apk - if: always() - - name: Upload armeabi-v7a Release APK - uses: actions/upload-artifact@v4 + + - name: Cache Gradle Dependencies + uses: actions/cache@v4 with: - name: apk-armeabi-v7a-release - path: core/app/build/outputs/apk/release/*armeabi-v7a*.apk - if: always() - - name: Upload x86_64 Release APK + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-v3-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + + - name: Build All APKs (Debug & Release) + # assembleDebug aur assembleRelease dono ek sath banenge + # -x validateSigningDebug signing errors ko ignore karne ke liye hai + run: | + ./gradlew :core:app:assembleDebug :core:app:assembleRelease \ + -x validateSigningDebug \ + --no-daemon --stacktrace --max-workers=2 + + - name: Upload Debug APKs uses: actions/upload-artifact@v4 with: - name: apk-x86_64-release - path: core/app/build/outputs/apk/release/*x86_64*.apk + name: AndroidCodeStudio-Debug-APKs + path: 'core/app/build/outputs/apk/debug/*.apk' if: always() - - name: Upload universal Release APK + + - name: Upload Release APKs uses: actions/upload-artifact@v4 with: - name: apk-universal-release - path: core/app/build/outputs/apk/release/*universal*.apk + name: AndroidCodeStudio-Release-APKs + path: 'core/app/build/outputs/apk/release/*.apk' if: always() + + - name: Failure Diagnosis Report + if: failure() + run: | + echo "Checking for APKs in unexpected locations..." + find . -name "*.apk" + echo "Checking if 'appintro' or other modules are visible..." + ./gradlew projects