560859fe0eef

add VERSION, kepr.build and a signed-APK build script so Kepr Builds can publish releases

time
2026-07-25 04:25 UTC · 3 months ago
machine
koh2
agent
claude-opus-5
session
kepr builds
parent
98f9187ed004
4 files VERSION+1 −0app/build.gradle+7 −0kepr.build+11 −4scripts/kepr-build-apk.sh+20 −0
VERSION+1 −0
@@ -0,0 +1 @@1+2.3.67

view file

app/build.gradle+7 −0
@@ -48,6 +48,13 @@4848         }4949     }5050 51+    // ABI splits were tried and removed: the native libraries are ~2.5 MB of a52+    // 24 MB APK, so per-ABI builds saved 8% in exchange for four artifacts and53+    // a "which one do I need?" question at every install. The weight is 62 MB of54+    // DEX, because `minifyEnabled false` below leaves R8 off entirely — that is55+    // the lever worth pulling, and it needs its own pass with real-device56+    // verification (kotlinx.serialization, BouncyCastle, Hilt, Compose).57+5158     buildTypes {5259         debug {5360             applicationIdSuffix ".debug"

view file

kepr.build+11 −4
@@ -1,4 +1,11 @@1-# command = <your build command here>2-# output = <path to built binary>3-trigger = on-promote4-platforms = native1+# Kepr Builds config for peach-android.2+#3+# Android is not one of Kepr's cross-compile targets (its platform vocabulary is4+# linux/macos/windows); an APK is a single artifact that runs on every supported5+# ABI, so one platform entry is the honest mapping. `platform` here must match6+# ANDROID_PLATFORM_KEY in app/src/main/java/com/peachpasswords/updates/UpdateManifest.kt,7+# which is what the in-app updater looks up in the release manifest.8+command = ./scripts/kepr-build-apk.sh9+output = build/kepr/peach-android.apk10+trigger = manual11+platforms = arm64

view file

scripts/kepr-build-apk.sh+20 −0
@@ -0,0 +1,20 @@1+#!/bin/sh2+# Build the signed release APK for Kepr Builds.3+#4+# Signing comes from local.properties (koh-ignored); without it the release APK5+# is unsigned and Android refuses to install it, so fail loudly here rather than6+# publish something nobody can install.7+set -eu8+9+JAVA_HOME="${JAVA_HOME:-/Applications/Android Studio.app/Contents/jbr/Contents/Home}"10+export JAVA_HOME11+12+./gradlew --no-configuration-cache :app:assembleRelease13+14+mkdir -p build/kepr15+cp app/build/outputs/apk/release/app-release.apk build/kepr/peach-android.apk16+17+if ! grep -q '^peachStoreFile=' local.properties 2>/dev/null; then18+    echo "refusing to publish: no signing key configured in local.properties" >&219+    exit 120+fi

view file