Common Build Environment

Introduction

Common Build Environment (CBE) is a technology used by Fuze for executing all of the [build commands] section in a build map (see Build Map Reference for more information).

Note

A CBE is a Docker container. Build operations require Docker to be running on the host machine.

The CBE allows a local build and cloud build to use the exact same build environment:

_images/fuze-cbe.png

What is a CBE?

A CBE is a Docker container that is a 100% configuration managed, traceable, and reproducible environment. CBE’s are one of the technologies that allow Fuze to execute from any platform.

CBE’s are Docker containers. A container is a virtual environment that executes within your local system. Containers allow you to execute a different OS environment within your local OS, with some restrictions.

Fuze splits operations between the CBE and your local system as follows:

_images/fuze-build-workspace-context.png

The containers that are available to your build map are stored in a container repository under configuration management. This allows the CBE used for your particular build (ie, a particular FuzeID) to be associated with the FuzeID so that it can be used again in the future if a user requests to recreate a particular workspace.

When Fuze needs the container, it looks to see if it is already in your local system:

  • If it is, it looks to see if there are any updates from the container repo and if so, applies the updates.

  • If it is not, it pulls the container from the container repo.

You only need to pull the full container the first time it used. From thereon, only updates would need to be installed. If you have no internet connectivity, then the local version is always used.

Special CBE’s

There special CBE’s to which you have access for special circumstances.

Local CBE

A local CBE serves as a passthrough to your local host OS. It utilizes your local machine to perform the build operations. Local CBE’s are required if the required toolchain cannot be installed into Docker container (i.e., like Keil, etc).

Warning

Builds with Local CBE’s cannot be guaranteed to be recreated

Although Fuze keeps all of the same metadata for a local CBE build, the build operation itself occurs on a particular host system. Therefore, Fuze cannot guarantee a different host system will generate a binary-exact build.

When using a local CBE, both the [build] and [package] sections execute in the local host OS.

Requirements:

  • Your local system must contain all toolchains and utilities required by the [build] section

  • Your local system must ensure that the PATH is correct