From 90ea1ad6c84f7f2d3a6f18af1e374f6f893b56d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bojan=20Ro=C5=A1ko?= <156314064+broskoTT@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:23:35 +0100 Subject: [PATCH] Workflow to track client integration build (#318) ### Issue No tracking issue, but a follow up issue will be #321 tt-lens is a private repo, so it is not trivial to add a build job such as this one. ### Description Adding a job, which won't be mandatory, which tries to build newest tt-metal with the current umd (a branch from this PR if triggered on PR, or main if on main). The idea is that to see asap if something is going to break tt-metal build, which seems to be happening often in the past period. ### List of the changes - Add workflow for building tt-metal, but with the UMD from this branch ### Testing CI on this branch passed. ### API Changes There are no API changes in this PR. --- .github/workflows/build-clients.yml | 56 +++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 .github/workflows/build-clients.yml diff --git a/.github/workflows/build-clients.yml b/.github/workflows/build-clients.yml new file mode 100644 index 00000000..a2502367 --- /dev/null +++ b/.github/workflows/build-clients.yml @@ -0,0 +1,56 @@ +name: Build clients on newest UMD + +on: + workflow_dispatch: + inputs: + timeout: + required: true + description: 'The timeout for the job in minutes' + type: number + default: 30 + pull_request: + branches: ["main"] + push: + branches: ["main"] + +jobs: + build-tt-metal: + # Due to parsing bug, fromJSON is used to convert string to number. + # In pull_request or push events, the input context is not available, stating the default again here. + timeout-minutes: ${{ fromJSON(inputs.timeout || '30') }} + strategy: + fail-fast: false + matrix: + arch_name: [grayskull, wormhole_b0, blackhole] + + name: Build tt-metal for ${{ matrix.arch_name }} with newest UMD + runs-on: ubuntu-20.04 + container: + image: ghcr.io/tenstorrent/tt-metal/tt-metalium/ubuntu-20.04-amd64:latest + options: --user root + + steps: + - name: Checkout client repo + uses: actions/checkout@v4 + with: + # Clone under tt-metal directory + path: tt-metal + repository: tenstorrent/tt-metal + submodules: recursive + lfs: 'true' + + - name: Checkout UMD + uses: actions/checkout@v4 + with: + # Clone directly into tt-metal directory for umd + path: tt-metal/tt_metal/third_party/umd + submodules: recursive + lfs: 'true' + + - name: Build tt-metal + run: | + cd tt-metal + export ARCH_NAME=${{ matrix.arch_name }} + export TT_METAL_HOME=$(pwd) + export PYTHONPATH=$(pwd) + ./build_metal.sh