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 7295648 Jun 16 23:11 ./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 $?"
1038 | 5990406 res/sh.xml (OK - compressed) |
---|---|
1039 | 5991180 res/si.xml (OK - compressed) |
1040 | 5991456 res/st.9.png (OK) |
1041 | 5991944 res/su.png (OK) |
1042 | 5992781 res/t0.xml (OK - compressed) |
1043 | 5993255 res/t7.xml (OK - compressed) |
1044 | 5993762 res/t9.xml (OK - compressed) |
1045 | 5994120 res/tM.9.png (OK) |
1046 | 5994372 res/tQ.xml (OK - compressed) |
1047 | 5994624 res/tW.xml (OK - compressed) |
1048 | 5995432 res/tb.xml (OK - compressed) |
1049 | 5995740 res/tf.png (OK) |
1050 | 5999996 res/tj.9.png (OK) |
1051 | 6002544 res/tr.9.png (OK) |
1052 | 6002836 res/tv.xml (OK - compressed) |
1053 | 6003252 res/u-.png (OK) |
1054 | 6005180 res/u3.png (OK) |
1055 | 6007050 res/u3.xml (OK - compressed) |
1056 | 6007544 res/u6.xml (OK - compressed) |
1057 | 6007812 res/u9.png (OK) |
1058 | 6010396 res/uB.9.png (OK) |
1059 | 6011402 res/uF.xml (OK - compressed) |
1060 | 6011668 res/uP.9.png (OK) |
1061 | 6012664 res/uP.xml (OK - compressed) |
1062 | 6013030 res/ue.xml (OK - compressed) |
1063 | 6013349 res/ug.xml (OK - compressed) |
1064 | 6013576 res/uo.xml (OK - compressed) |
1065 | 6013936 res/uu.png (OK) |
1066 | 6014296 res/v2.png (OK) |
1067 | 6040051 res/v2.xml (OK - compressed) |
1068 | 6040472 res/v6.9.png (OK) |
1069 | 6040706 res/v8.xml (OK - compressed) |
1070 | 6040973 res/vD.xml (OK - compressed) |
1071 | 6041577 res/vH.xml (OK - compressed) |
1072 | 6042213 res/vM.xml (OK - compressed) |
1073 | 6042820 res/vO.xml (OK - compressed) |
1074 | 6043278 res/vP.xml (OK - compressed) |
1075 | 6043728 res/vX.png (OK) |
1076 | 6046800 res/va.png (OK) |
1077 | 6047162 res/va.xml (OK - compressed) |
1078 | 6047610 res/vc.xml (OK - compressed) |
1079 | 6048060 res/vd.png (OK) |
1080 | 6048367 res/vl.xml (OK - compressed) |
1081 | 6048732 res/vn.png (OK) |
1082 | 6052074 res/vp.xml (OK - compressed) |
1083 | 6052330 res/vt.xml (OK - compressed) |
1084 | 6052732 res/vy.9.png (OK) |
1085 | 6052998 res/vz.xml (OK - compressed) |
1086 | 6053476 res/w0.png (OK) |
1087 | 6056171 res/wA.xml (OK - compressed) |
1088 | 6056408 res/wF.png (OK) |
1089 | 6059514 res/wG.xml (OK - compressed) |
1090 | 6059884 res/wK.9.png (OK) |
1091 | 6060136 res/wL.9.png (OK) |
1092 | 6060368 res/wN.png (OK) |
1093 | 6060632 res/wT.png (OK) |
1094 | 6060940 res/wW.png (OK) |
1095 | 6061139 res/wW.xml (OK - compressed) |
1096 | 6061465 res/wY.xml (OK - compressed) |
1097 | 6061832 res/wi.9.png (OK) |
1098 | 6063604 res/wi.png (OK) |
1099 | 6063780 res/wi1.9.png (OK) |
1100 | 6065063 res/wn.xml (OK - compressed) |
1101 | 6065513 res/wo.xml (OK - compressed) |
1102 | 6065887 res/wz.xml (OK - compressed) |
1103 | 6066312 res/x1.xml (OK - compressed) |
1104 | 6066596 res/x5.9.png (OK) |
1105 | 6066984 res/xB.png (OK) |
1106 | 6068280 res/xC.png (OK) |
1107 | 6068436 res/xH.png (OK) |
1108 | 6084800 res/xM.png (OK) |
1109 | 6088667 res/xT.xml (OK - compressed) |
1110 | 6089244 res/xp.png (OK) |
1111 | 6095939 res/xs.xml (OK - compressed) |
1112 | 6096368 res/xy.xml (OK - compressed) |
1113 | 6096918 res/y9.xml (OK - compressed) |
1114 | 6097294 res/yC.xml (OK - compressed) |
1115 | 6098276 res/yO.9.png (OK) |
1116 | 6098537 res/yP.xml (OK - compressed) |
1117 | 6099128 res/yR.xml (OK - compressed) |
1118 | 6100128 res/yX.png (OK) |
1119 | 6104478 res/ya.xml (OK - compressed) |
1120 | 6105453 res/yf.xml (OK - compressed) |
1121 | 6105788 res/yw.png (OK) |
1122 | 6107592 res/yx.xml (OK - compressed) |
1123 | 6108058 res/z1.xml (OK - compressed) |
1124 | 6108297 res/z3.xml (OK - compressed) |
1125 | 6108568 res/z6.png (OK) |
1126 | 6109472 res/z61.png (OK) |
1127 | 6110656 res/zH.xml (OK - compressed) |
1128 | 6111179 res/zH1.xml (OK - compressed) |
1129 | 6111727 res/zH2.xml (OK - compressed) |
1130 | 6112191 res/zL.xml (OK - compressed) |
1131 | 6112511 res/zq.xml (OK - compressed) |
1132 | 6112936 res/zt.png (OK) |
1133 | 6117416 resources.arsc (OK) |
1134 | Verification succesful |
1135 | Signing APK |
1136 | Sign concluded with exit status 0 |
1137 |
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-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] |
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 |
1 | Found 7.5.1 via distributionUrl |
---|---|
2 | Running /home/phabricator-android-builder/versions/7.5.1/bin/gradle --stacktrace assembleGitpull |
3 | > Task :app:buildKotlinToolingMetadata |
4 | > Task :app:preBuild UP-TO-DATE |
5 | > Task :app:preGitpullBuild UP-TO-DATE |
6 | > Task :app:compileGitpullAidl NO-SOURCE |
7 | > Task :app:compileGitpullRenderscript NO-SOURCE |
8 | > Task :app:generateGitpullBuildConfig |
9 | > Task :app:generateGitpullResValues |
10 | > Task :app:checkGitpullAarMetadata |
11 | > Task :app:mapGitpullSourceSetPaths |
12 | > Task :app:generateGitpullResources |
13 | > Task :app:createGitpullCompatibleScreenManifests |
14 | > Task :app:extractDeepLinksGitpull |
15 | > Task :app:mergeGitpullResources |
16 | |
17 | > Task :app:processGitpullMainManifest |
18 | /var/drydock/workingcopy-79/repo/libre-busto/app/src/gitpull/AndroidManifest.xml:39:9-45:51 Warning: |
19 | provider#org.acra.attachment.AcraContentProvider@android:authorities was tagged at AndroidManifest.xml:39 to replace other declarations but no other declaration present |
20 | |
21 | > Task :app:processGitpullManifest |
22 | > Task :app:extractProguardFiles |
23 | > Task :app:javaPreCompileGitpull |
24 | > Task :app:mergeGitpullJniLibFolders |
25 | > Task :app:mergeGitpullNativeLibs NO-SOURCE |
26 | > Task :app:stripGitpullDebugSymbols NO-SOURCE |
27 | > Task :app:extractGitpullNativeSymbolTables NO-SOURCE |
28 | > Task :app:mergeGitpullNativeDebugMetadata NO-SOURCE |
29 | > Task :app:processGitpullManifestForPackage |
30 | > Task :app:checkGitpullDuplicateClasses |
31 | > Task :app:desugarGitpullFileDependencies |
32 | > Task :app:mergeGitpullShaders |
33 | > Task :app:compileGitpullShaders NO-SOURCE |
34 | > Task :app:generateGitpullAssets UP-TO-DATE |
35 | > Task :app:mergeGitpullAssets |
36 | > Task :app:compressGitpullAssets |
37 | > Task :app:processGitpullJavaRes NO-SOURCE |
38 | > Task :app:collectGitpullDependencies |
39 | > Task :app:sdkGitpullDependencyData |
40 | > Task :app:writeGitpullAppMetadata |
41 | > Task :app:writeGitpullSigningConfigVersions |
42 | > Task :app:mergeGitpullArtProfile |
43 | > Task :app:processGitpullResources |
44 | > Task :app:optimizeGitpullResources |
45 | > Task :app:kaptGenerateStubsGitpullKotlin |
46 | |
47 | > Task :app:kaptGitpullKotlin |
48 | /var/drydock/workingcopy-79/repo/libre-busto/app/build/tmp/kapt3/stubs/gitpull/it/reyboz/bustorino/data/gtfs/GtfsAgency.java:26: 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: /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: /var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/fragments/LinesDetailFragment.kt: (73, 13): Variable 'USGS_SAT' is never used |
55 | w: /var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/map/BusInfoWindow.kt: (41, 36): Parameter 'view' is never used, could be renamed to _ |
56 | w: /var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/map/BusInfoWindow.kt: (41, 42): Parameter 'motionEvent' is never used, could be renamed to _ |
57 | |
58 | > Task :app:compileGitpullJavaWithJavac |
59 | |
60 | > Task :app:dexBuilderGitpull |
61 | > Task :app:mergeGitpullJavaResource |
62 | > Task :app:lintVitalAnalyzeGitpull |
63 | > Task :app:mergeDexGitpull |
64 | > Task :app:compileGitpullArtProfile |
65 | > Task :app:packageGitpull |
66 | > Task :app:createGitpullApkListingFileRedirect |
67 | Daemon will be stopped at the end of the build after running out of JVM memory |
68 | > Task :app:lintVitalReportGitpull |
69 | |
70 | > Task :app:lintVitalGitpull |
71 | |
72 | > Task :app:assembleGitpull |
73 | |
74 | BUILD SUCCESSFUL in 2m 37s |
75 | 39 actionable tasks: 39 executed |
76 |
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 (subsequent builds will be faster) |
4 | > Task :app:clean |
5 | |
6 | BUILD SUCCESSFUL in 16s |
7 | 1 actionable task: 1 executed |
8 |
Passed |
Passed |