16 unstable releases (3 breaking)
|0.12.4||Dec 28, 2020|
|0.12.3||Dec 9, 2020|
|0.11.0||Nov 26, 2020|
|0.10.0||Nov 25, 2020|
|0.0.7||Oct 20, 2019|
#208 in Build Utils
buildy - An ultra-fast parallel build system for local iteration
buildy is not yet ready for use
buildy is very simple and configurable. It's meant to facilitate development by watching the file system and rebuilding as necessary.
The core of
buildy is in it's configuration file. Simply add a file named
.buildy.yml into the root of the project.
This configuration file tells
buildy exactly what to do.
server_deps: watch: - server/package.json - server/yarn.lock build: - cd server && yarn install server: depends_on: - server_deps watch: - server/src run: - cd server && node src/server.js
The configuration file is composed of
targets, which are an entity to build. Each
target can define its dependencies, files to
watch, commands to
build, and commands to
run after the build completes.
targets will be run in parallel as much as possible, waiting to start until their dependencies are built.
The commands in the
build list under a target are run one after another in a shell working from the directory containing the
target will only be rebuilt if either no
watch paths exist, or any of the contents of the
watch paths have changed since the last build.
buildy maintains a list of checksums in a directory named
.buildy next to the
.buildy.yml. This directory should be ignored in version control.
target is built, it will be run. The commands in
run will be executed one after another. They can continue running in the background, which is useful for running programs such as a web server.
Even after everything is built,
buildy will watch all the paths in the
watch directories for new changes in the background. When any change is detected, those
targets are rebuilt. Children
targets (those that have a dependency on the rebuilt
target) will only be rerun if their
watch files changed as well.
target is rebuilt, its
run commands are rerun as well, terminating any that may still be running.
cargo install buildy.
Then, simply run
buildy in a directory with
runcommands that should be restarted when
watchpaths change need to use
execor else they won't terminate properly.
- No unit tests
- If a build fails, the checksum should not be saved - so that it gets rerun.