CONTINUOUS INTEGRATION SCRIPTS
==============================

Environment Variables Used in Build Scripts
-------------------------------------------

- `NODE_LABELS`: the variable defines a list of OS properties.  The set values are used by the
  build scripts to select proper behavior for different OS.

  The list should include at least `[OS_TYPE]`, `[DISTRO_TYPE]`, and `[DISTRO_VERSION]`.

  Possible values for Linux:

  * `[OS_TYPE]`: `Linux`
  * `[DISTRO_TYPE]`: `Ubuntu`
  * `[DISTRO_VERSION]`: `Ubuntu-16.04`, `Ubuntu-18.04`

  Possible values for macOS:

  * `[OS_TYPE]`: `OSX`
  * `[DISTRO_TYPE]`: `OSX` (can be absent)
  * `[DISTRO_VERSION]`: `OSX-10.12`, `OSX-10.13`, `OSX-10.14`

- `JOB_NAME`: optional variable to define type of the job.  Depending on the defined job type,
  the build scripts can perform different tasks.

  Possible values:

  * empty: default build process
  * `code-coverage` (Ubuntu Linux is assumed): debug build with tests and code coverage analysis
  * `limited-build`: only a single debug build with tests

- `WAF_JOBS`: number of parallel build jobs used by waf, defaults to 1.
