Skip to main content

Simple YAML-driven build or task runner

Project description

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”.

Installation

Install bou with pip:

$ pip install bou

Running bou

To run bou, simply call it:

$ bou

To specify a build configuration file, use the -f option:

$ bou -f /path/to/build.yaml

To specify a stage or a step to run, just add it to the command

$ bou build
$ bou test

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/raoul/bou

Copyright (c) 2021 Raoul Snyman

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bou-0.0.1.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

bou-0.0.1-py2.py3-none-any.whl (4.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file bou-0.0.1.tar.gz.

File metadata

  • Download URL: bou-0.0.1.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2

File hashes

Hashes for bou-0.0.1.tar.gz
Algorithm Hash digest
SHA256 4303ab85f32da1311b490135a6df5bbbd4fbb434407e190e2811c62c5a2873e0
MD5 e5d535af95f7b7ec0dd66661b0364025
BLAKE2b-256 95c3b661c80599b3a9e22a277a8b5d8097b0114e40261db0e2249e91a8cb59ab

See more details on using hashes here.

File details

Details for the file bou-0.0.1-py2.py3-none-any.whl.

File metadata

  • Download URL: bou-0.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2

File hashes

Hashes for bou-0.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5e0ec4d328bdee873520e31c63c66e614e9be38c8ba619e4ae2e4f4ffbbfb6ba
MD5 e13ef5f0d45ca79671089feaf2dcf4d3
BLAKE2b-256 b9a56fd78162dfdcc924b1d4bae18f2b70c8a39b7e888b7b26a8cd27d8222da3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page