Skip to content

Build(deps): Bump the deps group across 1 directory with 5 updates #2972

Build(deps): Bump the deps group across 1 directory with 5 updates

Build(deps): Bump the deps group across 1 directory with 5 updates #2972

Workflow file for this run

name: GitHub CI
on:
pull_request:
types: [opened, reopened, synchronize, edited, closed]
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"
GITHUB_TOKEN: ${{ secrets.PYANSYS_CI_BOT_TOKEN }}
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@v10
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@v10
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
if: github.event.action != 'closed'
steps:
- name: PyAnsys Licenses Check
uses: ansys/actions/check-licenses@v10
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
target: "all"
whitelist-license-check: "attrs,referencing,jeepney,paramiko,ansys-dpf-post" # This has MIT license but fails the check, paramiko and ansys-dpf-post need to be removed eventually from the whitelist
docs-style:
name: Documentation Style Check
if: github.event.action != 'closed'
runs-on: ubuntu-latest
steps:
- name: PyAnsys documentation style checks
uses: ansys/actions/doc-style@v10
with:
token: ${{ secrets.GITHUB_TOKEN }}
smoke-tests-core:
name: Build core PyAnsys packages
if: github.event.action != 'closed'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-latest]
python-version: ['3.10', '3.11', '3.12', '3.13']
steps:
- uses: actions/checkout@v5
- name: Install the latest version of uv and set the python version
uses: astral-sh/setup-uv@v7
with:
python-version: ${{ matrix.python-version }}
cache-dependency-glob: '**/pyproject.toml'
activate-environment: true
- name: Install core PyAnsys packages
run: |
uv pip install .
- name: Smoke test
run: python -c "from ${{ env.PACKAGE_NAMESPACE }} import __version__; print(__version__)"
smoke-tests-extras:
name: Build extras PyAnsys packages
if: github.event.action != 'closed'
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', '3.13']
extras-version: ['fluent-all', 'mapdl-all', 'tools']
steps:
- uses: actions/checkout@v5
- name: Install the latest version of uv and set the python version
uses: astral-sh/setup-uv@v7
with:
python-version: ${{ matrix.python-version }}
cache-dependency-glob: '**/pyproject.toml'
activate-environment: true
- name: Install ${{ matrix.extras-version }} PyAnsys packages
run: |
uv 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
if: github.event.action != 'closed'
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', '3.13']
steps:
- name: Build wheelhouse and perform smoke test
uses: ansys/actions/build-wheelhouse@v10
with:
library-name: ${{ env.PACKAGE_NAME }}
operating-system: ${{ runner.os }}
python-version: ${{ matrix.python-version }}
target: "all"
whitelist-license-check: "attrs,referencing,jeepney" # This has MIT license but fails the check
- 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
if: github.event.action != 'closed'
runs-on: ubuntu-latest
needs: [docs-style]
steps:
- name: Build documentation
uses: ansys/actions/doc-build@v10
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
dependencies: "build-essential zip pandoc texlive-latex-extra latexmk texlive-pstricks"
skip-dependencies-cache: true
env:
GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }}
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@v10
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@v10
with:
library-name: ${{ env.PACKAGE_NAME }}
python-version: ${{ env.MAIN_PYTHON_VERSION }}
doc-deploy-pr:
name: "Deploy PR documentation"
runs-on: ubuntu-latest
needs: [docs-build]
# Run when the PR is closed i.e. when docs job is skipped
if: always() && (needs.docs-build.result == 'success' || needs.docs-build.result == 'skipped')
steps:
- uses: ansys/actions/doc-deploy-pr@v10
with:
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
bot-user: ${{ secrets.PYANSYS_CI_BOT_USERNAME }}
bot-email: ${{ secrets.PYANSYS_CI_BOT_EMAIL }}
maximum-pr-doc-deployments: 20
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
permissions:
contents: write
steps:
- name: Release to PyPI repository
uses: ansys/actions/release-pypi-public@v10
with:
library-name: ${{ env.PACKAGE_NAME }}
twine-username: __token__
twine-token: ${{ secrets.PYPI_TOKEN }}
- name: Release to GitHub
uses: ansys/actions/release-github@v10
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-Linux-3.13 all-deps-Windows-3.10 all-deps-Windows-3.11 all-deps-Windows-3.12 all-deps-Windows-3.13 all-deps-macOS-3.10 all-deps-macOS-3.11 all-deps-macOS-3.12 all-deps-macOS-3.13'
token: ${{ secrets.GITHUB_TOKEN }}
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@v10
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
automerge-prs:
name: Automerge PRs
runs-on: ubuntu-latest
needs: [package, wheelhouse-all]
if: github.event_name == 'pull_request'
permissions:
contents: write
pull-requests: write
steps:
- name: Automerge PRs
uses: ansys/actions/hk-automerge-prs@v10
with:
approver: ${{ secrets.PYANSYS_CI_BOT_USERNAME }}
approver-token: ${{ secrets.PYANSYS_CI_BOT_TOKEN }}