Skip to main content

Build

The Build mode of a project is where you turn your system design into code. Ready-to-run interface code is generated based on the components and connections included in your design. You'll be provided with source code that can be used as an API to integrate different pieces of software.

Overview

Downloadable artifacts are generated when a build is complete. The generated code will include message definitions (based on what you selected in your design), API libraries and built-in tests. You can also choose to have Tangram Pro™ compile the generated code and incorporate it into a container image, according to your Dockerfile, for use later on when testing your design and generated code in Run mode.

In Run mode, the images created during the Build are spun up allowing you to exercise the elements of your design, whether a Component Software Interface, Transform, etc.

Build Configuration

Click on Build in the top left to start configuration. Your design will still be visible, but in a read-only mode.

Configure

Message Transport

A message transport must be selected before starting a build. It acts as the message delivery service. When you run a completed build, we'll spin up a container that includes the selected message transport. There are multiple options to choose from:

  • ZeroMQ
  • ActiveMQ
  • RabbitMQ
  • Kafka

To select a message transport:

  1. Click the pencil icon next to Message Transports in the bottom left corner
  2. Select a transport option

Generate Interface Code

Each component and subcomponent can have interface code generated for it that you can download as well as run in a container.

To generate interface code:

  1. Select a component in the Navigator
  2. Enable Generate Interface Code and select the desired output language C++ or Rust
  3. Repeat for each component you wish to generate code for
note

When 'Generate Interface Code' is enabled for a component, the Message API that was selected during the design phase is shown. To change this, go to Design and edit the desired component. For information on how to change a component's Message API see Design > Define Component Interfaces.

Compile Code

The generated interface code can be compiled in the build by enabling Compile Code. This will result in fully built code, saving you the work of compiling it locally on your machine.

Containerize

You can create a container image for each component by enabling Containerize. This will allow you to verify your component interfaces and transforms in containers without needing to download the code or install virtual machines. When a containerized build is completed, use the Run feature to spin up all the containers and view their logs all within Tangram Pro. We'll also provide a downloadable docker-compose.yml file that you can use to run the containers from your machine as needed.

To containerize a component

  1. Enable Containerize
  2. Select Include Generated Code to include your generated interface code
  3. Provide a Dockerfile that contains all the commands needed to assemble an image. There are 2 ways to provide a Dockerfile:

Provide Dockerfile via upload

  1. Select Use Dockerfile Upload
  2. Click the Upload Dockerfile button
  3. Select a Dockerfile on your machine and click Open

Provide Dockerfile via repository

Make sure you have connected to either GitLab or GitHub. See Source Code Integration. And that you have connected a repository to the component. See Link Source Code Repository.

  1. Select Use Dockerfile Path
  2. Enter the path to the Dockerfile from the root of your repository. For example, if your Dockerfile is at the root of your repository, then simply enter Dockerfile. If it is in a directory named "writer", then enter writer/Dockerfile.
tip

If your container needs to be built with an image from a private registry, you can authorize your Tangram Pro account to access it. You'll need to authorize each private registry for your container before starting a build. See Container Registries

Start a Build

After you've configured your components, click the Build button to start the process. Streaming logs will display as build tasks process in the cloud. You can leave the page at any time with no impact to the build process.

Exit Build

Clicking the Close View of Build Snapshot button will close the view of the current build so you can return to the design.

Download Artifacts

To download artifacts:

  1. Click the disk icon for the desired component
  2. Repeat for each component

Overview

View Previous Builds

You can access all of your previous builds at any time by clicking the Builds button on the top right.

From Cache

After a project's build completes successfully, the output is cached. If you re-run the build and a component hasn't changed, its cached output is returned instead of running the entire task again, which reduces the time spent waiting so you can get back to integrating sooner. An icon will be displayed next to any tasks that use cached output.

Cache