Work with the Embedded Manager¶
How to list and inspect Embedded Manager projects, inspect their builds, and start a new build.
An Embedded Manager project links a model's firmware to the GitLab repository that builds it. Every command identifies a
project by the model name — the same name you use with tlm-cli pms models.
List projects¶
The table shows each project's model, GitLab project, GitLab connection, storage bucket, board farm slot, and number of
builds, sorted by model name. Up to 25 projects are fetched; raise the limit with --limit:
Show only the projects of one model (exact name):
Inspect a project¶
Displays: Model, Firmware, GitLab Project ID, Board Farm Slot, Connection (name and host), Bucket (name, endpoint and bucket), and Customers, followed by the last 10 builds with their ref, version, status, start time (UTC), and duration.
Build statuses are coloured: success green, failed red, running/pending yellow, canceled/skipped dim.
Press D to toggle the detail view, which adds each build's SHA, GitLab pipeline ID, OTA status and author. Press Q, Esc or Enter to quit.
Inspect a build¶
Copy a build ID from the Recent Builds table, then:
The compact view shows the model, ref, version, status, start time, duration and pipeline ID. Press D for the full
picture: the build configuration (sensitive values appear as (redacted)), artifact paths, OTA approval, and a table of
the jobs of each pipeline stage with their status, duration and failure reason.
Start a build¶
Review the request first:
The combinations and their options come from the project's embedded-manager.conf at the chosen ref (the default
branch unless you pass --ref). Leave out --combination to pick one from a list.
Pass option values with --set. For passwords and other sensitive options, give only the key — the CLI asks for the
value without echoing it, so it never lands in your shell history:
The CLI asks only in an interactive terminal: piping the output or passing --plain turns the prompts off, and a bare
--set KEY is then an error. For automation, take the value from an environment variable instead of typing it:
tlm-cli --plain em builds create "gateway-v2" --combination qemux86-64-prod-image --yes \
--set root_password="$ROOT_PASSWORD_HASH"
Keep in mind that command-line arguments are visible to other processes on the same machine.
The CLI shows the request and asks for confirmation before starting the pipeline, then prints the build ID. Add
--follow to wait for the build and see each job change state; it stops when the build finishes or waits on a manual
job (continue that from the web UI).
Use the output in scripts¶
See also