@@ -7,53 +7,27 @@ permissions:
77 contents : read
88
99jobs :
10- build-gms-flavor-for-github :
10+ build-gms-flavor :
1111 runs-on : ubuntu-latest
12+ outputs :
13+ VERSION_NAME : ${{ steps.version.outputs.VERSION_NAME }}
1214 steps :
1315 - name : Checkout
1416 uses : actions/checkout@v6
1517 with :
1618 persist-credentials : false
1719
18- - name : Set up JDK 21
19- uses : actions/setup-java@v5
20- with :
21- java-version : " 21"
22- distribution : " temurin"
23- cache : gradle
20+ - name : Setup Android Environment
21+ uses : ./.github/actions/setup-android-env
2422
25- - name : Set up Android SDK
26- uses : android-actions/setup-android@v3
27- with :
28- packages : " platform-tools platforms;android-36 build-tools;34. 0.0"
29- accept-android-sdk-licenses : true
23+ - name : Extract versionName
24+ id : version
25+ run : |
26+ VERSION_NAME=$(grep -oP 'versionName\s+"\K[^"]+' app/ build.gradle || echo " 0.0.0")
27+ echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_OUTPUT
3028
31- - name : Cache Gradle dependencies
32- uses : actions/cache@v4
33- with :
34- path : |
35- ~/.gradle/caches
36- ~/.gradle/wrapper
37- ~/.gradle/daemon
38- key : ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
39- restore-keys : |
40- ${{ runner.os }}-gradle-
41-
42- - name : Cache Android SDK
43- uses : actions/cache@v4
44- with :
45- path : |
46- ~/.android/build-cache
47- ~/.android/cache
48- key : ${{ runner.os }}-android-sdk-${{ hashFiles('**/build.gradle*') }}
49- restore-keys : |
50- ${{ runner.os }}-android-sdk-
51-
52- - name : Grant execute permission for gradlew
53- run : chmod +x gradlew
54-
55- - name : Build APK for Github release
56- run : ./gradlew assembleGmsRelease --parallel --build-cache --configuration-cache
29+ - name : Build APK & Bundle for Github and Google Play
30+ run : ./gradlew assembleGmsRelease bundleGmsRelease --parallel --build-cache --configuration-cache
5731
5832 - name : Sign APK for Github release
5933 uses : r0adkll/sign-android-release@v1
@@ -75,148 +49,65 @@ jobs:
7549 name : github-release-apk
7650 path : app/build/outputs/apk/gms/release/app-release.apk
7751
78- build-foss-flavor-for-github :
79- runs-on : ubuntu-latest
80- steps :
81- - name : Checkout
82- uses : actions/checkout@v4
83- with :
84- persist-credentials : false
85-
86- - name : Set up JDK 21
87- uses : actions/setup-java@v5
88- with :
89- java-version : " 21"
90- distribution : " temurin"
91- cache : gradle
92-
93- - name : Set up Android SDK
94- uses : android-actions/setup-android@v3
95- with :
96- packages : " platform-tools platforms;android-36 build-tools;34.0.0"
97- accept-android-sdk-licenses : true
98-
99- - name : Cache Gradle dependencies
100- uses : actions/cache@v4
101- with :
102- path : |
103- ~/.gradle/caches
104- ~/.gradle/wrapper
105- ~/.gradle/daemon
106- key : ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
107- restore-keys : |
108- ${{ runner.os }}-gradle-
109-
110- - name : Cache Android SDK
111- uses : actions/cache@v4
112- with :
113- path : |
114- ~/.android/build-cache
115- ~/.android/cache
116- key : ${{ runner.os }}-android-sdk-${{ hashFiles('**/build.gradle*') }}
117- restore-keys : |
118- ${{ runner.os }}-android-sdk-
119-
120- - name : Grant execute permission for gradlew
121- run : chmod +x gradlew
122-
123- - name : Build APK for Github release
124- run : ./gradlew assembleFossRelease --parallel --build-cache --configuration-cache
125-
126- - name : Sign APK for Github release
52+ - name : Sign bundle for Google Play release
12753 uses : r0adkll/sign-android-release@v1
12854 with :
129- releaseDirectory : app/build/outputs/apk/foss/release
55+ releaseDirectory : app/build/outputs/bundle/gmsRelease
13056 signingKeyBase64 : ${{ secrets.SIGNING_KEY }}
13157 alias : ${{ secrets.ALIAS }}
13258 keyStorePassword : ${{ secrets.KEY_STORE_PASSWORD }}
13359 keyPassword : ${{ secrets.KEY_PASSWORD }}
134- env :
135- BUILD_TOOLS_VERSION : " 34.0.0"
13660
137- - name : Rename Github APK file
138- run : mv app/build/outputs/apk/foss/release/ app-foss -release-unsigned-signed.apk app/build/outputs/apk/foss/release/ app-release-foss.apk
61+ - name : Rename Google Play bundle file
62+ run : mv app/build/outputs/bundle/gmsRelease/ app-gms -release.aab app/build/outputs/bundle/gmsRelease/ app-release.aab
13963
140- - name : Upload APK to Github release artifacts
64+ - name : Upload bundle to Github release artifacts
14165 uses : actions/upload-artifact@v7
14266 with :
143- name : github-foss-release-apk
144- path : app/build/outputs/apk/foss/release/ app-release-foss.apk
67+ name : google-play-bundle
68+ path : app/build/outputs/bundle/gmsRelease/ app-release.aab
14569
146- build-gms -flavor-for-google-play :
70+ build-foss -flavor :
14771 runs-on : ubuntu-latest
14872 steps :
14973 - name : Checkout
15074 uses : actions/checkout@v4
15175 with :
15276 persist-credentials : false
15377
154- - name : Set up JDK 21
155- uses : actions/setup-java@v5
156- with :
157- java-version : 21
158- distribution : " temurin"
159- cache : gradle
160-
161- - name : Set up Android SDK
162- uses : android-actions/setup-android@v3
163- with :
164- packages : " platform-tools platforms;android-36 build-tools;34.0.0"
165- accept-android-sdk-licenses : true
166-
167- - name : Cache Gradle dependencies
168- uses : actions/cache@v4
169- with :
170- path : |
171- ~/.gradle/caches
172- ~/.gradle/wrapper
173- ~/.gradle/daemon
174- key : ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
175- restore-keys : |
176- ${{ runner.os }}-gradle-
177-
178- - name : Cache Android SDK
179- uses : actions/cache@v4
180- with :
181- path : |
182- ~/.android/build-cache
183- ~/.android/cache
184- key : ${{ runner.os }}-android-sdk-${{ hashFiles('**/build.gradle*') }}
185- restore-keys : |
186- ${{ runner.os }}-android-sdk-
78+ - name : Setup Android Environment
79+ uses : ./.github/actions/setup-android-env
18780
188- - name : Grant execute permission for gradlew
189- run : chmod +x gradlew
190-
191- - name : Build bundle for Google Play release
192- run : ./gradlew bundleGmsRelease --parallel --build-cache --configuration-cache
81+ - name : Build APK for Github release
82+ run : ./gradlew assembleFossRelease --parallel --build-cache --configuration-cache
19383
194- - name : Sign bundle for Google Play release
84+ - name : Sign APK for Github release
19585 uses : r0adkll/sign-android-release@v1
19686 with :
197- releaseDirectory : app/build/outputs/bundle/gmsRelease
87+ releaseDirectory : app/build/outputs/apk/foss/release
19888 signingKeyBase64 : ${{ secrets.SIGNING_KEY }}
19989 alias : ${{ secrets.ALIAS }}
20090 keyStorePassword : ${{ secrets.KEY_STORE_PASSWORD }}
20191 keyPassword : ${{ secrets.KEY_PASSWORD }}
92+ env :
93+ BUILD_TOOLS_VERSION : " 34.0.0"
20294
203- - name : Rename Google Play bundle file
204- run : mv app/build/outputs/bundle/gmsRelease/ app-gms -release.aab app/build/outputs/bundle/gmsRelease/ app-release.aab
95+ - name : Rename Github APK file
96+ run : mv app/build/outputs/apk/foss/release/ app-foss -release-unsigned-signed.apk app/build/outputs/apk/foss/release/ app-release-foss.apk
20597
206- - name : Upload bundle to Github release artifacts
98+ - name : Upload APK to Github release artifacts
20799 uses : actions/upload-artifact@v7
208100 with :
209- name : google-play-bundle
210- path : app/build/outputs/bundle/gmsRelease/ app-release.aab
101+ name : github-foss-release-apk
102+ path : app/build/outputs/apk/foss/release/ app-release-foss.apk
211103
212104 publish-built-files :
213105 permissions :
214106 contents : write
215107 needs :
216108 [
217- " build-gms-flavor-for-github" ,
218- " build-foss-flavor-for-github" ,
219- " build-gms-flavor-for-google-play" ,
109+ " build-gms-flavor" ,
110+ " build-foss-flavor"
220111 ]
221112 runs-on : ubuntu-latest
222113 steps :
@@ -243,20 +134,14 @@ jobs:
243134 name : google-play-bundle
244135 path : .
245136
246- - name : Read APK info to get version code
247- id : android_version
248- uses : hkusu/apk-info-action@v1
249- with :
250- apk-path : app-release.apk
251-
252137 - name : Create Github release using release-drafter
253138 id : create_release
254139 uses : release-drafter/release-drafter@v7
255140 env :
256141 GITHUB_TOKEN : ${{ github.token }}
257142 with :
258- tag : v${{ steps.android_version .outputs.version-name }}
259- name : v${{ steps.android_version .outputs.version-name }}
143+ tag : v${{ needs.build-gms-flavor .outputs.VERSION_NAME }}
144+ name : v${{ needs.build-gms-flavor .outputs.VERSION_NAME }}
260145
261146 - name : Upload APK to Github release
262147 id : upload_release_asset
@@ -306,9 +191,8 @@ jobs:
306191 actions : write
307192 needs :
308193 [
309- " build-gms-flavor-for-github" ,
310- " build-gms-flavor-for-google-play" ,
311- " publish-built-files" ,
194+ " build-gms-flavor" ,
195+ " publish-built-files"
312196 ]
313197 runs-on : ubuntu-latest
314198 if : always()
0 commit comments