Appearance
Release Scripts
The scripts/release/ directory contains automated release pipelines for both server and mobile.
Server Release (release/server.ts)
Interactive pipeline that tests, bumps the version, builds, and pushes a tagged release.
bash
bun commit # interactive (prompts for type + message)
bun commit patch # prompts for message only
bun commit patch "Fix important bug" # runs directlyPipeline:
- Prompt for bump type (major / minor / patch) and commit message
- Run server tests (
bun test) - Run contract tests (
scripts/test/contracts.ts) - Bump
VERSIONandBUILD_DATEinserver/src/server.ts - Build (frontend + embeds + Linux binaries via
scripts/build/server.sh) - Binary smoke test (included in build step)
- Git commit, tag (
vX.Y.Z), and push
If any step fails, the pipeline aborts before the git commit — a broken build never gets tagged.
Mobile Release (release/mobile.ts)
Interactive pipeline for mobile app releases.
bash
bun release:mobile # interactive
bun release:mobile patch # prompts for message only
bun release:mobile patch "Fix navigation bug" # runs directlyPipeline:
- Prompt for bump type and commit message
- Run server tests
- Run contract tests
- Run Flutter analyze
- Run Flutter tests
- Bump
versionandbuildinmobile/pubspec.yaml - Build Android AAB (if SDK configured)
- Build iOS IPA (macOS only, if Xcode signing configured)
- Git commit, tag (
mobile-vX.Y.Z), and push - Print store upload checklist (Google Play + App Store)
Version Sources
- Server version:
const VERSIONinserver/src/server.ts - Mobile version:
version:field inmobile/pubspec.yaml - Both use semantic versioning (
MAJOR.MINOR.PATCH)