.bw.yaml
A Blockwork workspace is configured through a .bw.yaml
file located in the root
folder of the project. It identifies the project, locates tool definitions, and
defines various other behaviours.
The file must use a !Blockwork
tag as its root element, as per the example below:
The fields of the !Blockwork
tag are:
Field | Required | Default | Description |
---|---|---|---|
project | Sets the project's name | ||
root | /project |
Location to map the project's root directory inside the container | |
scratch | /scratch |
Location to map the scratch area inside the container | |
tools | /tools |
Location to map the tools inside the container | |
host_scratch | ../{project}.scratch |
Directory to store build objects and other artefacts | |
host_state | ../{project}.state |
Directory to store Blockwork's state information for the project | |
host_tools | ../{project}.tools |
Directory containing tool installations on the host | |
bootstrap | Python paths containing Bootstrap definitions | ||
tooldefs | Python paths containing Tool definitions |
Note
The host_scratch
, host_state
, and host_tools
directories are resolved
relative to the project's root directory on the host, and the {project}
keyword will be substituted for the projects name (taken from the project
field).
Variable Substitutions
Some configuration fields support variable substitution into values, these are summarised in the table below:
Variable | Supported By | Description |
---|---|---|
{project} |
root , scratch |
Name of the project (from the project field) |
{root_dir} |
root , scratch |
Name of the directory that's an immediate parent to .bw.yaml |