@@ -2,14 +2,23 @@ name: Android Build Pipeline
22
33on :
44 push :
5- branches : [ "main", "dev" ]
5+ branches : [ "main", "dev", "indexing", "release/**" ]
66 workflow_dispatch : { }
77
88jobs :
99 build :
10+ name : Build All APK Variants
1011 runs-on : ubuntu-latest
12+
13+ # Heap space aur RAM errors ko root se khatam karne ke liye environment settings
14+ env :
15+ JAVA_OPTS : " -Xmx4096m -XX:+UseParallelGC"
16+ GRADLE_OPTS : " -Dorg.gradle.jvmargs='-Xmx4096m -XX:MaxMetaspaceSize=1024m' -Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true"
17+ MAIN_VERSION : " 1.0.0"
18+ REVISION_NUM : " 03"
19+
1120 steps :
12- - name : Checkout Code
21+ - name : Checkout Source Code
1322 uses : actions/checkout@v4
1423 with :
1524 submodules : ' recursive'
@@ -21,28 +30,34 @@ jobs:
2130 java-version : ' 17'
2231 distribution : ' temurin'
2332
24- - name : Fix Project Structure
25- # Agar build-logic mein settings file nahi hai, toh ek khali file bana do
26- # taaki Gradle crash na ho.
33+ - name : Fix Project Permissions and Structure
2734 run : |
28- mkdir -p composite-builds/build-logic
29- touch composite-builds/build-logic/settings.gradle
3035 chmod +x ./gradlew
36+ # Saare sub-modules ke gradlew ko permission dena
37+ find . -name "gradlew" -exec chmod +x {} +
38+ # Missing settings files ka placeholder banana taaki composite build fail na ho
39+ mkdir -p composite-builds/build-logic
40+ [ -f composite-builds/build-logic/settings.gradle ] || touch composite-builds/build-logic/settings.gradle
41+ [ -f composite-builds/build-logic/build.gradle ] || touch composite-builds/build-logic/build.gradle
3142
32- - name : Build Android Code Studio
33- # Hum -P (Properties) ka use karenge taaki dependencies refresh ho jayein
34- run : |
35- ./gradlew :core:app:assembleDebug \
36- -x validateSigningDebug \
37- --no-daemon \
38- --stacktrace \
39- -Dorg.gradle.jvmargs="-Xmx4g -XX:+UseParallelGC"
40- env :
41- MAIN_VERSION : " 1.0.0"
42- REVISION_NUM : " 03"
43-
44- - name : Upload APKs
43+ - name : Cache Gradle Dependencies
44+ uses : actions/cache@v4
45+ with :
46+ path : |
47+ ~/.gradle/caches
48+ ~/.gradle/wrapper
49+ key : ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
50+ restore-keys : |
51+ ${{ runner.os }}-gradle-
52+
53+ - name : Full Project Compile (Assemble)
54+ # 'assemble' command pure project ke saare modules (core, termux, etc) ko build karegi
55+ # -x validateSigningDebug se bina signing key ke APK ban jayegi
56+ run : ./gradlew assemble -x validateSigningDebug --no-daemon --stacktrace
57+
58+ - name : Upload All Generated APKs
4559 uses : actions/upload-artifact@v4
4660 with :
47- name : AndroidCodeStudio-Build
61+ name : AndroidCodeStudio-Full-APKs
4862 path : ' **/build/outputs/apk/**/*.apk'
63+ if-no-files-found : error
0 commit comments