Publish Website #1741
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
# Builds the website sourced from docs/website/ using `mkdocs` and pushes | |
# to the gh-pages branch for publishing on GitHub Pages. | |
# | |
# See https://squidfunk.github.io/mkdocs-material/publishing-your-site/ | |
name: Publish Website | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
paths: | |
# This file itself. | |
- ".github/workflows/publish_website.yml" | |
# Directly authored website source files. | |
- "docs/website/**" | |
# Python/pip release index page. | |
- "build_tools/python_deploy/generate_release_index.py" | |
# MLIR dialect definitions and .md generation using iree-tblgen. | |
# Technically this should also include the sources for Tablegen, but | |
# that rarely changes and we want to run this workflow conservatively. | |
- "**.td" | |
- "build_tools/cmake/iree_tablegen_doc.cmake" | |
# Regenerate the release pip index when a release is created or deleted. | |
release: | |
types: [published, unpublished] | |
# Run periodically to pick up any documentation changes that were somehow | |
# missed by the above path filters as well as to scrape releases from other | |
# projects that are included on the release index page. Downstream projects | |
# typically build releases in the middle of the night (3AM PST, 11:00 UTC), | |
# so we'll run a bit later than that (6AM PST, 14:00 UTC). | |
schedule: | |
- cron: "0 14 * * *" | |
jobs: | |
publish_website: | |
if: ${{ github.repository_owner == 'iree-org' || github.event_name == 'workflow_dispatch' }} | |
# Note: a clean build of `iree-tblgen` takes ~5 minutes on standard runners. | |
runs-on: ubuntu-20.04 | |
env: | |
CC: clang | |
CXX: clang++ | |
steps: | |
- name: Checkout out repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
submodules: true | |
token: ${{ secrets.WRITE_ACCESS_TOKEN }} | |
- name: Fetching base gh-pages branch | |
# We have to explicitly fetch the gh-pages branch as well to preserve history | |
run: git fetch --no-tags --prune --depth=1 origin "gh-pages:gh-pages" | |
- name: Setting up Python | |
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 | |
with: | |
python-version: 3.x | |
cache: "pip" | |
- name: Installing dependencies | |
run: | | |
pip install -r docs/website/requirements.txt | |
pip install requests | |
sudo apt update | |
sudo apt install -y ninja-build | |
# Build a release index page by scraping release package URLs. | |
# | |
# This can scrape the release pages from any public GitHub repositories. | |
# Currently included repositories: | |
# https://github.com/iree-org/iree | |
# https://github.com/iree-org/iree-turbine | |
# Ecosystem projects for consideration: | |
# https://github.com/nod-ai/shark-ai | |
# https://github.com/openxla/stablehlo | |
# https://github.com/llvm/torch-mlir (see below) | |
# https://github.com/llvm/torch-mlir-release | |
- name: Generating release index | |
run: | | |
./build_tools/python_deploy/generate_release_index.py \ | |
--repos="iree-org/iree,iree-org/iree-turbine" \ | |
--output=docs/website/docs/pip-release-links.html | |
- name: ccache | |
uses: hendrikmuhs/ccache-action@ed74d11c0b343532753ecead8a951bb09bb34bc9 # v1.2.14 | |
with: | |
key: ${{ github.job }} | |
- name: Building documentation files | |
run: ./docs/website/generate_extra_files.sh | |
- name: Setting git config | |
run: | | |
git config --local user.email "[email protected]" | |
git config --local user.name "Website Publish Action" | |
- name: Deploying to gh-pages | |
working-directory: docs/website | |
run: mkdocs gh-deploy |