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-79/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 8040070 Sep 15 17: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/D134-libre-busto.apk |
11 | Adding bipbop Comment to D134 |
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 $?"
1169 | 6655767 res/wo.xml (OK - compressed) |
---|---|
1170 | 6656140 res/wz.xml (OK - compressed) |
1171 | 6656565 res/x1.xml (OK - compressed) |
1172 | 6656848 res/x5.9.png (OK) |
1173 | 6657236 res/xB.png (OK) |
1174 | 6658532 res/xC.png (OK) |
1175 | 6658688 res/xD.png (OK) |
1176 | 6659351 res/xF.xml (OK - compressed) |
1177 | 6659688 res/xH.png (OK) |
1178 | 6676052 res/xM.png (OK) |
1179 | 6679920 res/xR.png (OK) |
1180 | 6680783 res/xT.xml (OK - compressed) |
1181 | 6681360 res/xW.png (OK) |
1182 | 6681784 res/xc.xml (OK - compressed) |
1183 | 6682385 res/xd.xml (OK - compressed) |
1184 | 6682680 res/xp.png (OK) |
1185 | 6689375 res/xs.xml (OK - compressed) |
1186 | 6689804 res/xw.xml (OK - compressed) |
1187 | 6690226 res/xy.xml (OK - compressed) |
1188 | 6690776 res/yC.xml (OK - compressed) |
1189 | 6691840 res/yO.9.png (OK) |
1190 | 6692101 res/yP.xml (OK - compressed) |
1191 | 6692692 res/yR.xml (OK - compressed) |
1192 | 6693696 res/yX.png (OK) |
1193 | 6698046 res/ya.xml (OK - compressed) |
1194 | 6699122 res/yf.xml (OK - compressed) |
1195 | 6699460 res/yq.png (OK) |
1196 | 6700672 res/yw.png (OK) |
1197 | 6702476 res/yx.xml (OK - compressed) |
1198 | 6702996 res/z1.xml (OK - compressed) |
1199 | 6703237 res/z11.xml (OK - compressed) |
1200 | 6703594 res/z12.xml (OK - compressed) |
1201 | 6703922 res/z3.xml (OK - compressed) |
1202 | 6704192 res/z6.png (OK) |
1203 | 6705096 res/z61.png (OK) |
1204 | 6706280 res/zB.xml (OK - compressed) |
1205 | 6706642 res/zH.xml (OK - compressed) |
1206 | 6707206 res/zL.xml (OK - compressed) |
1207 | 6707529 res/zN.xml (OK - compressed) |
1208 | 6707880 res/zZ.png (OK) |
1209 | 6708237 res/z_.xml (OK - compressed) |
1210 | 6708488 res/zq.xml (OK - compressed) |
1211 | 6708952 res/zt.png (OK) |
1212 | 6713428 res/zw.png (OK) |
1213 | 6713936 res/zy.png (OK) |
1214 | 6714180 resources.arsc (OK) |
1215 | Verification succesful |
1216 | Signing APK |
1217 | Sign concluded with exit status 0 |
1218 |
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
138 | at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100) |
---|---|
139 | at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62) |
140 | at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44) |
141 | at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41) |
142 | at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) |
143 | at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) |
144 | at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) |
145 | at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) |
146 | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) |
147 | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) |
148 | at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) |
149 | at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) |
150 | at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41) |
151 | at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59) |
152 | at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$2(DefaultWorkerExecutor.java:205) |
153 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) |
154 | at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:187) |
155 | at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:120) |
156 | at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:162) |
157 | at org.gradle.internal.Factories$1.create(Factories.java:31) |
158 | at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249) |
159 | at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109) |
160 | at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:114) |
161 | at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:157) |
162 | at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:126) |
163 | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) |
164 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) |
165 | at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) |
166 | at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) |
167 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) |
168 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) |
169 | at java.base/java.lang.Thread.run(Thread.java:829) |
170 | /var/drydock/workingcopy-79/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] |
171 | <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/> |
172 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
173 | |
174 | Explanation for issues of type "MockLocation": |
175 | Using a mock location provider (by requiring the permission |
176 | android.permission.ACCESS_MOCK_LOCATION) should only be done in debug |
177 | builds (or from tests). In Gradle projects, that means you should only |
178 | request this permission in a test or debug source set specific manifest |
179 | file. |
180 | |
181 | To fix this, create a new manifest file in the debug folder and move the |
182 | <uses-permission> element there. A typical path to a debug manifest |
183 | override file in a Gradle project is src/debug/AndroidManifest.xml. |
184 | |
185 | 1 errors, 0 warnings |
186 | |
187 |
53 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/adapters/RouteOnlyLineAdapter.kt:26:33 Parameter 'showOnlyEmpty' is never used |
---|---|
54 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/backend/mato/MQTTMatoClient.kt:199:62 No cast needed |
55 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/backend/mato/MQTTMatoClient.kt:239:17 Variable 'valid' is assigned but never accessed |
56 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/data/MatoPatternsDownloadWorker.kt:58:13 Variable 'notificationManager' is never used |
57 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/data/MatoTripsDownloadWorker.kt:96:13 Variable 'notificationManager' is never used |
58 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:96:33 Unnecessary safe call on a non-null receiver of type CommonFragmentListener |
59 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:101:16 Condition 'fragmentListener == null' is always 'false' |
60 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:121:63 Parameter 'stopName' is never used, could be renamed to _ |
61 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:215:23 Unnecessary safe call on a non-null receiver of type MapView |
62 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:452:36 Condition 'map == null' is always 'false' |
63 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:520:66 Parameter 'polyline' is never used, could be renamed to _ |
64 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:520:76 Parameter 'mapView' is never used, could be renamed to _ |
65 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:520:85 Parameter 'eventPos' is never used, could be renamed to _ |
66 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:542:13 Variable 'numStops' is never used |
67 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:604:35 Variable 'marker' initializer is redundant |
68 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:653:21 Condition 'busPositionsOverlay != null' is always 'true' |
69 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt:708:46 'getter for zoomLevel: Int' is deprecated. Deprecated in Java |
70 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesGridShowingFragment.kt:162:13 Variable 'durArrow' is never used |
71 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/TestRealtimeGtfsFragment.kt:84:27 Parameter 'cont' is never used, could be renamed to _ |
72 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/map/BusInfoWindow.kt:45:36 Parameter 'view' is never used, could be renamed to _ |
73 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/map/BusInfoWindow.kt:45:42 Parameter 'motionEvent' is never used, could be renamed to _ |
74 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/map/BusInfoWindow.kt:87:17 Variable 'layPars' is never used |
75 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:182:27 'LocationProvider' is deprecated. Deprecated in Java |
76 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:182:44 'OUT_OF_SERVICE: Int' is deprecated. Deprecated in Java |
77 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:182:72 'LocationProvider' is deprecated. Deprecated in Java |
78 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:182:89 'TEMPORARILY_UNAVAILABLE: Int' is deprecated. Deprecated in Java |
79 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:184:34 'LocationProvider' is deprecated. Deprecated in Java |
80 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:184:51 'AVAILABLE: Int' is deprecated. Deprecated in Java |
81 | |
82 | > Task :app:compileGitpullJavaWithJavac |
83 | |
84 | > Task :app:lintVitalAnalyzeGitpull |
85 | |
86 | > Task :app:dexBuilderGitpull |
87 | > Task :app:mergeGitpullJavaResource |
88 | > Task :app:mergeDexGitpull |
89 | > Task :app:compileGitpullArtProfile |
90 | > Task :app:packageGitpull |
91 | > Task :app:createGitpullApkListingFileRedirect |
92 | Daemon will be stopped at the end of the build after running out of JVM memory |
93 | |
94 | > Task :app:lintVitalReportGitpull |
95 | |
96 | > Task :app:lintVitalGitpull |
97 | |
98 | > Task :app:assembleGitpull |
99 | |
100 | BUILD SUCCESSFUL in 2m 12s |
101 | 40 actionable tasks: 40 executed |
102 |
Passed |
Clean Gradle directory to avoid nasty errors like:
1 | Found 7.5.1 via distributionUrl |
---|---|
2 | Running /home/phabricator-android-builder/versions/7.5.1/bin/gradle clean |
3 | Starting a Gradle Daemon, 1 stopped Daemon could not be reused, use --status for details |
4 | > Task :app:clean |
5 | |
6 | BUILD SUCCESSFUL in 14s |
7 | 1 actionable task: 1 executed |
8 |
Passed |
Passed |