[pre-commit.ci] pre-commit autoupdate #649
Workflow file for this run
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: | |
push: | |
tags: | |
- "*" | |
branches: | |
- main | |
env: | |
MAIN_PYTHON_VERSION: '3.12' | |
PACKAGE_NAME: 'pyansys-tools-report' | |
PACKAGE_NAMESPACE: 'ansys.tools.report' | |
DOCUMENTATION_CNAME: 'report.tools.docs.pyansys.com' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
check-vulnerabilities: | |
name: "Check library vulnerabilities" | |
runs-on: ubuntu-latest | |
permissions: write-all | |
steps: | |
- name: "Check library vulnerabilities - development mode" | |
if: github.ref != 'refs/heads/main' | |
uses: ansys/actions/check-vulnerabilities@v8 | |
with: | |
token: ${{ secrets.SAFETY_TOKEN }} | |
python-package-name: ${{ env.PACKAGE_NAME }} | |
dev-mode: true | |
- name: "Check library vulnerabilities - default mode" | |
if: github.ref == 'refs/heads/main' | |
uses: ansys/actions/check-vulnerabilities@v8 | |
with: | |
token: ${{ secrets.SAFETY_TOKEN }} | |
python-package-name: ${{ env.PACKAGE_NAME }} | |
docs-style: | |
name: PyAnsys 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: | |
name: Build and smoke tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-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: ${{ matrix.os }} | |
python-version: ${{ matrix.python-version }} | |
smoke-tests-macos: | |
name: Build and smoke tests (macOS) | |
if: ${{ github.event_name == 'push' && contains(github.ref, 'refs/tags') }} | |
runs-on: macos-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
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 }} | |
tests: | |
name: Testing | |
runs-on: ${{ matrix.os }} | |
needs: [smoke-tests] | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
python-version: ['3.10', '3.11', '3.12'] | |
steps: | |
- name: Run pytest | |
uses: ansys/actions/tests-pytest@v8 | |
with: | |
python-version: ${{ matrix.python-version }} | |
pytest-extra-args: "--cov=${{ env.PACKAGE_NAMESPACE }} --cov-report=term --cov-report=xml:.cov/coverage.xml --cov-report=html:.cov/html" | |
- name: Upload coverage results (HTML) | |
uses: actions/upload-artifact@v4 | |
if: (matrix.python-version == env.MAIN_PYTHON_VERSION) && (runner.os == 'Linux') | |
with: | |
name: coverage-html | |
path: .cov/html | |
retention-days: 7 | |
- name: Upload coverage results (Codecov) | |
uses: codecov/codecov-action@v4 | |
if: (matrix.python-version == env.MAIN_PYTHON_VERSION) && (runner.os == 'Linux') | |
with: | |
files: .cov/coverage.xml | |
docs: | |
name: Documentation | |
runs-on: ubuntu-latest | |
needs: [docs-style] | |
steps: | |
- name: "Run Ansys documentation building action" | |
uses: ansys/actions/doc-build@v8 | |
with: | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
dependencies: "build-essential zip pandoc texlive-latex-extra latexmk texlive-pstricks" | |
package: | |
name: Package library | |
needs: [tests, docs] | |
runs-on: ubuntu-latest | |
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-macos] | |
runs-on: ubuntu-latest | |
# Specifying a GitHub environment is optional, but strongly encouraged | |
environment: release | |
permissions: | |
# IMPORTANT: this permission is mandatory for trusted publishing | |
id-token: write | |
contents: write | |
steps: | |
- name: Release to the public PyPI repository | |
uses: ansys/actions/release-pypi-public@v8 | |
with: | |
library-name: ${{ env.PACKAGE_NAME }} | |
use-trusted-publisher: true | |
- name: Release to GitHub | |
uses: ansys/actions/release-github@v8 | |
with: | |
library-name: ${{ env.PACKAGE_NAME }} | |
upload_docs_dev: | |
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@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 }} | |
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@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 }} |