Build and tests¶
This page documents only the existing General Audience build paths used for published Android artifacts. No separate General Audience workflow is required: both established Android workflows expose the product_variant input.
Requirements¶
| Tool | Version / role |
|---|---|
| Node.js | 24 |
| npm | dependency installation and scripts |
| JDK | 21 for Android builds |
| Android SDK | API 36 and build-tools 36.0.0 |
| Python | badge asset generation |
| Pillow | pinned in tools/badges/requirements.txt |
Android builds run on the local self-hosted Windows worker with the labels [self-hosted, windows, x64].
General Audience web assets¶
Vite's general mode sets VITE_PRODUCT_VARIANT=general-audience at build time.
For Android synchronization, use:
Do not run the ordinary android:sync afterwards: it replaces the copied web assets with the full Recovery variant.
Debug APK¶
Use the existing workflow:
- Workflow:
Build Android debug APK - File:
.github/workflows/android-debug-apk.yml - Runner:
local - Product variant:
general-audience
The local job installs dependencies, runs smoke, UI and release-metadata tests, synchronizes the General Audience web assets and builds the debug APK. An optional protected update-signing key is used when configured.
Artifacts are stored on the worker under C:\SteadyBuilds\debug, including a numbered file and:
The equivalent direct local command is:
Signed closed-trial release¶
Use the existing workflow:
- Workflow:
Build signed closed-trial release - File:
.github/workflows/android-closed-trial.yml - Runner:
local - Product variant:
general-audience
The release job requires the protected signing secrets, runs the audit and complete test path, synchronizes the General Audience web assets, builds the signed APK and AAB, verifies the minified LiteRT JNI contract, verifies the APK signature and writes SHA-256 checksums.
Artifacts are stored under C:\SteadyBuilds\release with the variant in their names, including:
Steady-1.0.0-alpha.19-signed-closed-trial-general-audience-latest.apk
Steady-1.0.0-alpha.19-signed-closed-trial-general-audience-latest.aab
Steady-1.0.0-alpha.19-signed-closed-trial-general-audience-latest-SHA256SUMS.txt
Validation boundary¶
The General Audience build removes the built-in Alcohol and Pornography/compulsive-sexual-behavior profiles, the SPAA section, Inventory, favorite texts and Twelve-Step resources. The build retains the generic change-tracking model, custom change areas, counters, analytics, Toolbox, badges and Companion. CI verifies that the program-resource feature markers are absent from the generated JavaScript bundle.
Both product variants currently use the same Android applicationId; installing one replaces the other while retaining compatible local data.
Workflow policy¶
Use these two established workflows first. A new workflow is justified only for a clearly distinct, durable build use case that neither existing workflow can represent. Document that gap before adding one.