Build and Test Package #2066
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
# check spelling, codestyle | |
name: Build and Test Package | |
# run only on main branch. This avoids duplicated actions on PRs | |
on: | |
pull_request: | |
merge_group: | |
push: | |
tags: | |
- "*" | |
branches: | |
- main | |
env: | |
MAIN_PYTHON_VERSION: '3.10' | |
LIBRARY_NAME: 'ansys-openapi-common' | |
DOCUMENTATION_CNAME: 'openapi.docs.pyansys.com' | |
jobs: | |
code-style: | |
name: "Code style" | |
runs-on: windows-latest | |
steps: | |
- uses: ansys/actions/code-style@v7 | |
with: | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
skip-install: "false" | |
doc-style: | |
name: Documentation Style Check | |
runs-on: ubuntu-latest | |
steps: | |
- name: PyAnsys documentation style checks | |
uses: ansys/actions/doc-style@v7 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
ignore-changelogd: true | |
doc-build: | |
name: Documentation build | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Run Ansys documentation building action" | |
uses: ansys/actions/doc-build@v7 | |
with: | |
check-links: false | |
sphinxopts: "-W --keep-going" | |
smoke-tests: | |
name: "Build wheelhouse for latest Python versions" | |
runs-on: ${{ matrix.os }} | |
needs: code-style | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
python-version: ['3.10', '3.11', '3.12'] | |
steps: | |
- uses: ansys/actions/build-wheelhouse@v7 | |
with: | |
library-name: ${{ env.LIBRARY_NAME }} | |
operating-system: ${{ matrix.os }} | |
python-version: ${{ matrix.python-version }} | |
tests: | |
name: Unit test on supported platforms | |
runs-on: ubuntu-latest | |
needs: smoke-tests | |
services: | |
# Label used to access the service container | |
kdc-server: | |
# Github container registry address | |
image: ghcr.io/ansys/kdc-container:v0.2 | |
credentials: | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
volumes: | |
# This is needed otherwise there won't be enough entropy to generate a new kerberos realm | |
- /dev/urandom:/dev/random | |
- /tmp/keytabs:/tmp/keytabs | |
ports: | |
- 749:749 | |
- 88:88/udp | |
container: | |
image: python:${{ matrix.python-version }} | |
volumes: | |
- /tmp/keytabs:/tmp/keytabs | |
strategy: | |
matrix: | |
python-version: ['3.10', '3.11', '3.12'] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure host kerberos | |
run: | | |
apt update | |
export DEBIAN_FRONTEND=noninteractive | |
apt install -yq krb5-user | |
cp ./tests/integration/krb5.conf /etc/krb5.conf | |
./tests/integration/configure_keytab.sh | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install 'tox<4' poetry | |
- name: Test with tox | |
run: tox -- --with-kerberos | |
- name: Upload coverage report | |
uses: codecov/codecov-action@v4 | |
if: ${{ github.actor != 'dependabot[bot]' }} | |
with: | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
build-library: | |
name: "Build library" | |
runs-on: ubuntu-latest | |
needs: [ doc-build, tests ] | |
steps: | |
- uses: ansys/actions/build-library@v7 | |
with: | |
library-name: ${{ env.LIBRARY_NAME }} | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
doc-deploy-dev: | |
name: "Deploy development documentation" | |
runs-on: ubuntu-latest | |
needs: [ build-library ] | |
if: github.event_name == 'push' && !contains(github.ref, 'refs/tags') | |
steps: | |
- uses: ansys/actions/doc-deploy-dev@v7 | |
with: | |
cname: ${{ env.DOCUMENTATION_CNAME }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
doc-artifact-name: documentation-html | |
update-changelog: | |
name: "Update CHANGELOG for new tag" | |
if: github.event_name == 'push' && contains(github.ref, 'refs/tags') | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
pull-requests: write | |
steps: | |
- uses: ansys/actions/doc-deploy-changelog@v7 | |
with: | |
token: ${{ secrets.PYANSYS_CI_BOT_TOKEN }} | |
release: | |
name: "Release" | |
if: github.event_name == 'push' && contains(github.ref, 'refs/tags') | |
needs: [build-library, update-changelog] | |
runs-on: ubuntu-latest | |
environment: release | |
permissions: | |
id-token: write | |
contents: write | |
steps: | |
- uses: ansys/actions/release-pypi-public@v7 | |
name: "Release to public PyPI" | |
with: | |
library-name: ${{ env.LIBRARY_NAME }} | |
use-trusted-publisher: true | |
- uses: ansys/actions/release-github@v7 | |
name: "Release to GitHub" | |
with: | |
library-name: ${{ env.LIBRARY_NAME }} | |
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@v7 | |
with: | |
cname: ${{ env.DOCUMENTATION_CNAME }} | |
token: ${{ secrets.GITHUB_TOKEN }} |