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 8602737 Feb 7 18:44 ./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/D154-libre-busto.apk |
11 | Adding bipbop Comment to D154 |
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 $?"
1221 | 7209304 res/yg.9.png (OK) |
---|---|
1222 | 7209739 res/yj.xml (OK - compressed) |
1223 | 7210136 res/yn.png (OK) |
1224 | 7212620 res/z-.9.png (OK) |
1225 | 7212884 res/z9.9.png (OK) |
1226 | 7213344 res/zE.png (OK) |
1227 | 7213708 res/zG.xml (OK - compressed) |
1228 | 7214028 res/zL.png (OK) |
1229 | 7214276 res/zP.png (OK) |
1230 | 7232236 res/zR.png (OK) |
1231 | 7235037 res/zR.xml (OK - compressed) |
1232 | 7235528 res/zV.9.png (OK) |
1233 | 7238032 res/zZ.png (OK) |
1234 | 7244727 res/zc.xml (OK - compressed) |
1235 | 7245177 res/zp.xml (OK - compressed) |
1236 | 7245435 res/zq.xml (OK - compressed) |
1237 | 7245744 res/zr.png (OK) |
1238 | 7248563 res/zu.xml (OK - compressed) |
1239 | 7249592 res/zz.png (OK) |
1240 | 7250516 res/zz.xml (OK - compressed) |
1241 | 7250708 resources.arsc (OK) |
1242 | Verification succesful |
1243 | Signing APK |
1244 | Sign concluded with exit status 0 |
1245 |
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 |
94 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:185:89 'TEMPORARILY_UNAVAILABLE: Int' is deprecated. Deprecated in Java |
---|---|
95 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:187:34 'LocationProvider' is deprecated. Deprecated in Java |
96 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:187:51 'AVAILABLE: Int' is deprecated. Deprecated in Java |
97 | w: file:///var/drydock/workingcopy-79/repo/libre-busto/app/src/main/java/it/reyboz/bustorino/middleware/AppLocationManager.kt:215:48 'Criteria' is deprecated. Deprecated in Java |
98 | |
99 | > Task :app:compileGitpullJavaWithJavac |
100 | |
101 | > Task :app:dexBuilderGitpull |
102 | > Task :app:mergeGitpullGlobalSynthetics |
103 | > Task :app:processGitpullJavaRes |
104 | > Task :app:mergeGitpullJavaResource |
105 | > Task :app:mergeDexGitpull |
106 | > Task :app:lintVitalAnalyzeGitpull |
107 | > Task :app:compileGitpullArtProfile |
108 | > Task :app:packageGitpull |
109 | > Task :app:createGitpullApkListingFileRedirect |
110 | > Task :app:lintVitalReportGitpull |
111 | |
112 | > Task :app:lintVitalGitpull |
113 | |
114 | > Task :app:assembleGitpull |
115 | |
116 | BUILD SUCCESSFUL in 4m 43s |
117 | 42 actionable tasks: 42 executed |
118 |
Passed |
Clean Gradle directory to avoid nasty errors like:
1 | Found 8.1 via distributionUrl |
---|---|
2 | Downloading missing gradle version 8.1 |
3 | cachedir |
4 | /tmp/tmp.AAAHnHkNh9/gradle-8.1-bin.zip: OK |
5 | Running /home/phabricator-android-builder/versions/8.1/bin/gradle clean |
6 | |
7 | Welcome to Gradle 8.1! |
8 | |
9 | Here are the highlights of this release: |
10 | - Stable configuration cache |
11 | - Experimental Kotlin DSL assignment syntax |
12 | - Building with Java 20 |
13 | |
14 | For more details see https://docs.gradle.org/8.1/release-notes.html |
15 | |
16 | Starting a Gradle Daemon (subsequent builds will be faster) |
17 | > Task :app:clean |
18 | |
19 | BUILD SUCCESSFUL in 52s |
20 | 1 actionable task: 1 executed |
21 |
Passed |
Passed |