Build worker for the Perry ecosystem, targeting Windows. Connects to Perry Hub via WebSocket, receives build jobs, and returns signed executables and installers.
Perry Hub ──WebSocket──► This Worker
│ │
│ job_assign ├─ compile (perry compiler)
│ (manifest + tarball) ├─ package (NSIS / MSIX / ZIP)
│ ├─ sign (signtool / Azure / KMS)
│ ◄── progress/logs ────┘
│ ◄── artifacts
- Worker connects to hub, sends
worker_hellowith platform capabilities - Hub assigns a job with manifest, credentials, and tarball
- Worker runs: compile → assets → bundle → sign → package
- Progress and logs stream back to hub in real-time
- Built artifacts are uploaded for CLI download
cargo build --releaseset PERRY_BUILD_PERRY_BINARY=C:\path\to\perry.exe
set PERRY_HUB_URL=wss://hub.perryts.com/ws
.\target\release\perry-ship-windows.exe| 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_WINDOWS_SDK_PATH |
auto-detect | Windows SDK path override |
PERRY_BUILD_NSIS_PATH |
auto-detect | NSIS installation path override |
Set windows_distribute in the build manifest:
| Mode | Output | Description |
|---|---|---|
installer (default) |
Setup.exe | NSIS installer with Start Menu/Desktop shortcuts and uninstaller |
msix |
.msix | Modern Windows package via MakeAppx.exe |
portable |
.zip | ZIP containing the .exe and DLLs |
Three signing methods are supported, configured via build credentials:
- PFX — Local
.pfxcertificate withsigntool.exe - Azure Trusted Signing — Cloud-based signing via
AzureSignTool - Google Cloud KMS — Hardware-backed keys via KMS CNG provider
Optional build isolation via Windows Containers (PERRY_DOCKER_ENABLED=true):
- Compile and packaging steps run inside disposable containers
- Signing stays on the host (credentials never enter containers)
- Containers run with
--network=noneand are destroyed after each step
- Perry compiler
- Windows SDK (for signtool.exe, MakeAppx.exe)
- NSIS (for installer creation)
- Optional: AzureSignTool, Docker (Windows Containers)
- perry — The Perry compiler and CLI
- hub — Central build server
- builder-macos — macOS/iOS build worker
- builder-linux — Linux build worker
MIT