MAINT: Bump pydantic from 2.10.3 to 2.10.4 #1955
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: | |
merge_group: | |
workflow_dispatch: | |
push: | |
tags: | |
- "*" | |
branches: | |
- main | |
permissions: | |
contents: write | |
packages: read | |
env: | |
MAIN_PYTHON_VERSION: "3.10" | |
DOCUMENTATION_CNAME: "additive.docs.pyansys.com" | |
LIBRARY_NAME: "ansys-additive-core" | |
# NOTE: The server needs to stay in a private registry. | |
ANSYS_PRODUCT_IMAGE: "ghcr.io/ansys-internal/additive:latest" | |
ANSYS_PRODUCT_CONTAINER: "ansys-additive-container" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
code-style: | |
name: "Running code style checks" | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Run PyAnsys code style checks" | |
uses: ansys/actions/code-style@v8 | |
doc-style: | |
name: "Running documentation style checks" | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Running documentation style checks" | |
uses: ansys/actions/doc-style@v8 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
smoke-tests: | |
name: "Build wheelhouse for Python versions" | |
runs-on: ${{ matrix.os }} | |
needs: [code-style] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
python-version: ["3.10", "3.11", "3.12"] | |
should-release: | |
- ${{ github.event_name == 'push' && contains(github.ref, 'refs/tags') }} | |
exclude: | |
- should-release: false | |
os: macos-latest | |
steps: | |
- name: "Build a wheelhouse of the Python library" | |
uses: ansys/actions/build-wheelhouse@v8 | |
with: | |
library-name: ${{ env.LIBRARY_NAME }} | |
operating-system: ${{ matrix.os }} | |
python-version: ${{ matrix.python-version }} | |
tests: | |
name: "Testing library with different operating systems and Python versions" | |
runs-on: ${{ matrix.os }} | |
needs: [smoke-tests] | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
python-version: ["3.10", "3.11", "3.12"] | |
fail-fast: false | |
steps: | |
- name: "Run pytest" | |
uses: ansys/actions/tests-pytest@v8 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Upload Coverage Results | |
if: (matrix.python-version == env.MAIN_PYTHON_VERSION) && (runner.os == 'Linux') | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-html | |
path: .cov/html | |
retention-days: 7 | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
if: (matrix.python-version == env.MAIN_PYTHON_VERSION) && (runner.os == 'Linux') | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
with: | |
files: .cov/xml | |
doc-build: | |
name: "Building library documentation" | |
# This is dumb but the schema checker doesn't allow the runner name | |
# `public-ubuntu-latest-8-cores`. Circumvent this by using a matrix | |
# strategy. | |
strategy: | |
matrix: | |
runner: [public-ubuntu-latest-8-cores] | |
runs-on: ${{ matrix.runner }} | |
needs: [doc-style] | |
timeout-minutes: 90 | |
steps: | |
- name: "Login into the GitHub registry container" | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: "Download the Docker image for Ansys Additive" | |
run: | | |
docker pull ${{ env.ANSYS_PRODUCT_IMAGE }} | |
- name: "Start product server" | |
# Don't use --rm flag. The container is removed in a later step | |
# after collecting the logs. | |
run: | | |
docker run --detach \ | |
--name ${{ env.ANSYS_PRODUCT_CONTAINER }} \ | |
-e ANSYSLMD_LICENSE_FILE=1055@${{ env.LICENSE_SERVER }} \ | |
-p 50052:50052 \ | |
${{ env.ANSYS_PRODUCT_IMAGE }} | |
env: | |
LICENSE_SERVER: ${{ secrets.LICENSE_SERVER }} | |
- name: "Setup headless display" | |
uses: pyvista/setup-headless-display-action@v3 | |
- name: "Checkout code" | |
uses: actions/checkout@v4 | |
- name: "Build documentation with short examples" | |
if: github.event_name != 'push' | |
uses: ansys/actions/doc-build@v8 | |
with: | |
checkout: false | |
sphinxopts: "-j auto" | |
dependencies: "pandoc" | |
env: | |
GENERATING_DOCS: 1 | |
ANSYS_ADDITIVE_ADDRESS: "localhost:50052" | |
BUILD_EXAMPLES_LONG: false | |
- name: "Build documentation with long examples" | |
if: github.event_name == 'push' | |
uses: ansys/actions/doc-build@v8 | |
with: | |
checkout: false | |
sphinxopts: "-j auto" | |
dependencies: "pandoc" | |
env: | |
GENERATING_DOCS: 1 | |
ANSYS_ADDITIVE_ADDRESS: "localhost:50052" | |
- name: "Collect logs and shutdown server" | |
if: ${{ always() }} | |
run: | | |
docker stop ${{ env.ANSYS_PRODUCT_CONTAINER }} | |
docker logs ${{ env.ANSYS_PRODUCT_CONTAINER }} >> docker-logs.txt | |
docker rm ${{ env.ANSYS_PRODUCT_CONTAINER }} | |
- name: "Upload container logs as artifacts" | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: docker-logs.txt | |
path: docker-logs.txt | |
build-library: | |
name: "Build library artifacts" | |
needs: [tests, doc-build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Build library source and wheel artifacts" | |
uses: ansys/actions/build-library@v8 | |
with: | |
library-name: ${{ env.LIBRARY_NAME }} | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
release: | |
name: "Release project" | |
if: github.event_name == 'push' && contains(github.ref, 'refs/tags') | |
needs: [build-library] | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Release to the PyPI repository" | |
uses: ansys/actions/release-pypi-public@v8 | |
with: | |
library-name: ${{ env.LIBRARY_NAME }} | |
twine-username: "__token__" | |
twine-token: ${{ secrets.PYPI_TOKEN }} | |
- name: "Release to GitHub" | |
uses: ansys/actions/release-github@v8 | |
with: | |
library-name: ${{ env.LIBRARY_NAME }} | |
upload_dev_docs: | |
name: "Deploy developers documentation" | |
runs-on: ubuntu-latest | |
needs: [build-library] | |
if: github.event_name == 'push' | |
steps: | |
- name: "Deploy the latest documentation" | |
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 }} | |
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.GITHUB_TOKEN }} | |
bot-user: ${{ secrets.PYANSYS_CI_BOT_USERNAME }} | |
bot-email: ${{ secrets.PYANSYS_CI_BOT_EMAIL }} |