Auto-commit after successful build: improve build setup

Changed files:\nCreateUploadKey.sh
app/build.gradle.kts
This commit is contained in:
Joe Tretter
2026-04-24 20:20:39 -05:00
parent 7fff81b1f5
commit 46162ed6e2
2 changed files with 101 additions and 2 deletions

99
CreateUploadKey.sh Executable file
View File

@@ -0,0 +1,99 @@
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
KEYSTORE_PROPERTIES="$SCRIPT_DIR/keystore.properties"
log() {
printf '\n[%s] %s\n' "create-upload-key" "$1"
}
fail() {
echo "$1" >&2
exit 1
}
require_tool() {
if ! command -v "$1" >/dev/null 2>&1; then
fail "Missing required tool: $1"
fi
}
get_property() {
local key="$1"
python - "$KEYSTORE_PROPERTIES" "$key" <<'PY'
from pathlib import Path
import sys
path = Path(sys.argv[1])
target_key = sys.argv[2]
for raw_line in path.read_text().splitlines():
line = raw_line.strip()
if not line or line.startswith('#'):
continue
if '=' not in line:
continue
key, value = line.split('=', 1)
if key.strip() == target_key:
print(value.strip())
break
PY
}
ensure_required_property() {
local key="$1"
local value="$2"
if [ -z "$value" ]; then
fail "Missing required property '$key' in $KEYSTORE_PROPERTIES"
fi
}
main() {
require_tool keytool
require_tool python
if [ ! -f "$KEYSTORE_PROPERTIES" ]; then
fail "Missing $KEYSTORE_PROPERTIES. Create it from keystore.properties.example first."
fi
local store_file
local store_password
local key_alias
local key_password
store_file="$(get_property storeFile)"
store_password="$(get_property storePassword)"
key_alias="$(get_property keyAlias)"
key_password="$(get_property keyPassword)"
ensure_required_property storeFile "$store_file"
ensure_required_property storePassword "$store_password"
ensure_required_property keyAlias "$key_alias"
ensure_required_property keyPassword "$key_password"
if [ -f "$store_file" ]; then
fail "Keystore already exists at $store_file. Delete or move it first if you want to regenerate it."
fi
mkdir -p "$(dirname "$store_file")"
log "Creating upload keystore at $store_file"
keytool -genkeypair \
-v \
-keystore "$store_file" \
-storepass "$store_password" \
-alias "$key_alias" \
-keypass "$key_password" \
-keyalg RSA \
-keysize 2048 \
-validity 10000 \
-dname "CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, S=Unknown, C=US"
log "Upload keystore created successfully"
log "Back up both the keystore file and the matching keystore.properties secrets"
}
main "$@"

View File

@@ -19,8 +19,8 @@ android {
applicationId = "solutions.tretter.githugandroid" applicationId = "solutions.tretter.githugandroid"
minSdk = 26 minSdk = 26
targetSdk = 34 targetSdk = 34
versionCode = 83 versionCode = 87
versionName = "0.1.82" versionName = "0.1.86"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true vectorDrawables.useSupportLibrary = true