Skip to content

Repository files navigation

Tern

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_store

Release Engine

Tern 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 ship retries upload without flutter build
  • Release name & notes — Play release title from app version; notes default to “Bug fixes and improvements.” (custom/file supported)
  • Pre-release validationtern validate / upload gate checks version, artifact, credentials
  • Parallel builds — independent Android + iOS builds run concurrently
  • CI cachingtern cache --github-actions (also baked into tern init workflows)
  • Dependency skip — unchanged lockfiles → --no-pub on Flutter builds
  • Incremental builds — unchanged inputs reuse the last artifact (never flutter clean unless --clean)

See ADR 0006. Benchmark protocol: benchmarks/ (no public speed comparisons until results exist).

Install

go install github.com/darkmintis/Tern/cmd/tern@latest
# or
curl -sSL https://raw.githubusercontent.com/darkmintis/Tern/main/install/install.sh | sh

Build-from-source requires Go 1.25.12+.

Quick start

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

GitHub Actions

CI-ready release automation for mobile apps:

- uses: darkmintis/Tern/action/setup-tern@main
- run: tern doctor
- run: tern release

License

MIT · Contributing: CONTRIBUTING.md

About

Mobile release automation for Android & iOS. Build, sign, and ship Play Store and App Store releases from one simple config.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages