Skip to content

Fix documentation build #57

Fix documentation build

Fix documentation build #57

Workflow file for this run

name: GitHub CI
on:
pull_request:
workflow_dispatch:
push:
tags:
- "*"
branches:
- main
env:
ANSYSLMD_LICENSE_FILE: ${{ format('1055@{0}', secrets.LICENSE_SERVER) }}
PYEDB_USE_LEGACY: '1'
MAIN_PYTHON_VERSION: '3.10'
MAIN_PYTHON_VERSION_WINDOWS_SELFHOSTED: '3.9'
PACKAGE_NAME: 'pyedb'
DOCUMENTATION_CNAME: 'edb.docs.pyansys.com'
VTK_OSMESA: 'vtk-osmesa==9.2.20230527.dev0'
IS_WORKFLOW_RUNNING: True
ARTIFACTORY_VERSION: v242
MEILISEARCH_API_KEY: ${{ secrets.MEILISEARCH_API_KEY }}
MEILISEARCH_HOST_URL: ${{ vars.MEILISEARCH_HOST_URL }}
MEILISEARCH_PUBLIC_API_KEY: ${{ secrets.MEILISEARCH_PUBLIC_API_KEY }}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
docs-style:
name: Check documentation style
runs-on: ubuntu-latest
steps:
- name: Check documentation style
uses: ansys/actions/doc-style@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
vale-config: "doc/.vale.ini"
vale-version: "2.29.6"
# TODO: uncomment once this repo is public
# smoke-tests:
# name: Build and Smoke tests
# runs-on: ${{ matrix.os }}
# strategy:
# fail-fast: false
# matrix:
# os: [ubuntu-latest, windows-latest]
# python-version: ['3.9', '3.10', '3.11']
# should-release:
# - ${{ github.event_name == 'push' && contains(github.ref, 'refs/tags') }}
# steps:
# - name: Build wheelhouse and perform smoke test
# uses: ansys/actions/build-wheelhouse@v4
# with:
# library-name: ${{ env.PACKAGE_NAME }}
# operating-system: ${{ matrix.os }}
# python-version: ${{ matrix.python-version }}
# =================================================================================================
# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv RUNNING ON SELF-HOSTED RUNNER vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
# =================================================================================================
# legacy-tests:
# name: "Check legacy tests"
# # needs: [smoke-tests]
# runs-on: [ windows, pyedb, self-hosted ]
# steps:
# - name: "Install Git and clone project"
# uses: actions/checkout@v4
# - name: "Set up Python"
# uses: ansys/actions/_setup-python@main
# with:
# python-version: ${{ env.MAIN_PYTHON_VERSION_WINDOWS_SELFHOSTED }}
# use-cache: false
# - name: Create Python venv
# run: |
# python -m venv .venv
# . .venv\Scripts\Activate.ps1
# - name: "Update pip"
# run: |
# . .venv\Scripts\Activate.ps1
# python -m pip install -U pip
# - name: "Install Python library and tests dependencies"
# run: |
# . .venv\Scripts\Activate.ps1
# python -m pip install .[tests]
# - name: "Install specific vtk version with OSMesa bundled"
# run: |
# . .venv\Scripts\Activate.ps1
# pip uninstall vtk -y
# # Note: the vtk-osmesa used is 9.2.X as 9.3.0 is not working
# # well with the use of pyvista in our tests atm.
# # TODO: update once a stable versio is working
# pip install --extra-index-url https://wheels.vtk.org ${{ env.VTK_OSMESA }}
# - name: "Executing legacy tests"
# run: |
# . .venv\Scripts\Activate.ps1
# pytest -m "legacy" -n auto --dist loadfile -v
# - name: Upload Coverage Results
# if: always()
# uses: actions/upload-artifact@v4
# with:
# name: legacy-coverage-html
# path: .cov/html
# retention-days: 7
# - name: Upload coverage to Codecov
# uses: codecov/codecov-action@v3
# if: matrix.docker-image == 'windows-latest'
# env:
# CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
# with:
# files: .cov/xml
docs-build:
name: Build documentation
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: "Set up Python"
uses: ansys/actions/_setup-python@main
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
use-cache: false
- name: Create Python venv
run: |
python -m venv .venv
- name: "Update pip"
run: |
. .venv/bin/activate
python -m pip install -U pip
- name: Install pyedb with doc dependencies
run: |
. .venv/bin/activate
pip install .[doc]
pip install ansys-sphinx-theme==0.12.5
- name: Verify that pyedb can be imported
run: |
. .venv/bin/activate
python -c "import pyedb"
- name: Retrieve pyedb version
run: |
. .venv/bin/activate
echo "Pyedb version: $(python -c "from pyedb import __version__; print(); print(__version__)" | tail -1)"
- name: Install doc build requirements
run: |
sudo apt install graphviz
# Run doc build, without creating the examples directory.
# NOTE: we have to add the examples file here since it won't be created as gallery is disabled on linux.
- name: Documentation Build
run: |
. .venv/bin/activate
make -C doc clean
mkdir doc/source/examples -p
echo $'Examples\n========' > doc/source/examples/index.rst
# make -C doc html SPHINXOPTS="-j auto -w build_errors.txt -N"
make -C doc html
# Verify that sphinx generates no warnings
- name: Check for warnings
run: |
. .venv/bin/activate
python doc/print_errors.py
- name: Upload Documentation
uses: actions/upload-artifact@v4
with:
name: documentation-html
path: doc/_build/html
retention-days: 1
# package:
# name: Package library
# needs: [legacy-tests, docs-build]
# runs-on: ubuntu-latest
# steps:
# - name: Build library source and wheel artifacts
# uses: ansys/actions/build-library@v5
# with:
# library-name: ${{ env.PACKAGE_NAME }}
# python-version: ${{ env.MAIN_PYTHON_VERSION }}
# release:
# name: Release project
# if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
# needs: [package]
# runs-on: ubuntu-latest
# steps:
# - name: Release to GitHub
# uses: ansys/actions/release-github@v5
# with:
# library-name: ${{ env.PACKAGE_NAME }}
# upload-dev-docs:
# name: Upload dev documentation
# if: github.ref == 'refs/heads/main'
# runs-on: ubuntu-latest
# needs: [package]
# steps:
# - name: Deploy the latest documentation
# uses: ansys/actions/doc-deploy-dev@v5
# with:
# cname: ${{ env.DOCUMENTATION_CNAME }}
# token: ${{ secrets.GITHUB_TOKEN }}
# # doc-index-dev:
# # name: "Deploy dev index docs"
# # if: github.ref == 'refs/heads/main'
# # runs-on: ubuntu-latest
# # needs: upload-dev-docs
# # steps:
# # - name: "Deploy the latest documentation index"
# # uses: ansys/actions/doc-deploy-index@v5
# # with:
# # cname: ${{ env.DOCUMENTATION_CNAME }}/version/dev
# # index-name: pyedb-vdev
# # host-url: ${{ env.MEILISEARCH_HOST_URL }}
# # api-key: ${{ env.MEILISEARCH_API_KEY }}
# # python-version: ${{ env.MAIN_PYTHON_VERSION }}
# upload-docs-release:
# name: Upload release documentation
# if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
# runs-on: ubuntu-latest
# needs: [release]
# steps:
# - name: Deploy the stable documentation
# uses: ansys/actions/doc-deploy-stable@v5
# with:
# cname: ${{ env.DOCUMENTATION_CNAME }}
# token: ${{ secrets.GITHUB_TOKEN }}
# # doc-index-stable:
# # name: "Deploy stable docs index"
# # runs-on: ubuntu-latest
# # needs: upload-docs-release
# # steps:
# # - name: "Install Git and clone project"
# # uses: actions/checkout@v4
# # - name: "Install the package requirements"
# # run: pip install -e .
# # - name: "Get the version to PyMeilisearch"
# # run: |
# # VERSION=$(python -c "from pyedb import __version__; print('.'.join(__version__.split('.')[:2]))")
# # VERSION_MEILI=$(python -c "from pyedb import __version__; print('-'.join(__version__.split('.')[:2]))")
# # echo "Calculated VERSION: $VERSION"
# # echo "Calculated VERSION_MEILI: $VERSION_MEILI"
# # echo "VERSION=$VERSION" >> $GITHUB_ENV
# # echo "VERSION_MEILI=$VERSION_MEILI" >> $GITHUB_ENV
# # - name: "Deploy the latest documentation index"
# # uses: ansys/actions/doc-deploy-index@v5
# # with:
# # cname: ${{ env.DOCUMENTATION_CNAME }}/version/${{ env.VERSION }}
# # index-name: pyedb-v${{ env.VERSION_MEILI }}
# # host-url: ${{ env.MEILISEARCH_HOST_URL }}
# # api-key: ${{ env.MEILISEARCH_API_KEY }}
# # python-version: ${{ env.MAIN_PYTHON_VERSION }}