||2 years ago|
|.gitignore||2 years ago|
|LICENSE||2 years ago|
|README.rst||2 years ago|
|bou.py||2 years ago|
|pyproject.toml||2 years ago|
|setup.cfg||2 years ago|
|setup.py||2 years ago|
Bou (pronounced "bow") is a simple builder or task runner which uses a YAML file for task configuration.
Bou uses the concept of stages and steps. A stage is a sets of steps, and a step is a set of commands to run. A stage can contain many steps, but a step can only belong to a single stage.
"Bou" is Afrikaans for "build".
Install bou with pip:
$ pip install bou
To run bou, simply run the command. The build file will be automatically detected.
To specify a build configuration file, use the
$ bou -f /path/to/build.yaml
To specify a stage or a step to run, just add it to the command. Stages take priority over steps, so if you have a stage and a step with the same name, the stage will be run.
$ bou build $ bou test
When run without any parameters, bou will search for a file named
Here's a basic example:
stages: - build - test steps: build: stage: build script: - make test: stage: test script: - make test
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
Stages and Steps
If no steps or stages are specified, by default bou will attempt to run the following, in order:
- All of the stages in the
stagessection of the task configuration
- If no stages are specified in the task config, all of the stages discovered in the steps
- If no stages are found, all of the steps
The source code to bou is available on my personal Git server: https://git.snyman.info/raoul/bou
Copyright (c) 2021 Raoul Snyman