diff --git a/.github/workflows/docs-latest-public-wrapper.yaml b/.github/workflows/docs-latest-public-wrapper.yaml index 35c1f016a806..ef45752c9a40 100644 --- a/.github/workflows/docs-latest-public-wrapper.yaml +++ b/.github/workflows/docs-latest-public-wrapper.yaml @@ -2,16 +2,21 @@ name: "[post-commit] Docs build and deploy to GitHub pages on main" on: workflow_dispatch: - jobs: - build-docker-artifact: - uses: ./.github/workflows/build-docker-artifact.yaml - secrets: inherit + # build-docker-artifact: + # uses: ./.github/workflows/build-docker-artifact.yaml + # secrets: inherit build-artifact: - needs: build-docker-artifact + # needs: build-docker-artifact uses: ./.github/workflows/build-artifact.yaml secrets: inherit - build-docs: + # build-docs: + # needs: build-artifact + # uses: ./.github/workflows/docs-latest-public.yaml + # secrets: inherit + release-docs: needs: build-artifact - uses: ./.github/workflows/docs-latest-public.yaml + uses: ./.github/workflows/docs-release.yaml + with: + version: v0.52.0 secrets: inherit diff --git a/.github/workflows/docs-release.yaml b/.github/workflows/docs-release.yaml new file mode 100644 index 000000000000..d7ddcd56a398 --- /dev/null +++ b/.github/workflows/docs-release.yaml @@ -0,0 +1,106 @@ +name: "Release Docs: package the docs and publish to Docs the repo" + +on: + workflow_dispatch: + inputs: + version: + required: true + type: string + workflow_call: + inputs: + version: + required: true + type: string + +concurrency: + # Note that people may spam the post-commit pipeline on their branch, and + # we have this docs pipeline in the post-commit pipeline, then people + # would have to wait until the previous one fully completes. That may be + # ok because each post-commit pipeline definitely takes more than 30 min + group: "pages-${{ github.ref }}" + cancel-in-progress: false + +jobs: + package-push-docs: + strategy: + # Do not fail-fast because we need to ensure all tests go to completion + # so we try not to get hanging machines + fail-fast: false + matrix: + arch: [grayskull] + env: + TT_METAL_ENV: ${{ vars.TT_METAL_ENV }} + DOCS_VERSION: ${{ inputs.version }} + ARCH_NAME: ${{ matrix.arch }} + LOGURU_LEVEL: INFO + LD_LIBRARY_PATH: ${{ github.workspace }}/build/lib + environment: dev + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + lfs: false + - name: Set up dynamic env vars for build + run: | + echo "TT_METAL_HOME=$(pwd)" >> $GITHUB_ENV + - uses: ./.github/actions/install-metal-deps + with: + os: ubuntu-20.04 + - uses: ./.github/actions/install-metal-dev-deps + with: + os: ubuntu-20.04 + - uses: actions/download-artifact@v4 + with: + name: TTMetal_build_${{ matrix.arch }} + - name: Extract files + run: tar -xvf ttm_${{ matrix.arch }}.tar + - uses: ./.github/actions/install-python-deps + - name: Build Doxygen Docs + timeout-minutes: 15 + env: + GITHUB_TOKEN: ${{ github.token }} + run: | + source ${{ github.workspace }}/python_env/bin/activate + cd $TT_METAL_HOME + export PYTHONPATH=$TT_METAL_HOME + doxygen + - name: Clone Shared Docs Repo + run: | + GITHUB_USER=tenstorrent-github-bot + git config --global user.email "${GITHUB_USER}@tenstorrent.com" + git config --global user.name "${GITHUB_USER}" + echo "About to clone" + git clone https://${GITHUB_USER}:${{ secrets.TTBOT_DOCS_ACCESS }}@github.com/tenstorrent/docs-test.git + git remote set-url origin https://${GITHUB_USER}::${{ secrets.TTBOT_DOCS_ACCESS }}@github.com/tenstorrent/docs-test.git + - name: Package TT-Metalium Docs + run: | + echo "Preparing tt-metalium docs assets" + mkdir tt-metalium + cp -Lr docs/doxygen_build tt-metalium + cp -Lr docs/source/tt-metalium/* tt-metalium + rm tt-metalium/conf.py # Do not change conf.py + echo "Copying the docs into the repo" + cp -r tt-metalium/* docs-test/tt-metalium + - name: Package TT-NN Docs + run: | + mkdir ttnn-docs + cp -Lr docs/doxygen_build ttnn-docs + cp -Lr docs/source/ttnn/* ttnn-docs + rm ttnn-docs/conf.py # Do not change conf.py + echo "Copying the docs into the repo" + cp -r ttnn-docs/* docs-test/ttnn + - name: Push new versions to the Docs repo for publishing + run: | + cd docs-test + echo "Register new documentation versions" + python update_tags.py tt-metalium $DOCS_VERSION + python update_tags.py ttnn $DOCS_VERSION + + git add . + git commit -m "Update ttnn and tt-metalium docs from pipeline ${{ github.run_id }} with tag $DOCS_VERSION" + echo "Tag commits to identify different versions." + git tag -a ttnn_$DOCS_VERSION -m "ttnn and tt-metalium documentation version $DOCS_VERSION" + git tag -a tt-metalium_$DOCS_VERSION -m "ttnn and tt-metalium documentation version $DOCS_VERSION" + echo "Pushing the new docs" + # git push && git push --tags diff --git a/.github/workflows/package-and-release.yaml b/.github/workflows/package-and-release.yaml index 3d82dc159ec2..3fd1c0449e48 100644 --- a/.github/workflows/package-and-release.yaml +++ b/.github/workflows/package-and-release.yaml @@ -206,3 +206,9 @@ jobs: tags: ghcr.io/${{ github.repository }}/tt-metalium/ubuntu-20.04-amd64:${{ needs.create-tag.outputs.version }}-dev context: . file: dockerfile/ubuntu-20.04-amd64.Dockerfile + release-docs: + needs: create-and-upload-draft-release + uses: ./.github/workflows/docs-release.yaml + with: + version: ${{ needs.create-tag.outputs.version }} + secrets: inherit