Skip to content

Commit

Permalink
Merge pull request #94 from tenstorrent/nvukobrat/docs
Browse files Browse the repository at this point in the history
[Docs] Initial setup for TT-Forge GitHub Pages (docs)
  • Loading branch information
nvukobratTT authored Aug 16, 2024
2 parents 82db124 + 85d5f03 commit 0afb0f4
Show file tree
Hide file tree
Showing 66 changed files with 2,981 additions and 0 deletions.
104 changes: 104 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: Docs - Build & Deploy

on:
push:
branches: ["main"]
workflow_dispatch:

# Sets permissions for:
# - downloading docker container
# - allowing deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
packages: read

jobs:

build:

strategy:
fail-fast: false
matrix:
build:
- runs-on: self-hosted

runs-on: ${{ matrix.build.runs-on }}

container:
image: ghcr.io/${{ github.repository }}/tt-forge-ubuntu-22-04:latest
options: --user root --device /dev/tenstorrent/0
volumes:
- /dev/hugepages:/dev/hugepages
- /dev/hugepages-1G:/dev/hugepages-1G
- /etc/udev/rules.d:/etc/udev/rules.d
- /lib/modules:/lib/modules
- /opt/tt_metal_infra/provisioning/provisioning_env:/opt/tt_metal_infra/provisioning/provisioning_env

env:
MDBOOK_VERSION: 0.4.36
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0 # Fetch all history and tags

- name: Set reusable strings
id: strings
shell: bash
run: |
echo "work-dir=$(pwd)" >> "$GITHUB_OUTPUT"
echo "build-output-dir=$(pwd)/build" >> "$GITHUB_OUTPUT"
- name: Git safe dir
run: git config --global --add safe.directory ${{ steps.strings.outputs.work-dir }}

- name: ccache
uses: hendrikmuhs/[email protected]
with:
create-symlink: true
key: ${{ matrix.build.runs-on }}-runtime-${{ matrix.build.enable_runtime }}-${{ env.SDK_VERSION }}

- name: Build
shell: bash
run: |
source env/activate
cmake -G Ninja -B build .
cmake --build build
- name: Install mdBook
shell: bash
run: |
source env/activate
apt install cargo -y
cargo install --version ${MDBOOK_VERSION} mdbook
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5

- name: Build Docs
shell: bash
run: |
export PATH="/github/home/.cargo/bin:$PATH"
cmake --build build -- docs
# cmake --build build -- doxygen
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./build/docs/book

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ set(SHARED_LIB_FLAGS -fPIC)

add_subdirectory(third_party)
add_subdirectory(pybuda)
add_subdirectory(docs)

### Generate stubs for ttforge
### Run `cmake --build build -- make_stubs` to generate stubs
Expand Down
5 changes: 5 additions & 0 deletions cmake/ConfigureDoxygen.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
set(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..)
set(DOXYGEN_DIR ${CMAKE_CURRENT_BINARY_DIR}/book/doxygen)

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen.cfg.in
${CMAKE_CURRENT_BINARY_DIR}/book/doxygen/doxygen.cfg @ONLY)
38 changes: 38 additions & 0 deletions docs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
add_custom_target(copy-docs-dir
COMMAND
cp -r ${CMAKE_CURRENT_SOURCE_DIR}/* ${CMAKE_CURRENT_BINARY_DIR}
)

add_custom_target(docs
COMMAND
mdbook build
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
DEPENDS
copy-docs-dir
)

find_package(Doxygen)

if (DOXYGEN_FOUND)

if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/book/doxygen)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/book/doxygen)
endif()

set(DOXYGEN_DIR ${CMAKE_CURRENT_BINARY_DIR}/book/doxygen)
set(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..)

add_custom_target(doxygen
COMMAND
${CMAKE_COMMAND} -E make_directory ${DOXYGEN_DIR}
COMMAND
${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/ConfigureDoxygen.cmake
COMMAND
doxygen ${DOXYGEN_DIR}/doxygen.cfg
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
DEPENDS
copy-docs-dir
)
else()
message("Doxygen is required to build documentation")
endif()
6 changes: 6 additions & 0 deletions docs/book.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[book]
authors = ["Nikola Vukobrat"]
language = "en"
multilingual = false
src = "src"
title = "tt-forge documentation"
Loading

0 comments on commit 0afb0f4

Please sign in to comment.