Skip to content

Latest commit

 

History

History
72 lines (53 loc) · 2.54 KB

File metadata and controls

72 lines (53 loc) · 2.54 KB

Perry Builder (macOS)

Build worker for the Perry ecosystem, targeting macOS, iOS, 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 (.app / .ipa / .apk)
   │                        ├─ sign (codesign / keystore)
   │  ◄── progress/logs ────├─ publish (App Store / 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: compilepackagesign → (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-ship

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 ["macos", "ios", "android"] to the hub:

  • macOS.app bundle with code signing and optional notarization
  • iOS.ipa with provisioning profile, optional App Store upload
  • Android.apk/.aab via Gradle, keystore signing, optional Play Store upload

Prerequisites

  • Perry compiler
  • Xcode + command line tools (for macOS/iOS builds)
  • Android SDK + NDK (for Android builds)
  • Apple Developer account credentials (for signing/publishing)

Related Repos

License

MIT