61 lines
1.7 KiB
Bash
Executable File
61 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# publish-apk.sh — Build release APK and update OTA server files.
|
|
# Usage: ./deploy/publish-apk.sh [changelog message]
|
|
# Make executable: chmod +x deploy/publish-apk.sh
|
|
|
|
set -euo pipefail
|
|
|
|
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
OTA_DIR="$REPO_ROOT/deploy/ota-server/public"
|
|
VERSION_FILE="$OTA_DIR/version.json"
|
|
APK_SOURCE="$REPO_ROOT/apps/remote/build/app/outputs/flutter-apk/app-release.apk"
|
|
APK_DEST="$OTA_DIR/mirror-os-remote.apk"
|
|
|
|
CHANGELOG="${1:-Bug fixes and improvements}"
|
|
|
|
# --- Build the release APK ---
|
|
echo "Building release APK..."
|
|
cd "$REPO_ROOT/apps/remote"
|
|
flutter build apk --release
|
|
|
|
if [ ! -f "$APK_SOURCE" ]; then
|
|
echo "ERROR: APK not found at $APK_SOURCE"
|
|
exit 1
|
|
fi
|
|
|
|
# --- Copy APK to OTA public directory ---
|
|
echo "Copying APK to OTA server..."
|
|
cp "$APK_SOURCE" "$APK_DEST"
|
|
|
|
# --- Increment version in version.json ---
|
|
CURRENT_VERSION=$(python3 -c "import json; print(json.load(open('$VERSION_FILE'))['version'])")
|
|
NEW_VERSION=$((CURRENT_VERSION + 1))
|
|
|
|
python3 -c "
|
|
import json
|
|
|
|
data = {
|
|
'version': $NEW_VERSION,
|
|
'downloadUrl': 'http://192.168.86.172:9091/mirror-os-remote.apk',
|
|
'changelog': '''$CHANGELOG'''
|
|
}
|
|
|
|
with open('$VERSION_FILE', 'w') as f:
|
|
json.dump(data, f, indent=2)
|
|
f.write('\n')
|
|
"
|
|
|
|
echo ""
|
|
echo "Published version $NEW_VERSION"
|
|
echo " Changelog: $CHANGELOG"
|
|
echo " APK size: $(du -h "$APK_DEST" | cut -f1)"
|
|
echo ""
|
|
echo "--- Deploy instructions ---"
|
|
echo ""
|
|
echo "If running locally:"
|
|
echo " cd deploy/ota-server && docker compose up -d"
|
|
echo ""
|
|
echo "If deploying to homelab (192.168.86.172):"
|
|
echo " rsync -avz deploy/ota-server/ homelab:~/ota-server/"
|
|
echo " ssh homelab 'cd ~/ota-server && docker compose up -d'"
|