2021-06-04 18:48:50 +00: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:
|
|
|
|
|
|
|
|
.. code-block::
|
|
|
|
|
|
|
|
$ 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:
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
stages:
|
|
|
|
- build
|
|
|
|
environment:
|
|
|
|
- PYTHON=python3
|
|
|
|
steps:
|
|
|
|
build:
|
|
|
|
stage: build
|
|
|
|
environment:
|
|
|
|
- SOURCE=$BASE_DIR/src
|
|
|
|
script:
|
|
|
|
- $PYTHON $SOURCE/setup.py build
|
|
|
|
|
|
|
|
|
|
|
|
Source Code
|
|
|
|
-----------
|
|
|
|
|
2021-06-04 18:52:40 +00:00
|
|
|
The source code to bou is available on my personal Git server: https://git.snyman.info/raoul/bou
|
2021-06-04 18:48:50 +00:00
|
|
|
|
|
|
|
.. _Afrikaans: https://en.wikipedia.org/wiki/Afrikaans
|