bou is a YAML-driven build or task runner
Go to file
2021-06-04 11:51:54 -07:00
.gitignore Initial commit 2021-06-04 11:51:18 -07:00
bou.py Initial commit 2021-06-04 11:51:18 -07:00
LICENSE Initial commit 2021-06-04 18:50:30 +00:00
pyproject.toml Initial commit 2021-06-04 11:51:18 -07:00
README.rst Initial commit 2021-06-04 11:51:18 -07:00
setup.cfg Initial commit 2021-06-04 11:51:18 -07:00
setup.py Initial commit 2021-06-04 11:51:18 -07:00

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