Metadata-Version: 2.1
Name: bou
Version: 0.0.3
Summary: Simple YAML-driven build or task runner
Home-page: https://bou-project.org
Author: Raoul Snyman
Author-email: raoul@snyman.info
License: MIT
Description: bou
        ===
        
        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:
        
        .. code-block::
        
           $ pip install bou
        
        Running bou
        -----------
        
        To run bou, simply run the command. The build file will be automatically detected.
        
        .. code-block::
        
           $ bou
        
        To specify a build configuration file, use the ``-f`` option.
        
        .. code-block::
        
           $ 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.
        
        .. code-block::
        
           $ 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:
        
        .. 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
        
        
        Stages and Steps
        ----------------
        
        If no steps or stages are specified, by default bou will attempt to run the following, in order:
        
         1. All of the stages in the ``stages`` section of the task configuration
         2. If no stages are specified in the task config, all of the stages discovered in the steps
         3. If no stages are found, all of the steps
        
        
        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
        
        .. _Afrikaans: https://en.wikipedia.org/wiki/Afrikaans
        
Keywords: build,task
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Utilities
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
