-
Notifications
You must be signed in to change notification settings - Fork 96
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
### Ticket #12496 #12495 (describes agreed upon naming scheme) ### Problem description Allow users to get started with TT-Metal stack within two command lines. ``` docker pull ghcr.io/tenstorrent/tt-metal/tt-metalium/ubuntu-20.04-amd64-release/wormhole_b0:latest docker run --rm -it -t ghcr.io/tenstorrent/tt-metal/tt-metalium/ubuntu-20.04-amd64-release/wormhole_b0:latest python3 -c "import ttnn" ``` ### What's changed Add a job for the package release to also build/push a release image. ### Checklist - [x] Post commit CI passes https://github.com/tenstorrent/tt-metal/actions/runs/12127666954 - [ ] Blackhole Post commit (if applicable) - [ ] Model regression CI testing passes (if applicable) - [ ] Device performance regression CI testing passes (if applicable) - [ ] New/Existing tests provide coverage for changes
- Loading branch information
1 parent
317d346
commit dc6d684
Showing
12 changed files
with
199 additions
and
41 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,28 @@ | ||
name: "Create and Publish Release Docker Image" | ||
|
||
on: | ||
workflow_call: | ||
workflow_dispatch: | ||
|
||
jobs: | ||
to_be_filled_out: | ||
steps: | ||
- name: This workflow will be filled out in https://github.com/tenstorrent/tt-metal/pull/15013 | ||
run: | | ||
echo "NOOP" | ||
build-artifact: | ||
uses: ./.github/workflows/build-artifact.yaml | ||
secrets: inherit | ||
build-wheels: | ||
needs: build-artifact | ||
strategy: | ||
matrix: | ||
# Since pre-compiled builds only run on 20.04, we can only test on 20.04 for now | ||
# The full 22.04 flow can be tested without precompiled | ||
os: [ubuntu-20.04] | ||
arch: [grayskull, wormhole_b0] | ||
uses: ./.github/workflows/_build-wheels-impl.yaml | ||
with: | ||
os: ${{ matrix.os }} | ||
arch: ${{ matrix.arch }} | ||
from-precompiled: true | ||
publish-release-image: | ||
needs: build-wheels | ||
uses: ./.github/workflows/publish-release-image.yaml | ||
secrets: inherit | ||
with: | ||
version: dev-${GITHUB_REF_NAME//\//-} | ||
is_major_version: false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,131 @@ | ||
name: "[internal] Create and Publish Release Docker Image" | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
version: | ||
required: true | ||
type: string | ||
is_major_version: | ||
required: true | ||
type: boolean | ||
default: false | ||
timeout: | ||
required: false | ||
type: number | ||
default: 10 | ||
jobs: | ||
create-docker-release-image: | ||
strategy: | ||
matrix: | ||
os: [ubuntu-20.04] | ||
arch: [grayskull, wormhole_b0] | ||
runs-on: | ||
- build-docker | ||
- in-service | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v3 | ||
- name: Login to GitHub Container Registry | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: https://ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Download wheels | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: eager-dist-${{ matrix.os }}-${{ matrix.arch }} | ||
- name: Get the name of the wheel and set up env variables | ||
id: generate-tag-name | ||
run: | | ||
echo "WHEEL_FILENAME=$(ls -1 *.whl)" >> $GITHUB_ENV | ||
REPO_IMAGE_NAME=ghcr.io/${{ github.repository }}/tt-metalium-${{ matrix.os }}-amd64-release/${{ matrix.arch }} | ||
echo "REPO_IMAGE_NAME=$REPO_IMAGE_NAME" >> $GITHUB_ENV | ||
TAG_NAME=$REPO_IMAGE_NAME:${{ inputs.version }} | ||
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV | ||
- name: Build and push | ||
uses: docker/build-push-action@v6 | ||
with: | ||
push: true | ||
build-args: | | ||
WHEEL_FILENAME=${{ env.WHEEL_FILENAME }} | ||
BASE_IMAGE_NAME=tt-metalium/${{ matrix.os }}-amd64 | ||
tags: ${{ env.TAG_NAME }} | ||
context: . | ||
file: dockerfile/release.Dockerfile | ||
smoke-test-docker-image: | ||
needs: create-docker-release-image | ||
strategy: | ||
matrix: | ||
os: [ubuntu-20.04] | ||
test_group: | ||
[ | ||
{ | ||
arch: grayskull, | ||
runs-on: ["cloud-virtual-machine", "E150", "in-service"], | ||
cmd: pytest tests/end_to_end_tests, | ||
}, | ||
{ | ||
arch: wormhole_b0, | ||
runs-on: ["cloud-virtual-machine", "N150", "in-service"], | ||
cmd: pytest tests/end_to_end_tests, | ||
}, | ||
{ | ||
arch: wormhole_b0, | ||
runs-on: ["cloud-virtual-machine", "N300", "in-service"], | ||
cmd: pytest tests/end_to_end_tests, | ||
}, | ||
] | ||
env: | ||
ARCH_NAME: ${{ matrix.test_group.arch }} | ||
LOGURU_LEVEL: INFO | ||
runs-on: ${{ matrix.test_group.runs-on }} | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Run smoke test on the image | ||
timeout-minutes: ${{ inputs.timeout }} | ||
uses: ./.github/actions/docker-run | ||
with: | ||
docker_os_arch: tt-metalium-${{ matrix.os }}-amd64-release/${{ matrix.test_group.arch }} | ||
docker_password: ${{ secrets.GITHUB_TOKEN }} | ||
run_args: | | ||
${{ matrix.test_group.cmd }} | ||
tag-docker-image-as-latest: | ||
needs: [smoke-test-docker-image, create-docker-release-image] | ||
strategy: | ||
matrix: | ||
os: [ubuntu-20.04] | ||
arch: [grayskull, wormhole_b0] | ||
runs-on: | ||
- build-docker | ||
- in-service | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Docker login | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: https://ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Tag latest if this is a major version release | ||
run: | | ||
set -eu # basic shell hygiene | ||
LATEST_TAG=latest | ||
if [ "${{ inputs.is_major_version }}" = "true" ]; then | ||
LATEST_TAG=latest | ||
else | ||
LATEST_TAG=latest-rc | ||
fi | ||
echo "Determined that the current tag is " $LATEST_TAG | ||
REPO_IMAGE_NAME=ghcr.io/${{ github.repository }}/tt-metalium-${{ matrix.os }}-amd64-release/${{ matrix.arch }} | ||
TAG_NAME=$REPO_IMAGE_NAME:${{ inputs.version }} | ||
docker pull $TAG_NAME | ||
echo "Tagging the image as " $REPO_IMAGE_NAME:$LATEST_TAG | ||
docker tag $TAG_NAME $REPO_IMAGE_NAME:$LATEST_TAG | ||
echo "Pushing image with tag " $REPO_IMAGE_NAME:$LATEST_TAG | ||
docker push $REPO_IMAGE_NAME:$LATEST_TAG |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
ARG BASE_IMAGE_NAME=tt-metalium/ubuntu-20.04-amd64 | ||
# | ||
# Currently the release image uses the base image which is also the build image. | ||
# However, in the future, we could point a true base image that is a base for both releases and builds. | ||
# This work is described in https://github.com/tenstorrent/tt-metal/issues/11974 | ||
FROM ghcr.io/tenstorrent/tt-metal/$BASE_IMAGE_NAME | ||
|
||
ARG WHEEL_FILENAME | ||
ADD $WHEEL_FILENAME $WHEEL_FILENAME | ||
RUN pip3 install $WHEEL_FILENAME |