Update python to 3.13 and use it as the default for automated workflows #648
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: CI-CD | |
# run only on main branch. This avoids duplicated actions on PRs | |
on: | |
workflow_dispatch: | |
pull_request: | |
branches: | |
- main | |
- release/* | |
push: | |
tags: | |
- "v*" | |
branches: | |
- main | |
- release/* | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
DOCUMENTATION_CNAME: 'dynamicreporting.docs.pyansys.com' | |
MAIN_PYTHON_VERSION: '3.13' | |
PACKAGE_NAME: 'ansys-dynamicreporting-core' | |
PACKAGE_NAMESPACE: 'ansys.dynamicreporting.core' | |
jobs: | |
style: | |
name: Code style | |
runs-on: ubuntu-latest | |
steps: | |
- name: PyAnsys code style checks | |
uses: ansys/actions/code-style@v8 | |
with: | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
show-diff-on-failure: false | |
# docs-style: | |
# name: Documentation style check | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: PyAnsys documentation style checks | |
# uses: ansys/actions/doc-style@v4 | |
# with: | |
# token: ${{ secrets.GITHUB_TOKEN }} | |
smoke-tests: | |
name: Build and smoke tests | |
runs-on: ${{ matrix.os }} | |
needs: [ style ] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, windows-latest ] | |
python-version: [ '3.10', '3.11', '3.12', '3.13' ] | |
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 }} | |
test: | |
name: Testing | |
needs: [ smoke-tests ] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ ubuntu-latest ] | |
python-version: [ '3.10', '3.11', '3.12', '3.13' ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Pull Docker container | |
run: make pull-docker | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Run pytest | |
run: make test | |
env: | |
ANSYSLMD_LICENSE_FILE: ${{ format('1055@{0}', secrets.LICENSE_SERVER) }} | |
- name: Upload coverage report | |
if: env.MAIN_PYTHON_VERSION == matrix.python-version | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage.xml | |
path: coverage.xml | |
retention-days: 60 | |
if-no-files-found: error | |
- name: Upload coverage to Codecov | |
if: env.MAIN_PYTHON_VERSION == matrix.python-version | |
uses: codecov/codecov-action@v4 | |
docs: | |
name: Build docs | |
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 }} | |
check-links: false | |
sphinxopts: '-j auto' | |
package: | |
name: Package library | |
needs: [ test, 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' && startsWith(github.ref, 'refs/tags/v') | |
needs: [ package ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Release to the public 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 | |
if: ${{ !env.ACT }} | |
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@v8 | |
if: ${{ !env.ACT }} | |
with: | |
cname: ${{ env.DOCUMENTATION_CNAME }} | |
token: ${{ secrets.GITHUB_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 | |
if: ${{ !env.ACT }} | |
with: | |
cname: ${{ env.DOCUMENTATION_CNAME }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
bot-user: ${{ secrets.PYANSYS_CI_BOT_USERNAME }} | |
bot-email: ${{ secrets.PYANSYS_CI_BOT_EMAIL }} | |
build-failure: | |
name: Teams notify on failure | |
if: failure() && (github.event_name == 'pull_request' || github.ref == 'refs/heads/main' || github.ref_type == 'tag') | |
needs: [ style, test ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Microsoft Teams Notification | |
uses: jdcargile/[email protected] | |
with: | |
github-token: ${{ github.token }} # this will use the runner's token. | |
ms-teams-webhook-uri: ${{ secrets.MS_TEAMS_WEBHOOK_URI }} | |
notification-summary: GitHub CI failure - ${{ github.event.pull_request.title }} | |
notification-color: dc3545 | |
timezone: America/New_York |