xrun runs one build entry across local and remote machines in parallel.
It syncs the project tree, starts the same make target on each machine, and can mirror back only the final artefacts your project lists.
Projects often need one local build and one or more remote builds, such as FreeBSD or Linux VMs. xrun keeps that flow in one terminal UI instead of many shells and ad-hoc rsync steps.
- Target loading from
XRUN_CONFIGor--config - Remote directory creation and project sync with
rsync - Running one build entry on every target
- Optional result mirroring from
build/.xrun/<entry>.paths
- The actual
makeorgmaketargets - The manifest of final deliverables
- Any project-specific build logic
export XRUN_CONFIG=xrun.conf
xrun run develMirror back listed outputs:
export XRUN_CONFIG=xrun.conf
xrun run devel --mirror-resultsValidate the config file:
xrun initAdd a remote host:
xrun -a 203.0.113.10local
FreeBSD amd64 builder@freebsd-vm:work/example-xrun
GNU/Linux x86_64 builder@linux-vm:work/example-xrun
If the config file does not exist yet, xrun creates it with:
local
For an entry named devel, the project writes:
build/.xrun/devel.paths
The file is a line-based list of relative paths to mirror back after a successful build.
See example/README.md for a minimal producer project.
- Full user guide: doc/README.md
- Man page source: doc/manpage/buildfarm.1.md
MIT. See LICENSE.