Skip to content

Several fixes for serverless APIs #653

Several fixes for serverless APIs

Several fixes for serverless APIs #653

Workflow file for this run

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