Set up workflow to build just the documentation. #49
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
# Copyright 2025 The Khronos Group Inc. | |
# SPDX-License-Identifier: Apache-2.0 | |
name: Build and Deploy Reference Pages and Other Documentation | |
# Ensure documentation builds on all platforms. Deploy from the Ubuntu build. | |
on: | |
# Trigger the workflow on a pull request, | |
pull_request: | |
push: | |
# And on pushes to main, which will occur when a PR is merged. | |
branches: | |
- main | |
# Also trigger on push of release tags to any branch. Useful | |
# for testing release builds before merging to main. | |
tags: | |
- 'v[0-9]+.[0-9]+.[0-9]+' | |
- 'v[0-9]+.[0-9]+.[0-9]+-*' | |
paths-ignore: | |
- .appveyor.yml | |
- .github/workflows/android.yml | |
- .github/workflows/check-mkvk.yml | |
- .github/workflows/formatting.yml | |
- .github/workflows/mingw.yml | |
- .github/workflows/publish-pyktx.yml | |
- .github/workflows/windows.yml | |
- .travis.yml | |
- README.md | |
- CODE_OF_CONDUCT.md | |
- CONTRIBUTING.md | |
- LICENSE.md | |
- LICENSES | |
- RELEASE_NOTES.md | |
- REUSE.toml | |
- vcpkg.json | |
- vcpkg-configuration.json | |
# Allow manual trigger | |
workflow_dispatch: | |
jobs: | |
build-docs: | |
name: Build KTX-Software reference pages and documentation | |
strategy: | |
matrix: | |
os: [ macos-latest, ubuntu-latest, windows-latest ] | |
runs-on: ${{ matrix.os }} | |
env: | |
BUILD_DIR: build | |
GIT_LFS_SKIP_SMUDGE: 1 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# Fetch all history to make sure tags are | |
# included (used for version creation) | |
fetch-depth: 0 | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11.4' | |
# virtualenv is no longer included as of 20240929.1 runner so | |
# install it ourselves. See | |
# https://github.com/actions/runner-images/issues/10749. | |
# | |
# Note that it is the builds of sdist and wheel that require virtualenv | |
# not the explicit dependencies of pyktx. | |
- name: Install Python virtualenv | |
run: pip install virtualenv | |
- name: Install Doxygen | |
uses: ssciwr/doxygen-install@v1 | |
- name: Install Graphviz | |
uses: ts-graphviz/setup-graphviz@v2 | |
- name: Smudge dates (macOS and Ubuntu) | |
if: matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' | |
run: ./install-gitconfig.sh && scripts/smudge_date.sh | |
- name: Smudge dates (Windows) | |
if: matrix.os == 'windows-latest' | |
run: ./install-gitconfig.ps1 && scripts/smudge_date.ps1 | |
- name: Build docs | |
run: | | |
echo "Doxygen version: $(doxygen --version)" | |
cmake -B ${{ env.BUILD_DIR }} -D KTX_FEATURE_DOC=ON -D KTX_FEATURE_PY=ON -D KTX_FEATURE_TESTS=OFF -D KTX_FEATURE_TOOLS=OFF | |
cmake --build ${{ env.BUILD_DIR }} --target all.doc | |
# - name: Patch .nojekyll | |
# Some files in the pyktx docs have an _ prefix so Jekyll will | |
# not copy them from the gh-pages branch to the website. This | |
# file says no Jekyll files here. Treat all as ordinary files. | |
# if: matrix.os == 'ubuntu-latest' | |
# run: touch ${{ env.BUILD_DIR }}/docs/html/.nojekyll | |
- name: Upload generated HTML documentation for GitHub Pages | |
if: matrix.os == 'ubuntu-latest' | |
id: deployment | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: ${{ env.BUILD_DIR }}/docs/html | |
# deploy: | |
# name: Deploy to GitHub Pages | |
# # Add a dependency to the build job | |
# needs: build-docs | |
# # Only deploy when building `main`. | |
# if: github.ref == 'refs/heads/main' | |
# | |
# runs-on: ubuntu-latest | |
# | |
# # Grant GITHUB_TOKEN the permissions required to make a Pages deployment | |
# permissions: | |
# pages: write # to deploy to Pages | |
# id-token: write # to verify the deployment originates from an appropriate source | |
# | |
# # Deploy to the github-pages environment | |
# environment: | |
# name: github-pages | |
# url: ${{ steps.deployment.outputs.page_url }} | |
# | |
# # Specify deployment step | |
# steps: | |
# - name: Deploy to GitHub Pages | |
# id: deployment | |
# uses: actions/deploy-pages@v4 |