Pipeline Script
scripts/pipeline.ts is the glue between Actions and local reproduction. Effect-based: expected failures are tagged errors mapped to exit 1. Run via mise run pipeline:<cmd>.
| Command | Input | Output | Used in |
|---|---|---|---|
android-codegen |
— | Generated Kotlin, gradle config, rustls-platform-verifier.aar |
CI android-test, first local checkout |
sync-version <version> |
version arg (v prefix allowed) |
Updated tauri.conf.json / Cargo.toml |
Start of release |
download-sdk |
env SDK_URL |
app/libs/discord_partner_sdk.aar |
Release (before the Android build) |
keystore |
env ANDROID_KEYSTORE_BASE64 etc. |
$RUNNER_TEMP/release.keystore + handoff via GITHUB_ENV |
Release (before signing) |
release-notes <version> |
CHANGELOG.md | .release-notes.md |
Release |
update-json <version> |
MSI/APK, .sig, env GITHUB_REPOSITORY |
update.json / update-android.json (+ $RUNNER_TEMP/pages/) |
Release |
checksums |
MSI/APK, env KEYSTORE_FILE etc. |
MSI .sha256, apk-signing-fingerprint.txt |
Release |
android-codegen
Section titled “android-codegen”gen/android itself is tracked, but tauri.*.gradle*, generated/ Kotlin, and libs/rustls-platform-verifier.aar are git-ignored. The command resolves tauri / wry locations via cargo metadata and expands {{package}} templates to restore them. Tests: mise run pipeline:test (node --test scripts/pipeline.test.ts).
download-sdk / keystore
Section titled “download-sdk / keystore”download-sdkretries only transient failures (408/429/5xx, network errors) with exponential backoff, 4 times. Files under 10MB or withoutAndroidManifest.xmlfail validation without retry.keystorechecks the Base64 magic and verifies the password withkeytool -list, failing early on broken secrets instead of at build time. It needsGITHUB_ENV, so it is CI-only.
release-notes / update-json / checksums
Section titled “release-notes / update-json / checksums”release-notesextracts the## [version]section, with a fallback body when absent.update-jsonrenames the APK towsa-rpc-bridge_<version>_android_arm64.apkand splits desktop (platforms.windows-x86_64requires bothsignatureandurl) from Android. It appends a bilingual download guide to.release-notes.md.checksumswrites MSI SHA-256 files and the APK signing certificate’s SHA-256 fingerprint (parsed fromkeytool -list -v). Without an APK or keystore (e.g. locally), it warns and skips.