ci(release): pre-clone app into fdroid build dir so SOURCE_DATE_EPOCH resolves; fail fast unless 3 APKs
This commit is contained in:
parent
06e2ad29c9
commit
0763047d02
1 changed files with 19 additions and 0 deletions
|
|
@ -152,12 +152,31 @@ jobs:
|
||||||
sed -i "s#^\( *commit: \).*#\1${GITHUB_SHA}#" metadata/org.comunes.tane.yml
|
sed -i "s#^\( *commit: \).*#\1${GITHUB_SHA}#" metadata/org.comunes.tane.yml
|
||||||
sed -i '/^ *binary: /d' metadata/org.comunes.tane.yml
|
sed -i '/^ *binary: /d' metadata/org.comunes.tane.yml
|
||||||
|
|
||||||
|
# Pre-clone the app into fdroid's build dir: fdroidserver computes
|
||||||
|
# SOURCE_DATE_EPOCH from this checkout BEFORE it clones anything — on a
|
||||||
|
# fresh dir it falls back to `git log` of the fdroiddata tree, which our
|
||||||
|
# assembled skeleton doesn't have, and crashes on None. With the clone in
|
||||||
|
# place the primary path pins SOURCE_DATE_EPOCH to the app commit
|
||||||
|
# timestamp (deterministic; the public URL is redirected to forgejo:3000
|
||||||
|
# by the insteadOf rule above).
|
||||||
|
mkdir -p build
|
||||||
|
git clone -q https://git.comunes.org/comunes/tane.git build/org.comunes.tane
|
||||||
|
git -C build/org.comunes.tane checkout -q "${GITHUB_SHA}"
|
||||||
|
|
||||||
# 5) Build the three per-ABI splits with F-Droid's own toolchain.
|
# 5) Build the three per-ABI splits with F-Droid's own toolchain.
|
||||||
fdroid build --verbose --no-tarball \
|
fdroid build --verbose --no-tarball \
|
||||||
"org.comunes.tane:$((base * 10 + 1))" \
|
"org.comunes.tane:$((base * 10 + 1))" \
|
||||||
"org.comunes.tane:$((base * 10 + 2))" \
|
"org.comunes.tane:$((base * 10 + 2))" \
|
||||||
"org.comunes.tane:$((base * 10 + 3))"
|
"org.comunes.tane:$((base * 10 + 3))"
|
||||||
|
|
||||||
|
# `fdroid build` exits 0 even when builds fail — demand the 3 APKs.
|
||||||
|
apk_count=$(ls unsigned/org.comunes.tane_*.apk 2>/dev/null | wc -l)
|
||||||
|
if [ "$apk_count" -ne 3 ]; then
|
||||||
|
echo "expected 3 unsigned APKs, got $apk_count" >&2
|
||||||
|
tail -n 80 logs/*.log 2>/dev/null || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# 6) Sign each unsigned APK with tane-upload and attach to the Forgejo release.
|
# 6) Sign each unsigned APK with tane-upload and attach to the Forgejo release.
|
||||||
apksigner=$(find "$ANDROID_HOME" -name apksigner -type f 2>/dev/null | sort -V | tail -1)
|
apksigner=$(find "$ANDROID_HOME" -name apksigner -type f 2>/dev/null | sort -V | tail -1)
|
||||||
if [ -z "$apksigner" ]; then
|
if [ -z "$apksigner" ]; then
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue