with one click
skymap-build
// Build, test, deploy, and manage data generation for Sky Map. Trigger on "build the app", "run tests", "deploy to device", "generate data", "run lint", or similar build/dev workflow requests.
// Build, test, deploy, and manage data generation for Sky Map. Trigger on "build the app", "run tests", "deploy to device", "generate data", "run lint", or similar build/dev workflow requests.
Use when asked to respond to, reply to, or draft replies for Google Play Store reviews for Sky Map. Triggers on "respond to reviews", "reply to reviews", "draft review replies", or any request to handle user feedback from the Play Store.
Make a new release of Sky Map and publish it to the Play Store.
Fully automated release note generator for Sky Map. Just provide the last tag.
Add a new deep-sky object or special object to Sky Map's catalog from a Wikipedia URL or user-supplied data. Handles all four required files. Trigger on "add object", "add nebula/galaxy/cluster", "add <object name> to Sky Map", etc. ARGUMENTS: "[wikipedia_url_or_object_name]"
Process and size an image for a Sky Map celestial info card. Prompts for an image (URL or local path), optional crop, and output filename, then converts to 480×800 WebP and saves to the correct assets directory. Trigger on "process celestial image", "add image for info card", "convert image for Sky Map", etc. ARGUMENTS: "[source_url_or_path] [category/output_name] [crop x1,y1,x2,y2]"
Fetches GitHub contributors for Sky Map and updates the app/src/main/res/values/notranslate-contributors.xml file. Trigger this when asked to "sync contributors", "update contributors", or "refresh credits".
| name | skymap.build |
| description | Build, test, deploy, and manage data generation for Sky Map. Trigger on "build the app", "run tests", "deploy to device", "generate data", "run lint", or similar build/dev workflow requests. |
Always set before building:
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export ANDROID_HOME=~/Library/Android/sdk
local.properties must exist in the repo root with sdk.dir=<path to Android SDK>.
You will also need a no-checkin.properties in the app folder. If using a new
git worktree you should attempt to copy these files out of the current main folder.
no-checkin.properties for release builds.Always specify the flavor. Never use bare assembleDebug.
Prefer to use the shell scripts:
# Full rebuild including data generation
./build.sh # Skip data regeneration
./build.sh -d # Build the debug version
./build.sh --full # GMS including data generation
./build.sh --fdroid # F-Droid
but you can also use gradlew directly:
# Debug APK
./gradlew :app:assembleGmsDebug
./gradlew :app:assembleFdroidDebug
# Release bundle
./gradlew :app:bundleGmsRelease
Prefer not using the -fullk option unless you are adding/removing strings.
# All unit tests
./gradlew test
# App module unit tests only
./gradlew app:test
# Instrumented tests (requires connected device/emulator)
./gradlew app:connectedAndroidTest
./gradlew lint
Run when modifying star catalogs or astronomical data:
cd tools
./generate.sh # Creates ASCII protocol buffers
./binary.sh # Converts to binary in app/src/main/assets/
./deploy.sh # Deploy to connected device or emulator
./deploy.sh -p # Deploy to a physical device
./deploy.sh -d # Deploy a debug build
./deploy.sh --frdroid # Deploy the fdroid build
./undeploy.sh # Uninstall the app
INSTALL_FAILED_UPDATE_INCOMPATIBLE: uninstall the Play Store version first — adb uninstall com.google.android.stardroidadb kill-server && adb start-server