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 | Current directory: |
---|---|
2 | /var/drydock/workingcopy-112/repo/libre-busto |
3 | Calculating sha256sum of: |
4 | ./app/build/outputs/apk/gitpull/app-gitpull-signed.apk |
5 | File info |
6 | -rw-r--r-- 1 phabricator-android-builder phabricator-android-builder 8561731 Jan 23 18:54 ./app/build/outputs/apk/gitpull/app-gitpull-signed.apk |
7 | Cleaning old builds |
8 | Update checksums |
9 | Published here: |
10 | https://lab.reyboz.it/builds/libre-busto/HEAD-libre-busto.apk |
11 | Cleaning |
12 | Done |
13 |
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 $?"
1145 | 7006830 res/uF.xml (OK - compressed) |
---|---|
1146 | 7007092 res/uO.xml (OK - compressed) |
1147 | 7007352 res/uP.9.png (OK) |
1148 | 7008348 res/uP.xml (OK - compressed) |
1149 | 7008716 res/ue.xml (OK - compressed) |
1150 | 7009034 res/ug.xml (OK - compressed) |
1151 | 7009261 res/uo.xml (OK - compressed) |
1152 | 7009624 res/uu.png (OK) |
1153 | 7009982 res/uv.xml (OK - compressed) |
1154 | 7010357 res/uw.xml (OK - compressed) |
1155 | 7010844 res/v2.png (OK) |
1156 | 7036599 res/v2.xml (OK - compressed) |
1157 | 7037016 res/v3.xml (OK - compressed) |
1158 | 7037372 res/v6.9.png (OK) |
1159 | 7037606 res/v8.xml (OK - compressed) |
1160 | 7037873 res/vD.xml (OK - compressed) |
1161 | 7038497 res/vH.xml (OK - compressed) |
1162 | 7039134 res/vM.xml (OK - compressed) |
1163 | 7039787 res/vO.xml (OK - compressed) |
1164 | 7040246 res/vP.xml (OK - compressed) |
1165 | 7040756 res/vX.png (OK) |
1166 | 7043828 res/va.png (OK) |
1167 | 7044190 res/va.xml (OK - compressed) |
1168 | 7044640 res/vc.xml (OK - compressed) |
1169 | 7045116 res/vd.png (OK) |
1170 | 7045423 res/vl.xml (OK - compressed) |
1171 | 7045788 res/vn.png (OK) |
1172 | 7049130 res/vp.xml (OK - compressed) |
1173 | 7049386 res/vt.xml (OK - compressed) |
1174 | 7049788 res/vy.9.png (OK) |
1175 | 7050054 res/vz.xml (OK - compressed) |
1176 | 7050528 res/w0.png (OK) |
1177 | 7053223 res/w2.xml (OK - compressed) |
1178 | 7053546 res/w7.xml (OK - compressed) |
1179 | 7054252 res/wF.png (OK) |
1180 | 7057358 res/wG.xml (OK - compressed) |
1181 | 7057728 res/wK.9.png (OK) |
1182 | 7057980 res/wL.9.png (OK) |
1183 | 7058212 res/wN.png (OK) |
1184 | 7058476 res/wT.png (OK) |
1185 | 7058784 res/wW.png (OK) |
1186 | 7058983 res/wW.xml (OK - compressed) |
1187 | 7059312 res/wW1.png (OK) |
1188 | 7059669 res/wY.xml (OK - compressed) |
1189 | 7060036 res/wi.9.png (OK) |
1190 | 7061808 res/wi.png (OK) |
1191 | 7061984 res/wi1.9.png (OK) |
1192 | 7063267 res/wn.xml (OK - compressed) |
1193 | 7063719 res/wo.xml (OK - compressed) |
1194 | 7064092 res/wz.xml (OK - compressed) |
1195 | 7064517 res/x1.xml (OK - compressed) |
1196 | 7064800 res/x5.9.png (OK) |
1197 | 7065188 res/xB.png (OK) |
1198 | 7066484 res/xC.png (OK) |
1199 | 7066640 res/xD.png (OK) |
1200 | 7067303 res/xF.xml (OK - compressed) |
1201 | 7067640 res/xH.png (OK) |
1202 | 7084004 res/xM.png (OK) |
1203 | 7087872 res/xR.png (OK) |
1204 | 7088735 res/xT.xml (OK - compressed) |
1205 | 7089312 res/xW.png (OK) |
1206 | 7089736 res/xc.xml (OK - compressed) |
1207 | 7090330 res/xd.xml (OK - compressed) |
1208 | 7090624 res/xp.png (OK) |
1209 | 7097319 res/xs.xml (OK - compressed) |
1210 | 7097748 res/xw.xml (OK - compressed) |
1211 | 7098170 res/xy.xml (OK - compressed) |
1212 | 7098720 res/yC.xml (OK - compressed) |
1213 | 7099788 res/yO.9.png (OK) |
1214 | 7100049 res/yP.xml (OK - compressed) |
1215 | 7100640 res/yR.xml (OK - compressed) |
1216 | 7101640 res/yX.png (OK) |
1217 | 7105990 res/ya.xml (OK - compressed) |
1218 | 7107065 res/yf.xml (OK - compressed) |
1219 | 7107400 res/yg.webp (OK) |
1220 | 7148740 res/yq.png (OK) |
1221 | 7149952 res/yw.png (OK) |
1222 | 7151756 res/yx.xml (OK - compressed) |
1223 | 7152276 res/z1.xml (OK - compressed) |
1224 | 7152517 res/z11.xml (OK - compressed) |
1225 | 7152872 res/z12.xml (OK - compressed) |
1226 | 7153200 res/z3.xml (OK - compressed) |
1227 | 7153468 res/z6.png (OK) |
1228 | 7154372 res/z61.png (OK) |
1229 | 7155556 res/zB.xml (OK - compressed) |
1230 | 7155918 res/zH.xml (OK - compressed) |
1231 | 7156481 res/zL.xml (OK - compressed) |
1232 | 7156804 res/zN.xml (OK - compressed) |
1233 | 7157156 res/zZ.png (OK) |
1234 | 7157513 res/z_.xml (OK - compressed) |
1235 | 7157764 res/zq.xml (OK - compressed) |
1236 | 7158227 res/zs.ttf (OK - compressed) |
1237 | 7206628 res/zt.png (OK) |
1238 | 7211104 res/zw.png (OK) |
1239 | 7211612 res/zy.png (OK) |
1240 | 7211856 resources.arsc (OK) |
1241 | Verification succesful |
1242 | Signing APK |
1243 | Sign concluded with exit status 0 |
1244 |
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 | e: /home/phabricator-android-builder/.gradle/caches/transforms-3/3233d6ddde389e715b15b715970cb3ed/transformed/paho.mqtt.android-4.1/jars/classes.jar!/META-INF/serviceLibrary_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.7.1. |
4 | /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] |
5 | <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/> |
6 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
7 | |
8 | Explanation for issues of type "MockLocation": |
9 | Using a mock location provider (by requiring the permission |
10 | android.permission.ACCESS_MOCK_LOCATION) should only be done in debug |
11 | builds (or from tests). In Gradle projects, that means you should only |
12 | request this permission in a test or debug source set specific manifest |
13 | file. |
14 | |
15 | To fix this, create a new manifest file in the debug folder and move the |
16 | <uses-permission> element there. A typical path to a debug manifest |
17 | override file in a Gradle project is src/debug/AndroidManifest.xml. |
18 | |
19 | 1 errors, 0 warnings |
20 | |
21 |
6 | > Task :app:compileGitpullRenderscript NO-SOURCE |
---|---|
7 | > Task :app:generateGitpullBuildConfig |
8 | > Task :app:generateGitpullResValues |
9 | > Task :app:checkGitpullAarMetadata |
10 | > Task :app:mapGitpullSourceSetPaths |
11 | > Task :app:generateGitpullResources |
12 | > Task :app:createGitpullCompatibleScreenManifests |
13 | > Task :app:extractDeepLinksGitpull |
14 | > Task :app:mergeGitpullResources |
15 | |
16 | > Task :app:processGitpullMainManifest |
17 | /var/drydock/workingcopy-112/repo/libre-busto/app/src/gitpull/AndroidManifest.xml:39:9-45:51 Warning: |
18 | provider#org.acra.attachment.AcraContentProvider@android:authorities was tagged at AndroidManifest.xml:39 to replace other declarations but no other declaration present |
19 | |
20 | > Task :app:processGitpullManifest |
21 | > Task :app:javaPreCompileGitpull |
22 | > Task :app:extractProguardFiles |
23 | > Task :app:mergeGitpullJniLibFolders |
24 | > Task :app:mergeGitpullNativeLibs NO-SOURCE |
25 | > Task :app:stripGitpullDebugSymbols NO-SOURCE |
26 | > Task :app:extractGitpullNativeSymbolTables NO-SOURCE |
27 | > Task :app:mergeGitpullNativeDebugMetadata NO-SOURCE |
28 | > Task :app:checkGitpullDuplicateClasses |
29 | > Task :app:desugarGitpullFileDependencies |
30 | > Task :app:mergeGitpullShaders |
31 | > Task :app:compileGitpullShaders NO-SOURCE |
32 | > Task :app:generateGitpullAssets UP-TO-DATE |
33 | > Task :app:mergeGitpullAssets |
34 | > Task :app:compressGitpullAssets |
35 | > Task :app:processGitpullJavaRes NO-SOURCE |
36 | > Task :app:collectGitpullDependencies |
37 | > Task :app:sdkGitpullDependencyData |
38 | > Task :app:writeGitpullAppMetadata |
39 | > Task :app:writeGitpullSigningConfigVersions |
40 | > Task :app:mergeGitpullArtProfile |
41 | > Task :app:processGitpullManifestForPackage |
42 | > Task :app:processGitpullResources |
43 | > Task :app:optimizeGitpullResources |
44 | > Task :app:mergeExtDexGitpull |
45 | > Task :app:kaptGenerateStubsGitpullKotlin |
46 | |
47 | > Task :app:kaptGitpullKotlin |
48 | /var/drydock/workingcopy-112/repo/libre-busto/app/build/tmp/kapt3/stubs/gitpull/it/reyboz/bustorino/data/gtfs/GtfsAgency.java:24: warning: Primary key constraint on gtfsId is ignored when being merged into it.reyboz.bustorino.data.gtfs.GtfsAgency |
49 | private it.reyboz.bustorino.data.gtfs.GtfsFeed feed; |
50 | ^ |
51 | |
52 | > Task :app:compileGitpullKotlin |
53 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/ActivityIntro.kt:49:75 Parameter 'tab' is never used, could be renamed to _ |
54 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/adapters/RouteOnlyLineAdapter.kt:34:33 Parameter 'showOnlyEmpty' is never used |
55 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/backend/mato/MQTTMatoClient.kt:223:62 No cast needed |
56 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/backend/mato/MQTTMatoClient.kt:263:17 Variable 'valid' is assigned but never accessed |
57 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/data/MatoPatternsDownloadWorker.kt:58:13 Variable 'notificationManager' is never used |
58 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/data/MatoTripsDownloadWorker.kt:96:13 Variable 'notificationManager' is never used |
59 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/IntroFragment.kt:172:43 'setColorFilter(Int, PorterDuff.Mode): Unit' is deprecated. Deprecated in Java |
60 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/IntroFragment.kt:178:66 Parameter 'maxDpToScale' is never used |
61 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/IntroFragment.kt:213:24 'setColorFilter(Int, PorterDuff.Mode): Unit' is deprecated. Deprecated in Java |
62 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:102:41 There is more than one label with such a name in this scope |
63 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:132:16 Condition 'fragmentListener == null' is always 'false' |
64 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:152:63 Parameter 'stopName' is never used, could be renamed to _ |
65 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:296:23 Unnecessary safe call on a non-null receiver of type MapView |
66 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:540:36 Condition 'map == null' is always 'false' |
67 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:609:66 Parameter 'polyline' is never used, could be renamed to _ |
68 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:609:76 Parameter 'mapView' is never used, could be renamed to _ |
69 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:609:85 Parameter 'eventPos' is never used, could be renamed to _ |
70 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:631:13 Variable 'numStops' is never used |
71 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:704:35 Variable 'marker' initializer is redundant |
72 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:753:21 Condition 'busPositionsOverlay != null' is always 'true' |
73 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:810:46 'getter for zoomLevel: Int' is deprecated. Deprecated in Java |
74 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesGridShowingFragment.kt:203:13 Variable 'durArrow' is never used |
75 | 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 _ |
76 | 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 _ |
77 | 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 _ |
78 | 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 |
79 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:182:27 'LocationProvider' is deprecated. Deprecated in Java |
80 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:182:44 'OUT_OF_SERVICE: Int' is deprecated. Deprecated in Java |
81 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:182:72 'LocationProvider' is deprecated. Deprecated in Java |
82 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:182:89 'TEMPORARILY_UNAVAILABLE: Int' is deprecated. Deprecated in Java |
83 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:184:34 'LocationProvider' is deprecated. Deprecated in Java |
84 | w: file:///var/drydock/workingcopy-112/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:184:51 'AVAILABLE: Int' is deprecated. Deprecated in Java |
85 | |
86 | > Task :app:compileGitpullJavaWithJavac |
87 | |
88 | > Task :app:lintVitalAnalyzeGitpull |
89 | |
90 | > Task :app:dexBuilderGitpull |
91 | > Task :app:mergeGitpullJavaResource |
92 | > Task :app:mergeDexGitpull |
93 | > Task :app:compileGitpullArtProfile |
94 | > Task :app:packageGitpull |
95 | > Task :app:createGitpullApkListingFileRedirect |
96 | Daemon will be stopped at the end of the build after running out of JVM memory |
97 | > Task :app:lintVitalReportGitpull |
98 | |
99 | > Task :app:lintVitalGitpull |
100 | |
101 | > Task :app:assembleGitpull |
102 | |
103 | BUILD SUCCESSFUL in 2m 53s |
104 | 40 actionable tasks: 40 executed |
105 |
Passed |
Clean Gradle directory to avoid nasty errors like:
1 | Found 7.6 via distributionUrl |
---|---|
2 | Running /home/phabricator-android-builder/versions/7.6/bin/gradle clean |
3 | Starting a Gradle Daemon (subsequent builds will be faster) |
4 | > Task :app:clean |
5 | |
6 | BUILD SUCCESSFUL in 19s |
7 | 1 actionable task: 1 executed |
8 |
Passed |
Passed |