What is ReleasePilot?
ReleasePilot is an assisted release orchestrator designed to coordinate
yarn commands in a deterministic, auditable, and controlled way.
It was created for teams managing white-label applications,
where each release varies by platform, contractor, and environment.
It orchestrates existing commands — with intention, order, and checkpoints.
Core Concept
ReleasePilot executes commands following a strict naming convention:
yarn {platform}:{contractor}:{environment}:{command}
Example:
yarn android:quickup:beta:build
All low-level logic lives in package.json or scripts called by it.
ReleasePilot’s responsibility is to organize, order, and operate.
Project Structure
project-root/
├─ contractor/
│ ├─ quickup/
│ │ ├─ sandbox/
│ │ │ └─ config.json
│ │ ├─ beta/
│ │ │ └─ config.json
│ │ └─ prod/
│ │ └─ config.json
│ ├─ kompa/
│ │ ├─ sandbox/
│ │ └─ beta/
│ └─ sp/
│ └─ beta/
├─ package.json
└─ ...
These directories may be empty, but are intended to hold configuration, assets, or environment-specific parameters. The structure itself acts as a source of truth.
Defining Yarn Scripts
{
"scripts": {
"android:quickup:sandbox:add": "echo 'Preparing Android QuickUp Sandbox'",
"android:quickup:sandbox:build": "echo 'Building Android QuickUp Sandbox'",
"android:quickup:sandbox:deploy": "echo 'Deploying Android QuickUp Sandbox'",
"ios:quickup:sandbox:add": "echo 'Preparing iOS QuickUp Sandbox'",
"ios:quickup:sandbox:build": "echo 'Building iOS QuickUp Sandbox'",
"ios:quickup:sandbox:deploy": "echo 'Deploying iOS QuickUp Sandbox'"
}
}
Scripts should be deterministic and focused. ReleasePilot does not replace them — it coordinates them.
Installation
pip3 install release-pilot
The tool is executed directly via the terminal. There is no --help;
interaction happens through an interactive menu.
Using ReleasePilot
release-pilot
The tool will prompt you to select:
- Platform (android, ios, or all)
- Contractor (auto-discovered)
- Environment (per contractor)
- Command (add, build, deploy, or all)
Execution Plan & Assisted Flow
Before execution, ReleasePilot displays the full execution plan in the exact order it will run.
yarn android:quickup:beta:add
yarn android:quickup:beta:build
yarn ios:quickup:beta:add
yarn ios:quickup:beta:build
During execution, the process pauses between environments and contractors, awaiting explicit human confirmation.
Final Release Summary
Release Summary
Project : RELEASEPILOT
Version : main
Contractors : quickup, kompa
Environments: beta
Platforms : android, ios
Commands : 4
This summary enables auditability, traceability, and clear communication with stakeholders.