The command is:
/opt/reyboz/android/bin/publish-latest-branch-build.sh ${buildable.revision}
Source code:
This step will copy the built .apk to an indexed HTTP directory exposed by Apache:
Passed |
The command is:
/opt/reyboz/android/bin/publish-latest-branch-build.sh ${buildable.revision}
Source code:
This step will copy the built .apk to an indexed HTTP directory exposed by Apache:
1 | [INFO] including .env file |
---|---|
2 | Current directory: |
3 | /var/drydock/workingcopy-112/repo/libre-busto |
4 | Calculating sha256sum of: |
5 | ./app/build/outputs/apk/gitpull/app-gitpull-signed.apk |
6 | File info |
7 | -rw-r--r-- 1 phabricator-android-builder phabricator-android-builder 25116653 Nov 5 18:50 ./app/build/outputs/apk/gitpull/app-gitpull-signed.apk |
8 | Cleaning old builds |
9 | Update checksums |
10 | Published here: |
11 | https://lab.reyboz.it/builds/libre-busto/maplibre-libre-busto.apk |
12 | Cleaning |
13 | Done |
14 |
Passed |
This script is available here on gargantua.reyboz.it accessible to the Unix user phabricator-android-builder:
/opt/reyboz/android/bin/align-sign-fabione.sh
In general it does that:
#!/bin/sh # https://gitpull.it/harbormaster/step/view/16/ BASEDIR="app/build/outputs/apk/gitpull" OUT="app-gitpull-signed.apk" APK_UNSIGNED="app-gitpull-unsigned.apk" APK_ALIGNED="app-gitpull-unsigned-aligned.apk" KEYSTORE="/home/phabricator-android-builder/private-resources/gitpullkeystore-libre-busto.jks" PASSPHRASE="<omissis> echo "Entering in $BASEDIR" cd "$BASEDIR" echo "Aligning zip" ~/bin/zipalign -v -p 4 "$APK_UNSIGNED" "$APK_ALIGNED" echo "Signing APK" # NOTE: keep keystore unsescaped ~/bin/apksigner sign --ks "$KEYSTORE" --out "$OUT" --ks-pass pass:"$PASSPHRASE" "$APK_ALIGNED" echo "Sign concluded with exit status $?"
1250 | 23593073 res/xQ.xml (OK - compressed) |
---|---|
1251 | 23593564 res/xR.9.png (OK) |
1252 | 23593800 res/xa.9.png (OK) |
1253 | 23594061 res/xa.xml (OK - compressed) |
1254 | 23594622 res/xd.xml (OK - compressed) |
1255 | 23595338 res/xj.xml (OK - compressed) |
1256 | 23595630 res/xo.xml (OK - compressed) |
1257 | 23595917 res/xq.xml (OK - compressed) |
1258 | 23596304 res/xz.xml (OK - compressed) |
1259 | 23597495 res/y-.xml (OK - compressed) |
1260 | 23597764 res/y3.png (OK) |
1261 | 23605466 res/y4.xml (OK - compressed) |
1262 | 23605722 res/y9.xml (OK - compressed) |
1263 | 23605990 res/yE.xml (OK - compressed) |
1264 | 23606248 res/yH.9.png (OK) |
1265 | 23606472 res/yO.xml (OK - compressed) |
1266 | 23606722 res/yT.xml (OK - compressed) |
1267 | 23607044 res/yV.xml (OK - compressed) |
1268 | 23607384 res/yY.9.png (OK) |
1269 | 23607610 res/yY.xml (OK - compressed) |
1270 | 23607896 res/ya.xml (OK - compressed) |
1271 | 23608256 res/yd.png (OK) |
1272 | 23620192 res/ye.png (OK) |
1273 | 23621388 res/yg.9.png (OK) |
1274 | 23621823 res/yj.xml (OK - compressed) |
1275 | 23622220 res/yn.png (OK) |
1276 | 23624704 res/z-.9.png (OK) |
1277 | 23624968 res/z9.9.png (OK) |
1278 | 23625428 res/zE.png (OK) |
1279 | 23625792 res/zG.xml (OK - compressed) |
1280 | 23626112 res/zL.png (OK) |
1281 | 23626360 res/zP.png (OK) |
1282 | 23644320 res/zR.png (OK) |
1283 | 23647121 res/zR.xml (OK - compressed) |
1284 | 23647612 res/zV.9.png (OK) |
1285 | 23650116 res/zZ.png (OK) |
1286 | 23656811 res/zc.xml (OK - compressed) |
1287 | 23657260 res/ze.png (OK) |
1288 | 23665615 res/zp.xml (OK - compressed) |
1289 | 23665873 res/zq.xml (OK - compressed) |
1290 | 23666184 res/zr.png (OK) |
1291 | 23669003 res/zs.xml (OK - compressed) |
1292 | 23669275 res/zu.xml (OK - compressed) |
1293 | 23670308 res/zz.png (OK) |
1294 | 23671232 res/zz.xml (OK - compressed) |
1295 | 23671424 resources.arsc (OK) |
1296 | Verification succesful |
1297 | Signing APK |
1298 | Sign concluded with exit status 0 |
1299 |
Passed |
This step will build an .apk using Gradle.
sudo apt install openjdk-11-jre-headless
Then aliased this gradle:
https://gitlab.com/fdroid/fdroidserver/-/blob/master/gradlew-fdroid
1 | Note: Some input files use or override a deprecated API. |
---|---|
2 | Note: Recompile with -Xlint:deprecation for details. |
3 | /var/drydock/workingcopy-112/repo/libre-busto/app/src/gitpull/AndroidManifest.xml:4: Error: Mock locations should only be requested in a test or debug-specific manifest file (typically src/debug/AndroidManifest.xml) [MockLocation] |
4 | <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/> |
5 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
6 | |
7 | Explanation for issues of type "MockLocation": |
8 | Using a mock location provider (by requiring the permission |
9 | android.permission.ACCESS_MOCK_LOCATION) should only be done in debug |
10 | builds (or from tests). In Gradle projects, that means you should only |
11 | request this permission in a test or debug source set specific manifest |
12 | file. |
13 | |
14 | To fix this, create a new manifest file in the debug folder and move the |
15 | <uses-permission> element there. A typical path to a debug manifest |
16 | override file in a Gradle project is src/debug/AndroidManifest.xml. |
17 | |
18 | 1 errors, 0 warnings |
19 | |
20 |
15971 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/MapLibreFragment.kt:613:74 Parameter 'pattern' is never used, could be renamed to _ |
---|---|
15972 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/MapLibreFragment.kt:648:21 Unnecessary non-null assertion (!!) on a non-null receiver of type MapView |
15973 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/MapLibreFragment.kt:655:27 Unnecessary non-null assertion (!!) on a non-null receiver of type MapView |
15974 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/MapLibreFragment.kt:660:31 Unnecessary non-null assertion (!!) on a non-null receiver of type FolderOverlay |
15975 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/MapLibreFragment.kt:661:21 Unnecessary non-null assertion (!!) on a non-null receiver of type MapView |
15976 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/MapLibreFragment.kt:668:12 Unnecessary non-null assertion (!!) on a non-null receiver of type MapView |
15977 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/MapLibreFragment.kt:695:63 Parameter 'mapView' is never used, could be renamed to _ |
15978 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/MapLibreFragment.kt:707:20 Unnecessary non-null assertion (!!) on a non-null receiver of type MapView |
15979 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/TestRealtimeGtfsFragment.kt:84:27 Parameter 'cont' is never used, could be renamed to _ |
15980 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/map/BusInfoWindow.kt:45:36 Parameter 'view' is never used, could be renamed to _ |
15981 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/map/BusInfoWindow.kt:45:42 Parameter 'motionEvent' is never used, could be renamed to _ |
15982 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/map/BusInfoWindow.kt:88:17 Variable 'layPars' is never used |
15983 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:185:27 'LocationProvider' is deprecated. Deprecated in Java |
15984 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:185:44 'OUT_OF_SERVICE: Int' is deprecated. Deprecated in Java |
15985 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:185:72 'LocationProvider' is deprecated. Deprecated in Java |
15986 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:185:89 'TEMPORARILY_UNAVAILABLE: Int' is deprecated. Deprecated in Java |
15987 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:187:34 'LocationProvider' is deprecated. Deprecated in Java |
15988 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:187:51 'AVAILABLE: Int' is deprecated. Deprecated in Java |
15989 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:215:48 'Criteria' is deprecated. Deprecated in Java |
15990 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/util/ImportExport.kt:50:43 Variable 'map' initializer is redundant |
15991 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/util/ImportExport.kt:53:40 Unchecked cast: Any! to Map<String?, Any>? |
15992 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/util/ImportExport.kt:71:51 No cast needed |
15993 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/util/ImportExport.kt:73:49 No cast needed |
15994 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/util/ImportExport.kt:75:46 No cast needed |
15995 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/util/ImportExport.kt:77:48 No cast needed |
15996 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/util/ImportExport.kt:79:48 No cast needed |
15997 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/util/ImportExport.kt:81:42 No cast needed |
15998 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/util/ImportExport.kt:83:56 Unchecked cast: Any to Set<String?> |
15999 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/viewmodels/LivePositionsViewModel.kt:271:29 Parameter 'req' is never used, could be renamed to _ |
16000 | |
16001 | > Task :app:compileGitpullJavaWithJavac |
16002 | |
16003 | > Task :app:dexBuilderGitpull |
16004 | > Task :app:processGitpullJavaRes |
16005 | > Task :app:mergeGitpullGlobalSynthetics |
16006 | > Task :app:mergeGitpullJavaResource |
16007 | > Task :app:mergeDexGitpull |
16008 | > Task :app:compileGitpullArtProfile |
16009 | > Task :app:packageGitpull |
16010 | > Task :app:createGitpullApkListingFileRedirect |
16011 | > Task :app:lintVitalAnalyzeGitpull |
16012 | > Task :app:lintVitalReportGitpull |
16013 | |
16014 | > Task :app:lintVitalGitpull |
16015 | |
16016 | > Task :app:assembleGitpull |
16017 | |
16018 | BUILD SUCCESSFUL in 2m 48s |
16019 | 45 actionable tasks: 45 executed |
16020 |
Passed |
Clean Gradle directory to avoid nasty errors like:
1 | Found 8.1 via distributionUrl |
---|---|
2 | Running /home/phabricator-android-builder/versions/8.1/bin/gradle clean |
3 | > Task :app:clean |
4 | |
5 | BUILD SUCCESSFUL in 5s |
6 | 1 actionable task: 1 executed |
7 |
Passed |
Passed |