[pre-commit.ci] pre-commit autoupdate (#787) #2006
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
name: GitHub CI | |
on: | |
pull_request: | |
workflow_dispatch: | |
push: | |
tags: | |
- "*" | |
branches: | |
- main | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
PACKAGE_NAME: pyansys | |
PACKAGE_NAMESPACE: pyansys | |
MAIN_PYTHON_VERSION: '3.11' | |
DOCUMENTATION_CNAME: "docs.pyansys.com" | |
jobs: | |
check-vulnerabilities: | |
name: Check third-party dependencies for vulnerabilities | |
runs-on: ubuntu-latest | |
steps: | |
- name: PyAnsys Vulnerability Check (on PRs) | |
if: github.event_name == 'pull_request' | |
uses: ansys/actions/check-vulnerabilities@v8 | |
with: | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
python-package-name: ${{ env.PACKAGE_NAME }} | |
token: ${{ secrets.PYANSYS_CI_BOT_TOKEN }} | |
dev-mode: true | |
- name: PyAnsys Vulnerability Check (any other case) | |
if: github.event_name != 'pull_request' | |
uses: ansys/actions/check-vulnerabilities@v8 | |
with: | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
python-package-name: ${{ env.PACKAGE_NAME }} | |
token: ${{ secrets.PYANSYS_CI_BOT_TOKEN }} | |
check-licenses: | |
name: Check depencencies' licenses | |
runs-on: ubuntu-latest | |
steps: | |
- name: PyAnsys Licenses Check | |
uses: ansys/actions/check-licenses@main | |
with: | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
target: "all" | |
docs-style: | |
name: Documentation Style Check | |
runs-on: ubuntu-latest | |
steps: | |
- name: PyAnsys documentation style checks | |
uses: ansys/actions/doc-style@v8 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
smoke-tests-core: | |
name: Build core PyAnsys packages | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-latest] | |
python-version: ['3.10', '3.11', '3.12'] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' | |
cache-dependency-path: 'pyproject.toml' | |
- name: Install core PyAnsys packages | |
run: | | |
pip install . | |
- name: Smoke test | |
run: python -c "from ${{ env.PACKAGE_NAMESPACE }} import __version__; print(__version__)" | |
smoke-tests-extras: | |
name: Build extras PyAnsys packages | |
runs-on: ${{ matrix.os }} | |
needs: [smoke-tests-core] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-latest] | |
python-version: ['3.10', '3.11', '3.12'] | |
extras-version: ['fluent-all', 'mapdl-all', 'tools'] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' | |
cache-dependency-path: 'pyproject.toml' | |
- name: Install ${{ matrix.extras-version }} PyAnsys packages | |
run: | | |
pip install .[${{ matrix.extras-version }}] | |
- name: Smoke test | |
run: python -c "from ${{ env.PACKAGE_NAMESPACE }} import __version__; print(__version__)" | |
wheelhouse-all: | |
name: Build PyAnsys package wheelhouse | |
runs-on: ${{ matrix.os }} | |
needs: [smoke-tests-core] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-latest, macos-latest] | |
python-version: ['3.10', '3.11', '3.12'] | |
steps: | |
- name: Build wheelhouse and perform smoke test | |
uses: ansys/actions/build-wheelhouse@v8 | |
with: | |
library-name: ${{ env.PACKAGE_NAME }} | |
operating-system: ${{ runner.os }} | |
python-version: ${{ matrix.python-version }} | |
target: "all" | |
- name: List dependencies (pip freeze) | |
run: | | |
pip freeze > all-deps-${{ runner.os }}-${{ matrix.python-version }}.txt | |
cat all-deps-${{ runner.os }}-${{ matrix.python-version }}.txt | |
- name: Upload dependencies list | |
uses: actions/upload-artifact@v4 | |
with: | |
name: all-deps-${{ runner.os }}-${{ matrix.python-version }} | |
path: all-deps-${{ runner.os }}-${{ matrix.python-version }}.txt | |
retention-days: 7 | |
docs-build: | |
name: Building Documentation | |
runs-on: ubuntu-latest | |
needs: [docs-style] | |
steps: | |
- name: Build documentation | |
uses: ansys/actions/doc-build@v8 | |
with: | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
dependencies: "build-essential zip pandoc texlive-latex-extra latexmk texlive-pstricks" | |
doc-deploy-dev: | |
name: "Deploy development docs" | |
if: github.ref == 'refs/heads/main' | |
runs-on: ubuntu-latest | |
needs: [package] | |
steps: | |
- name: Deploy the latest documentation | |
uses: ansys/actions/doc-deploy-dev@v8 | |
with: | |
cname: ${{ env.DOCUMENTATION_CNAME }} | |
token: ${{ secrets.PYANSYS_CI_BOT_TOKEN }} | |
bot-user: ${{ secrets.PYANSYS_CI_BOT_USERNAME }} | |
bot-email: ${{ secrets.PYANSYS_CI_BOT_EMAIL }} | |
adapt-landing-page-dev: | |
uses: ./.github/workflows/update-gh-pages.yml | |
needs: [doc-deploy-dev] | |
secrets: inherit | |
package: | |
name: Package library | |
runs-on: ubuntu-latest | |
needs: [docs-build, smoke-tests-core] | |
steps: | |
- name: Build library source and wheel artifacts | |
uses: ansys/actions/build-library@v8 | |
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, smoke-tests-extras, wheelhouse-all] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Release to PyPI repository | |
uses: ansys/actions/release-pypi-public@v8 | |
with: | |
library-name: ${{ env.PACKAGE_NAME }} | |
twine-username: __token__ | |
twine-token: ${{ secrets.PYPI_TOKEN }} | |
- name: Release to GitHub | |
uses: ansys/actions/release-github@v8 | |
with: | |
library-name: ${{ env.PACKAGE_NAME }} | |
additional-artifacts: 'all-deps-Linux-3.10 all-deps-Linux-3.11 all-deps-Linux-3.12 all-deps-Windows-3.10 all-deps-Windows-3.11 all-deps-Windows-3.12 all-deps-macOS-3.10 all-deps-macOS-3.11 all-deps-macOS-3.12' | |
docs-release: | |
name: Deploy release docs | |
runs-on: ubuntu-latest | |
needs: [release] | |
steps: | |
- name: Deploy the latest release documentation | |
uses: ansys/actions/doc-deploy-stable@v8 | |
with: | |
cname: ${{ env.DOCUMENTATION_CNAME }} | |
token: ${{ secrets.PYANSYS_CI_BOT_TOKEN }} | |
bot-user: ${{ secrets.PYANSYS_CI_BOT_USERNAME }} | |
bot-email: ${{ secrets.PYANSYS_CI_BOT_EMAIL }} | |
adapt-landing-page-release: | |
uses: ./.github/workflows/update-gh-pages.yml | |
needs: [docs-release] | |
secrets: inherit |