halkyon/apps/train/release.dart
Tizian 「ティツィアーン」 551a29445f
build(train): Train on the desktop as a snap, to the Store's edge channel with each release (ADR 0030, D62)
Built as Todo's in a clone of its own, from apps/train/snap/, for train.halkyon.eu; its
listing says the desktop shows, plans and keeps the statistics, and records nothing.
The snap tests now hold every snap built in a clone of its own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-03 12:16:05 +01:00

44 lines
1.9 KiB
Dart

// How Halkyon Train is released (`dart run tool/release.dart train`): the
// release tool's configuration of it, registered in tool/src/release/apps.dart.
import '../../tool/src/release/app_release.dart';
/// Halkyon Train's releases: the APK alone (Train is Android's: Health
/// Connect, the recorder's foreground service, the Polar Loop), connecting
/// to train.halkyon.eu, published on code.halkyon.app and in the project's
/// F-Droid repository beside Learn.
const trainRelease = AppRelease(
id: 'train',
name: 'Halkyon Train',
applicationId: 'app.halkyon.train',
directory: 'apps/train',
flutterPackage: 'apps/train/halkyon_train_flutter',
artifactName: 'halkyon-train',
serverUrl: 'https://train.halkyon.eu/',
forgejo: 'https://code.halkyon.app',
repository: 'project-halkyon/halkyon',
// A PKCS #12 keystore of its own outside the repository (also in the
// maintainer's password manager), as Learn's: it is the app's identity, and
// lost, installed apps can't be updated.
android: AndroidSigning(
certificateFile: 'tool/release/train-android-certificate.sha256',
keystoreVariable: 'HALKYON_TRAIN_ANDROID_KEYSTORE',
defaultKeystore: '.local/share/halkyon-train/android-release.p12',
aliasVariable: 'HALKYON_TRAIN_ANDROID_KEY_ALIAS',
defaultAlias: 'halkyon-train',
),
fdroid: FdroidListing(
script: 'tool/fdroid_repo.sh',
listing: 'tool/release/fdroid',
indexCertificateFile: 'tool/release/fdroid-index-certificate.sha256',
repositoryUrl: 'https://halkyon.app/fdroid/repo',
),
// The desktop's Train (ADR 0030, D62), built in a clone of its own as
// Todo's (`SnapRelease.projectPath`), the root's snap/ being Learn's; to the
// Store's edge channel, its name registered on 3 Oct 2026.
snap: SnapRelease(
name: 'halkyon-train',
part: 'halkyon-train',
directory: 'apps/train/snap',
storeChannel: 'edge',
),
);