// 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', ), );