This is an automated email from the ASF dual-hosted git repository.

tqchen pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm-site.git

commit f6973c96446ddfb42254d849b93ba41f976c20a4
Author: tqchen <[email protected]>
AuthorDate: Mon Sep 1 19:35:12 2025 -0400

    Workflow for ffi docs
---
 .github/workflows/publish_tvm_ffi_docs.yml | 60 ++++++++++++++++++++++++++++++
 .github/workflows/update_asf_site.yml      | 28 ++++++++++++++
 scripts/download_3rdparty_embeds.py        |  4 ++
 scripts/task_deploy_asf_site.sh            |  6 +++
 4 files changed, 98 insertions(+)

diff --git a/.github/workflows/publish_tvm_ffi_docs.yml 
b/.github/workflows/publish_tvm_ffi_docs.yml
new file mode 100644
index 0000000000..aad51d2b66
--- /dev/null
+++ b/.github/workflows/publish_tvm_ffi_docs.yml
@@ -0,0 +1,60 @@
+name: Publish tvm-ffi docs
+
+on:
+  workflow_dispatch:
+
+jobs:
+  build_wheels:
+    name: Build docs
+    runs-on: ubuntu-latest
+    steps:
+      - uses: astral-sh/setup-uv@v4
+
+      - uses: actions/checkout@v4
+        with:
+          submodules: recursive
+          path: tvm-site
+
+      - name: Checkout tvm
+        uses: actions/checkout@v4
+        with:
+          repository: apache/tvm
+          submodules: recursive
+          path: tvm
+
+      - name: Install wheel and requirements
+        working-directory: tvm/ffi
+        run: |
+          pip install .
+          pip install -r docs/requirements.txt
+          pip install linkify-it-py
+
+      - name: Build docs
+        working-directory: tvm/ffi/docs
+        run: |
+          make html
+          python ../../../tvm-site/scripts/download_3rdparty_embeds.py -v 
--path=_build/html
+
+      - name: Deploy docs
+        working-directory: tvm-site
+        run: |
+          git fetch
+          git checkout -B asf-site origin/asf-site
+          rm -rf ffi
+          cp -r ../tvm/ffi/docs/_build/html ffi
+          git config user.name tvm-bot
+          git config user.email [email protected]
+          git add -f ffi
+          git commit -m"deploying ffi docs" ffi
+          git status
+          for i in {1..3}; do
+            if git push origin asf-site; then
+              echo "Push successful"
+              break
+            else
+              echo "Push failed, retrying ($i)..."
+              sleep 2
+              git pull --rebase origin asf-site
+            fi
+          done
+
diff --git a/.github/workflows/update_asf_site.yml 
b/.github/workflows/update_asf_site.yml
new file mode 100644
index 0000000000..383f0d6139
--- /dev/null
+++ b/.github/workflows/update_asf_site.yml
@@ -0,0 +1,28 @@
+name: Build Jekyll Site
+
+on:
+  workflow_dispatch:
+  push:
+    branches: [ main ]
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v4
+
+      - name: Set up Ruby
+        uses: ruby/setup-ruby@v1
+        with:
+          ruby-version: 3.4
+          bundler-cache: true
+
+      - name: Install dependencies
+        run: |
+          bundle install
+
+      - name: Build website
+        run: |
+          ./scripts/task_deploy_asf_site.sh
diff --git a/scripts/download_3rdparty_embeds.py 
b/scripts/download_3rdparty_embeds.py
index c8284b9af7..bd7507c13d 100644
--- a/scripts/download_3rdparty_embeds.py
+++ b/scripts/download_3rdparty_embeds.py
@@ -310,5 +310,9 @@ def download_and_replace_urls(files: Optional[List[str]] = 
None, verbose: bool =
 if __name__ == "__main__":
     args = argparse.ArgumentParser()
     args.add_argument("-v", "--verbose", action="store_true")
+    args.add_argument("-p", "--path", type=str, default=None)
     args = args.parse_args()
+
+    if args.path is not None:
+        HTML_DIR = args.path
     download_and_replace_urls(verbose=args.verbose)
diff --git a/scripts/task_deploy_asf_site.sh b/scripts/task_deploy_asf_site.sh
index 3d7ddce33b..28d4910796 100755
--- a/scripts/task_deploy_asf_site.sh
+++ b/scripts/task_deploy_asf_site.sh
@@ -18,7 +18,13 @@ git ls-files | grep -v -e ^docs -e ^ffi | xargs  rm -rf
 cp .gitignore.bak .gitignore
 cp .asf.yaml.bak .asf.yaml
 
+if [ "$GITHUB_ACTIONS" = "true" ]; then
+  git config user.name tvm-bot
+  git config user.email [email protected]
+fi
+
 cp -rf _site/* .
+rm -rf _site
 DATE=`date`
 git add --all && git commit -am "Build at ${DATE}"
 git push origin asf-site

Reply via email to