Skip to content

CHORE: New dev version #841

CHORE: New dev version

CHORE: New dev version #841

Workflow file for this run

name: "CI"
on:
pull_request:
push:
tags:
- "v*.*.*"
branches:
- main
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
env:
MAIN_PYTHON_VERSION: '3.10'
DOCUMENTATION_CNAME: 'aedt.antenna.toolkit.docs.pyansys.com'
LIBRARY_NAME: 'ansys-aedt-toolkits-antenna'
LIBRARY_NAMESPACE: 'ansys.aedt.toolkits.antenna'
ANSYSLMD_LICENSE_FILE: ${{ format('1055@{0}', secrets.LICENSE_SERVER) }}
ON_CI: True
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
code-style:
name: "Code style"
runs-on: ubuntu-latest
steps:
- uses: ansys/actions/code-style@v8
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
use-python-cache: false
doc-style:
name: "Documentation style"
runs-on: ubuntu-latest
steps:
- uses: ansys/actions/doc-style@v8
with:
token: ${{ secrets.GITHUB_TOKEN }}
vale-version: "3.4.1"
doc-build:
name: "Build documentation"
runs-on: [self-hosted, pyaedt, toolkits, Windows]
needs: [ doc-style ]
timeout-minutes: 15
steps:
- name: Build documentation
uses: ansys/actions/doc-build@v8
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
use-python-cache: false
add-pdf-html-docs-as-assets: true
check-links: true
smoke-tests:
name: "Build and Smoke tests"
strategy:
fail-fast: false
matrix:
os: [ windows-latest, ubuntu-latest ]
python-version: [ '3.10' ]
runs-on: ${{ matrix.os }}
needs: [ code-style ]
steps:
- uses: ansys/actions/build-wheelhouse@v8
with:
library-name: ${{ env.LIBRARY_NAME }}
operating-system: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
tests_windows:
name: "Windows Tests"
strategy:
matrix:
python-version: [ '3.10' ]
fail-fast: false
runs-on: [self-hosted, pyaedt, toolkits, Windows]
needs: [smoke-tests]
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Create Python venv
run: |
python -m venv .venv
.\.venv\Scripts\Activate.ps1
- name: Install packages for testing
run: |
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install --upgrade build wheel
pip install .[tests]
- name: Antenna models testing
timeout-minutes: 30
run: |
.\.venv\Scripts\Activate.ps1
pytest -v -m antenna_models_common_api --cov
pytest -v -m antenna_models_api --cov --cov-append
- name: Toolkit API testing
timeout-minutes: 30
run: |
.\.venv\Scripts\Activate.ps1
pytest -v -m antenna_toolkit_api --cov --cov-append
- name: Toolkit REST API testing
timeout-minutes: 30
run: |
.\.venv\Scripts\Activate.ps1
pytest -v -m antenna_toolkit_rest_api --cov --cov-append
- name: "Combine coverage files"
run: |
.\.venv\Scripts\Activate.ps1
python -m coverage html -d .cov\total-html
python -m coverage xml -o .cov\total.xml
- name: "Upload coverage results"
if: ${{ matrix.python-version == env.MAIN_PYTHON_VERSION }}
uses: actions/upload-artifact@v4
with:
path: .cov/total-html
name: html-total-coverage
- name: "Upload coverage report to codecov"
if: ${{ matrix.python-version == env.MAIN_PYTHON_VERSION }}
uses: codecov/codecov-action@v4
with:
file: .cov/total.xml
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
tests_linux:
name: "Linux Tests"
strategy:
matrix:
python-version: [ '3.10' ]
fail-fast: false
runs-on: [self-hosted, pyaedt, toolkits, Linux]
needs: [ smoke-tests ]
env:
ANSYSEM_ROOT242: '/ansys_inc/AnsysEM/v242/Linux64'
ANS_NODEPCHECK: '1'
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Create Python venv
run: |
python -m venv .venv_linux
- name: Install packages for testing
run: |
source .venv_linux/bin/activate
python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org pip -U
python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org wheel setuptools -U
python -c "import sys; print(sys.executable)"
python -m pip install --upgrade pip
pip install --upgrade build wheel
pip install --no-cache-dir .[tests]
pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org pytest-azurepipelines
- name: Antenna models testing
timeout-minutes: 5
run: |
export LD_LIBRARY_PATH=${{ env.ANSYSEM_ROOT242 }}/common/mono/Linux64/lib64:${{ env.ANSYSEM_ROOT242 }}/Delcross:$LD_LIBRARY_PATH
source .venv_linux/bin/activate
pytest -v -m antenna_models_common_api
pytest -v -m antenna_models_api
- name: Toolkit API testing
timeout-minutes: 30
run: |
export LD_LIBRARY_PATH=${{ env.ANSYSEM_ROOT242 }}/common/mono/Linux64/lib64:${{ env.ANSYSEM_ROOT242 }}/Delcross:$LD_LIBRARY_PATH
source .venv_linux/bin/activate
pytest -v -m antenna_toolkit_api
- name: Toolkit REST API testing
timeout-minutes: 30
run: |
export LD_LIBRARY_PATH=${{ env.ANSYSEM_ROOT242 }}/common/mono/Linux64/lib64:${{ env.ANSYSEM_ROOT242 }}/Delcross:$LD_LIBRARY_PATH
source .venv_linux/bin/activate
pytest -v -m antenna_toolkit_rest_api
build-library:
name: "Build library artifacts"
runs-on: ubuntu-latest
needs: [ doc-build, tests_windows, tests_linux ]
steps:
- uses: ansys/actions/build-library@v8
with:
library-name: ${{ env.LIBRARY_NAME }}
python-version: ${{ env.MAIN_PYTHON_VERSION }}
release:
name: "Release"
if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
needs: build-library
runs-on: ubuntu-latest
# Specifying a GitHub environment is optional, but strongly encouraged
environment: release
permissions:
id-token: write
contents: write
steps:
- name: "Release to the public PyPI repository"
uses: ansys/actions/release-pypi-public@v8
with:
library-name: ${{ env.LIBRARY_NAME }}
use-trusted-publisher: true
- name: "Release to GitHub"
uses: ansys/actions/release-github@v8
with:
library-name: ${{ env.LIBRARY_NAME }}
doc-deploy-dev:
name: "Deploy development documentation"
runs-on: ubuntu-latest
needs: build-library
if: github.event_name == 'push'
steps:
- uses: ansys/actions/doc-deploy-dev@v8
with:
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
bot-user: ${{ secrets.PYANSYS_CI_BOT_USERNAME }}
bot-email: ${{ secrets.PYANSYS_CI_BOT_EMAIL }}
doc-deploy-stable:
name: "Deploy stable documentation"
runs-on: ubuntu-latest
needs: release
if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
steps:
- uses: ansys/actions/doc-deploy-stable@v8
with:
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
bot-user: ${{ secrets.PYANSYS_CI_BOT_USERNAME }}
bot-email: ${{ secrets.PYANSYS_CI_BOT_EMAIL }}