Skip to content

Latest commit

 

History

History
78 lines (57 loc) · 2.6 KB

File metadata and controls

78 lines (57 loc) · 2.6 KB

Perry Builder (Linux)

Build worker for the Perry ecosystem, targeting Linux and Android. Connects to Perry Hub via WebSocket, receives build jobs, and returns signed artifacts.

How It Works

Perry Hub ──WebSocket──► This Worker
   │                        │
   │  job_assign            ├─ compile (perry compiler)
   │  (manifest + tarball)  ├─ package (AppImage / .deb / .apk)
   │                        ├─ sign (keystore)
   │  ◄── progress/logs ────├─ publish (Play Store)
   │  ◄── artifacts ────────┘
  1. Worker connects to hub, sends worker_hello with platform capabilities
  2. Hub assigns a job with manifest, credentials, and tarball
  3. Worker runs: compilepackage → (optional) sign → (optional) publish
  4. Progress and logs stream back to hub in real-time
  5. Built artifacts are uploaded for CLI download

Building

cargo build --release

Running

PERRY_BUILD_PERRY_BINARY=/path/to/perry \
PERRY_HUB_URL=wss://hub.perryts.com/ws \
./target/release/perry-builder-linux

Configuration

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

Capabilities

This worker advertises ["linux", "android"] to the hub:

  • Linux — AppImage (default), .deb, or .tar.gz
  • Android.apk/.aab via Gradle, keystore signing, optional Play Store upload

Linux Packaging Formats

Format Tool Required Notes
AppImage appimagetool Default, portable single-file
.deb dpkg-deb Debian/Ubuntu package
.tar.gz (none) Simple archive

Prerequisites

  • Perry compiler
  • Android SDK + NDK (for Android builds)
  • appimagetool (for AppImage packaging)

Related Repos

License

MIT