Build worker for the Perry ecosystem, targeting Linux and Android. Connects to Perry Hub via WebSocket, receives build jobs, and returns signed artifacts.
Perry Hub ──WebSocket──► This Worker
│ │
│ job_assign ├─ compile (perry compiler)
│ (manifest + tarball) ├─ package (AppImage / .deb / .apk)
│ ├─ sign (keystore)
│ ◄── progress/logs ────├─ publish (Play Store)
│ ◄── artifacts ────────┘
- Worker connects to hub, sends
worker_hellowith platform capabilities - Hub assigns a job with manifest, credentials, and tarball
- Worker runs: compile → package → (optional) sign → (optional) publish
- Progress and logs stream back to hub in real-time
- Built artifacts are uploaded for CLI download
cargo build --releasePERRY_BUILD_PERRY_BINARY=/path/to/perry \
PERRY_HUB_URL=wss://hub.perryts.com/ws \
./target/release/perry-builder-linux| Variable | Default | Description |
|---|---|---|
PERRY_HUB_URL |
wss://hub.perryts.com/ws |
Hub WebSocket URL |
PERRY_HUB_WORKER_SECRET |
(empty) | Shared secret for hub authentication |
PERRY_BUILD_PERRY_BINARY |
perry |
Path to the Perry compiler binary |
PERRY_WORKER_NAME |
hostname | Worker display name |
PERRY_BUILD_ANDROID_HOME |
$ANDROID_HOME |
Android SDK path |
PERRY_BUILD_ANDROID_NDK_HOME |
$ANDROID_NDK_HOME |
Android NDK path |
This worker advertises ["linux", "android"] to the hub:
- Linux — AppImage (default),
.deb, or.tar.gz - Android —
.apk/.aabvia Gradle, keystore signing, optional Play Store upload
| Format | Tool Required | Notes |
|---|---|---|
| AppImage | appimagetool |
Default, portable single-file |
.deb |
dpkg-deb |
Debian/Ubuntu package |
.tar.gz |
(none) | Simple archive |
- Perry compiler
- Android SDK + NDK (for Android builds)
appimagetool(for AppImage packaging)
- perry — The Perry compiler and CLI
- hub — Central build server
- builder-macos — macOS/iOS build worker
- builder-windows — Windows build worker
MIT