Mobile release automation CLI for Android & iOS — an optimized release engine to build, sign, and ship apps to Google Play and the App Store / TestFlight from one simple config (Ternfile).
v0 supports Flutter end-to-end (bump → sign → build → validate → Play / TestFlight).
Native, KMP, and React Native packages are scaffolds for later — see docs/adapters.md.
tern init
tern doctor
tern release --dry-run
tern release
# retry upload without rebuild:
tern ship last --to play_storeTern focuses on the path from commit → store:
- Selective builds — only platforms your lane needs; AAB by default (APK on request)
- Artifact-first — successful builds land in
.tern/artifacts/;tern shipretries upload withoutflutter build - Release name & notes — Play release title from app version; notes default to “Bug fixes and improvements.” (custom/file supported)
- Pre-release validation —
tern validate/ upload gate checks version, artifact, credentials - Parallel builds — independent Android + iOS builds run concurrently
- CI caching —
tern cache --github-actions(also baked intotern initworkflows) - Dependency skip — unchanged lockfiles →
--no-pubon Flutter builds - Incremental builds — unchanged inputs reuse the last artifact (never
flutter cleanunless--clean)
See ADR 0006. Benchmark protocol: benchmarks/ (no public speed comparisons until results exist).
go install github.com/darkmintis/Tern/cmd/tern@latest
# or
curl -sSL https://raw.githubusercontent.com/darkmintis/Tern/main/install/install.sh | shBuild-from-source requires Go 1.25.12+.
Simple setup: docs/setup.md
Play credentials: docs/play-setup.md
Full walkthrough: docs/getting-started.md
Env vars: docs/ENV.md
Troubleshooting: docs/TROUBLESHOOTING.md
Copy-paste configs: examples/
lane release:
bump version patch
sign android with keystore env:ANDROID_KEYSTORE
build android release
upload android to play_store track:internal
tag git prefix:v
CI-ready release automation for mobile apps:
- uses: darkmintis/Tern/action/setup-tern@main
- run: tern doctor
- run: tern releaseMIT · Contributing: CONTRIBUTING.md