bou is a YAML-driven build or task runner
.gitignore | ||
bou.py | ||
LICENSE | ||
pyproject.toml | ||
README.rst | ||
setup.cfg | ||
setup.py |
bou
Bou (pronounced "bow") is a simple builder or task runner which uses a YAML file for task configuration.
"Bou" is Afrikaans for "build".
Installation
Install bou with pip:
$ pip install bou
Task Configuration
When run without any parameters, bou will search for a file named
bou.yaml
, bou.yml
, build.yaml
or
build.yml
Here's a basic example:
stages:
- build
- test
steps:
build:
stage: build
script:
- make
test:
stage: test
script:
- make test
Environment Variables
Bou also supports setting environment variables, both at a global
level, as well as at a step level. As a convenience, bou sets up an
initial environment variable named BASE_DIR
which is the
directory the build file is in.
Environment variables defined at a global level are set first when a step is run, and then the step-level environment variables are set.
stages:
- build
environment:
- PYTHON=python3
steps:
build:
stage: build
environment:
- SOURCE=$BASE_DIR/src
script:
- $PYTHON $SOURCE/setup.py build
Source Code
The source code to bou is available on my personal Git server: https://git.snyman.info/superfly/bou