Build Blaze Images
Purpose
Use this skill to trigger both image builds:
- Blaze media server Docker image through
tenstorrent/tt-shield workflow on-dispatch-build-media-server.yml.
- tt-metal upstream Docker images through
tenstorrent/tt-metal workflow upstream-tests.yaml, using the tt-metal commit referenced by tt-media-server/cpp_server/tt-llm-engine.
Workflow
Work from the tt-inference-server repository root.
Resolve the currently checked out tt-inference-server ref for the Blaze build:
inference_server_ref="$(git branch --show-current)"
if [ -z "$inference_server_ref" ]; then
inference_server_ref="$(git rev-parse HEAD)"
fi
printf '%s\n' "$inference_server_ref"
Use this value for the tt-shield workflow's inference-server-git-ref input. If the current branch has not been pushed to tenstorrent/tt-inference-server, stop and ask the user whether to push it or use a commit/ref that exists on GitHub.
Inspect the tt-llm-engine submodule and the nested tt-metal submodule:
git submodule status
cd tt-media-server/cpp_server/tt-llm-engine
git submodule status
cd tt-metal
git show -s --format='%H%n%D%n%s%n%ci' HEAD
git branch -r --contains HEAD
Pick the tt-metal workflow ref:
- Prefer a remote branch whose HEAD exactly matches the nested
tt-metal submodule commit.
- If no branch points at the commit, use the exact commit SHA if GitHub Actions accepts it.
- If multiple branches contain the commit, prefer the branch shown in
git show -s --format=%D HEAD if it names an origin/<branch> HEAD; otherwise ask the user which branch to use.
Check workflow inputs before dispatching:
gh workflow view on-dispatch-build-media-server.yml --repo tenstorrent/tt-shield --yaml
gh workflow view upstream-tests.yaml --repo tenstorrent/tt-metal --yaml
Trigger the Blaze image build from the currently checked out tt-inference-server ref. The tt-shield workflow input option is blaze-media-inference-server; if the user says blaze-media-server, use this workflow option.
gh workflow run on-dispatch-build-media-server.yml \
--repo tenstorrent/tt-shield \
-f inference-server-type=blaze-media-inference-server \
-f inference-server-git-ref="$inference_server_ref"
Trigger the tt-metal image build with default workflow inputs and the selected tt-metal ref:
gh workflow run upstream-tests.yaml \
--repo tenstorrent/tt-metal \
--ref '<tt-metal-branch-or-sha>'
Verify both runs and report URLs:
gh run list --repo tenstorrent/tt-shield \
--workflow on-dispatch-build-media-server.yml \
--event workflow_dispatch \
--limit 5 \
--json databaseId,displayTitle,headBranch,headSha,status,conclusion,url,createdAt,workflowName
gh run list --repo tenstorrent/tt-metal \
--workflow upstream-tests.yaml \
--branch '<tt-metal-branch>' \
--event workflow_dispatch \
--limit 5 \
--json databaseId,displayTitle,headBranch,headSha,status,conclusion,url,createdAt,workflowName
Reporting
In the final response, include:
The Blaze workflow run URL, status, and server type.
The Metal workflow run URL, status, branch or SHA, and the submodule commit used.
Monitoring commands:
gh run watch <shield-run-id> --repo tenstorrent/tt-shield
gh run watch <metal-run-id> --repo tenstorrent/tt-metal
gh run view <metal-run-id> --repo tenstorrent/tt-metal --log-failed
Failure Investigation
If a run fails, collect more information with:
gh run view <run-id> --repo <owner/repo> --json status,conclusion,jobs,url
gh run view <run-id> --repo <owner/repo> --log-failed
For image publishing uncertainty, inspect the workflow job outputs and the calculate-to-publish job logs in tt-metal, because upstream-tests.yaml may publish only images whose tests passed unless request-force-publish is changed from its default.
1---2name: build-blaze-images3description: Trigger Tenstorrent Blaze media server and tt-metal upstream Docker image builds with gh. Use when the user asks to build Blaze and Metal Docker images, run the tt-shield media server image workflow, or build tt-metal images from the tt-llm-engine submodule reference.4---56# Build Blaze Images78## Purpose910Use this skill to trigger both image builds:1112- Blaze media server Docker image through `tenstorrent/tt-shield` workflow `on-dispatch-build-media-server.yml`.13- tt-metal upstream Docker images through `tenstorrent/tt-metal` workflow `upstream-tests.yaml`, using the `tt-metal` commit referenced by `tt-media-server/cpp_server/tt-llm-engine`.1415## Workflow16171. Work from the `tt-inference-server` repository root.18192. Resolve the currently checked out `tt-inference-server` ref for the Blaze build:2021 ```bash22 inference_server_ref="$(git branch --show-current)"23 if [ -z "$inference_server_ref" ]; then24 inference_server_ref="$(git rev-parse HEAD)"25 fi26 printf '%s\n' "$inference_server_ref"27 ```2829 Use this value for the tt-shield workflow's `inference-server-git-ref` input. If the current branch has not been pushed to `tenstorrent/tt-inference-server`, stop and ask the user whether to push it or use a commit/ref that exists on GitHub.30313. Inspect the `tt-llm-engine` submodule and the nested `tt-metal` submodule:3233 ```bash34 git submodule status35 cd tt-media-server/cpp_server/tt-llm-engine36 git submodule status37 cd tt-metal38 git show -s --format='%H%n%D%n%s%n%ci' HEAD39 git branch -r --contains HEAD40 ```41424. Pick the `tt-metal` workflow ref:4344 - Prefer a remote branch whose HEAD exactly matches the nested `tt-metal` submodule commit.45 - If no branch points at the commit, use the exact commit SHA if GitHub Actions accepts it.46 - If multiple branches contain the commit, prefer the branch shown in `git show -s --format=%D HEAD` if it names an `origin/<branch>` HEAD; otherwise ask the user which branch to use.47485. Check workflow inputs before dispatching:4950 ```bash51 gh workflow view on-dispatch-build-media-server.yml --repo tenstorrent/tt-shield --yaml52 gh workflow view upstream-tests.yaml --repo tenstorrent/tt-metal --yaml53 ```54556. Trigger the Blaze image build from the currently checked out `tt-inference-server` ref. The tt-shield workflow input option is `blaze-media-inference-server`; if the user says `blaze-media-server`, use this workflow option.5657 ```bash58 gh workflow run on-dispatch-build-media-server.yml \59 --repo tenstorrent/tt-shield \60 -f inference-server-type=blaze-media-inference-server \61 -f inference-server-git-ref="$inference_server_ref"62 ```63647. Trigger the tt-metal image build with default workflow inputs and the selected `tt-metal` ref:6566 ```bash67 gh workflow run upstream-tests.yaml \68 --repo tenstorrent/tt-metal \69 --ref '<tt-metal-branch-or-sha>'70 ```71728. Verify both runs and report URLs:7374 ```bash75 gh run list --repo tenstorrent/tt-shield \76 --workflow on-dispatch-build-media-server.yml \77 --event workflow_dispatch \78 --limit 5 \79 --json databaseId,displayTitle,headBranch,headSha,status,conclusion,url,createdAt,workflowName8081 gh run list --repo tenstorrent/tt-metal \82 --workflow upstream-tests.yaml \83 --branch '<tt-metal-branch>' \84 --event workflow_dispatch \85 --limit 5 \86 --json databaseId,displayTitle,headBranch,headSha,status,conclusion,url,createdAt,workflowName87 ```8889## Reporting9091In the final response, include:9293- The Blaze workflow run URL, status, and server type.94- The Metal workflow run URL, status, branch or SHA, and the submodule commit used.95- Monitoring commands:9697 ```bash98 gh run watch <shield-run-id> --repo tenstorrent/tt-shield99 gh run watch <metal-run-id> --repo tenstorrent/tt-metal100 gh run view <metal-run-id> --repo tenstorrent/tt-metal --log-failed101 ```102103## Failure Investigation104105If a run fails, collect more information with:106107```bash108gh run view <run-id> --repo <owner/repo> --json status,conclusion,jobs,url109gh run view <run-id> --repo <owner/repo> --log-failed110```111112For image publishing uncertainty, inspect the workflow job outputs and the `calculate-to-publish` job logs in `tt-metal`, because `upstream-tests.yaml` may publish only images whose tests passed unless `request-force-publish` is changed from its default.