Skip to content

argolo/release-pilot

๐Ÿš€ ReleasePilot โ€” Deterministic orchestration of white-label app builds

CI Python License Last Commit Open Issues

PyPI Version PyPI Downloads PyPI

ReleasePilot is an assisted release orchestrator that executes yarn commands in an organized, deterministic, and controlled manner, based on variables provided by the operator (platform, contractor, environment, and command).

Its primary goal is to standardize and automate the build, packaging, and delivery process of white-label applications, while respecting the specific differences between contractors, environments, and platforms โ€” without sacrificing human control at critical steps.

ReleasePilot is intentionally designed to orchestrate commands, not to encapsulate low-level logic or highly specific operational flows. For this reason, granular commands, deep customizations, or platform-specific behaviors must live in dedicated build flows, which are then invoked by yarn.

The orchestratorโ€™s responsibility is to order, coordinate, and operate these commands in a consistent, predictable, and auditable way. To enable this, the package.json must define script aliases that follow the ReleasePilot convention:

{platform}:{contractor}:{environment}:{command}

This allows yarn to act as the execution layer, while ReleasePilot acts as the orchestration layer.


๐ŸŽฏ Purpose

ReleasePilot was created to solve a recurring problem in white-label ecosystems:

How can we execute multiple build commands in a consistent, predictable, and auditable way when each application varies by contractor, environment, and platform?

The answer is not blind automation โ€” it is conscious orchestration.


โœจ Key Features

  • ๐ŸŽ›๏ธ Orchestration of yarn commands based on operational variables

  • ๐Ÿ“ฑ Multi-platform support (android, ios)

  • ๐Ÿข Automatic discovery of contractors via directory structure

  • ๐Ÿงช Automatic discovery of environments per contractor

  • โš™๏ธ Supported commands: add, build, deploy

  • ๐Ÿ” โ€œAllโ€ option available in every selection step

  • โธ๏ธ Assisted execution with human checkpoints between:

    • Environments
    • Contractors
  • ๐Ÿ“Œ Execution planning identical to the real execution order

  • ๐Ÿ“ฆ Final, traceable release summary

  • ๐Ÿงฉ Simple, pythonic code with no external dependencies


๐Ÿง  Operational Philosophy

ReleasePilot does not execute commands randomly.

It:

  • Organizes
  • Orders
  • Operates

Each yarn command is executed within a well-defined context, ensuring that:

  • Builds are not mixed across contractors
  • Environments are strictly respected
  • Artifacts can be safely retrieved between steps
  • The operator has full visibility into what is being executed

๐Ÿ“‚ Expected Project Structure

project-root/
โ”œโ”€ contractor/
โ”‚  โ”œโ”€ quickup/
โ”‚  โ”‚  โ”œโ”€ sandbox/
โ”‚  โ”‚  โ”œโ”€ alfa/
โ”‚  โ”‚  โ””โ”€ beta/
โ”‚  โ”œโ”€ kompa/
โ”‚     โ”œโ”€ sandbox/
โ”‚     โ”œโ”€ beta/
โ”‚     โ””โ”€ prod/

The project name is automatically inferred from the root directory name.


๐Ÿงพ Command Pattern

ReleasePilot executes commands following this convention:

yarn {platform}:{contractor}:{environment}:{command}

Example

yarn android:quickup:beta:build

๐Ÿš€ Installation

Requirements

  • Python 3.9+
  • Node.js + Yarn
  • Git (optional, but recommended for traceability)

3๏ธโƒฃ Install ReleasePilot globally

pip3 install release-pilot

The command will now be available globally as:

release-pilot

โ–ถ๏ธ Quick Test

release-pilot

If the interactive menu appears, the installation was successful โœ…


๐Ÿ” Optional Checks

which release-pilot
pip list

Expected output (example):

~/.local/bin/release-pilot

โŒ Uninstalling

pip3 uninstall release-pilot

โš ๏ธ Important Notes for macOS

  • Do not use sudo pip install
  • Do not use the system Python to install CLIs
  • Do not manually copy binaries
  • For Python CLI tools, pipx is always the correct choice

๐Ÿง  Rule of Thumb

Python library โ†’ pip install


๐Ÿ“Œ Execution Planning

Before executing any command, ReleasePilot displays the complete execution plan, in the exact order in which commands will run.

This eliminates ambiguity and ensures full predictability.


โœ… Final Release Summary

At the end of execution, ReleasePilot presents a consolidated summary including:

  • ๐Ÿ“ Project
  • ๐Ÿ“ฆ Contractors
  • ๐ŸŒฟ Git branch / version
  • ๐Ÿงช Environments
  • ๐Ÿ“ฑ Platforms
  • โš™๏ธ Total executed commands

This summary improves auditability, communication, and release traceability.


๐Ÿ›ก๏ธ Ideal Use Cases

  • White-label app builds
  • Sandbox / alfa / beta / production environments
  • Teams supporting multiple clients
  • Sensitive or regulated releases
  • Teams that require control + automation

๐Ÿ”ฎ Future Enhancements

  • --dry-run mode
  • Non-interactive execution (--ci)
  • Summary export (.txt / .md)
  • Commit hash and SemVer tag support
  • Slack / Jira / Discord / Telegram integrations
  • Persistent execution logs

๐Ÿ“œ License

MIT License.


๐Ÿ‘ค Author

Andrรฉ Argรดlo CTO โ€ข Software Architect โ€ข DevOps


๐Ÿงญ About

Andrรฉ Argรดlo is a software architect and technology leader with extensive experience in designing and operating mission-critical systems. His work focuses on building scalable platforms, improving developer experience, and creating pragmatic tooling that balances automation with human control โ€” especially in regulated and high-responsibility environments.

About

Deterministic orchestration of white-label app builds

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors