BuildPilot

The feature list

Your scripts, several at once, in one window.

Everything BuildPilot does, in one list. What it leaves alone is on the Why page.

What it does

  • Remembers your builds. An operation is one or more steps run in order, a working directory and a name. .ps1, .bat, .cmd, .exe, .com and .py run out of the box; Settings maps any other type to the program that runs it.
  • Finds them for you. Point Add at a project folder (or a folder of projects) and it proposes the build it recognises: build.ps1 alone, else buildexe.py then buildinstaller.py. Nothing is added until you confirm.
  • Uses your Python environment. A venv in the project is found and activated for each step; an environment left active in your shell is undone first.
  • Runs several at once. Each run is its own process, with its state shown by a glyph and in words, plus the elapsed time. Tick rows to start them together. Two builds never share a folder.
  • Knows how long a build takes. Beneath each row's status sits its typical build time: the median of its last five successful runs, so one slow build does not skew it. It is remembered when BuildPilot restarts, so a running build always has a yardstick.
  • Shows output live. The tray follows the latest line until you scroll up. A line wider than the tray wraps rather than being cut off. Lines are plain whatever stream they came on; the run's outcome closes it in green, red or grey.
  • Stops the whole tree. Stop ends the script and every process it started, through a Windows job object.
  • Launches the installer it built. Beside Stop, Launch installer starts the project's setup program: the one set in Edit, else the folder's name plus Setup.exe in dist-installer or dist. It waits while the build runs and after one that was stopped or failed.