feat: add protoc helper #1093
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: GitHub CI | |
on: | |
pull_request: | |
workflow_dispatch: | |
push: | |
tags: | |
- "*" | |
branches: | |
- main | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
PACKAGE_NAME: pyansys | |
PACKAGE_NAMESPACE: pyansys | |
MAIN_PYTHON_VERSION: '3.11' | |
DOCUMENTATION_CNAME: "docs.pyansys.com" | |
MEILISEARCH_API_KEY: ${{ secrets.MEILISEARCH_API_KEY }} | |
MEILISEARCH_PUBLIC_API_KEY: ${{ secrets.MEILISEARCH_PUBLIC_API_KEY }} | |
jobs: | |
check-licenses: | |
name: Check depencencies' licenses | |
runs-on: ubuntu-latest | |
steps: | |
- name: PyAnsys Licenses Check | |
uses: ansys/actions/check-licenses@main | |
with: | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
target: "all" | |
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-core: | |
name: Build core PyAnsys packages | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-latest] | |
python-version: ['3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' | |
cache-dependency-path: 'pyproject.toml' | |
- name: Install core PyAnsys packages | |
run: | | |
pip install . | |
- name: Smoke test | |
run: python -c "from ${{ env.PACKAGE_NAMESPACE }} import __version__; print(__version__)" | |
smoke-tests-extras: | |
name: Build extras PyAnsys packages | |
runs-on: ${{ matrix.os }} | |
needs: [smoke-tests-core] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-latest] | |
python-version: ['3.8', '3.9', '3.10', '3.11'] | |
extras-version: ['fluent-all', 'mapdl-all', 'tools'] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' | |
cache-dependency-path: 'pyproject.toml' | |
- name: Install ${{ matrix.extras-version }} PyAnsys packages | |
run: | | |
pip install .[${{ matrix.extras-version }}] | |
- name: Smoke test | |
run: python -c "from ${{ env.PACKAGE_NAMESPACE }} import __version__; print(__version__)" | |
wheelhouse-all: | |
name: Build PyAnsys package wheelhouse | |
runs-on: ${{ matrix.os }} | |
needs: [smoke-tests-core] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-latest, macos-latest] | |
python-version: ['3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- name: Build wheelhouse and perform smoke test | |
uses: ansys/actions/build-wheelhouse@v4 | |
with: | |
library-name: ${{ env.PACKAGE_NAME }} | |
operating-system: ${{ runner.os }} | |
python-version: ${{ matrix.python-version }} | |
target: "all" | |
- name: List dependencies (pip freeze) | |
run: | | |
pip freeze > all-deps-${{ runner.os }}-${{ matrix.python-version }}.txt | |
cat all-deps-${{ runner.os }}-${{ matrix.python-version }}.txt | |
- name: Upload dependencies list | |
uses: actions/upload-artifact@v3 | |
with: | |
name: all-deps-${{ runner.os }}-${{ matrix.python-version }} | |
path: all-deps-${{ runner.os }}-${{ matrix.python-version }}.txt | |
retention-days: 7 | |
docs-build: | |
name: Building Documentation | |
runs-on: ubuntu-latest | |
needs: [docs-style] | |
steps: | |
- name: Build documentation | |
uses: ansys/actions/doc-build@v4 | |
with: | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
dependencies: "build-essential zip pandoc texlive-latex-extra latexmk texlive-pstricks" | |
- name: Deploy the dev documentation | |
uses: ansys/actions/doc-deploy-dev@v4 | |
if: github.ref == 'refs/heads/main' | |
with: | |
cname: ${{ env.DOCUMENTATION_CNAME }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: "Deploy the dev documentation index" | |
uses: ansys/actions/doc-deploy-index@v4 | |
if: github.ref == 'refs/heads/main' | |
with: | |
cname: ${{ env.DOCUMENTATION_CNAME }}/version/dev | |
index-name: "pyansys-vdev" | |
host-url: ${{ vars.MEILISEARCH_HOST_URL }} | |
api-key: ${{ env.MEILISEARCH_API_KEY }} | |
package: | |
name: Package library | |
runs-on: ubuntu-latest | |
needs: [docs-build, smoke-tests-core] | |
steps: | |
- name: Build library source and wheel artifacts | |
uses: ansys/actions/build-library@v4 | |
with: | |
library-name: ${{ env.PACKAGE_NAME }} | |
python-version: ${{ env.MAIN_PYTHON_VERSION }} | |
release: | |
name: Release project | |
if: github.event_name == 'push' && contains(github.ref, 'refs/tags') | |
needs: [package, smoke-tests-extras, wheelhouse-all] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Release to PyPI repository | |
uses: ansys/actions/release-pypi-public@v4 | |
with: | |
library-name: ${{ env.PACKAGE_NAME }} | |
twine-username: __token__ | |
twine-token: ${{ secrets.PYPI_TOKEN }} | |
- name: Release to GitHub | |
uses: ansys/actions/release-github@v4 | |
with: | |
library-name: ${{ env.PACKAGE_NAME }} | |
additional-artifacts: 'all-deps-Linux-3.8 all-deps-Linux-3.9 all-deps-Linux-3.10 all-deps-Linux-3.11 all-deps-Windows-3.8 all-deps-Windows-3.9 all-deps-Windows-3.10 all-deps-Windows-3.11 all-deps-macOS-3.8 all-deps-macOS-3.9 all-deps-macOS-3.10 all-deps-macOS-3.11' | |
docs-release: | |
name: Deploy release docs | |
runs-on: ubuntu-latest | |
needs: [release] | |
steps: | |
- name: Deploy the latest release documentation | |
uses: ansys/actions/doc-deploy-stable@v4 | |
with: | |
cname: ${{ env.DOCUMENTATION_CNAME }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
doc-index-release: | |
name: "Deploy release docs index" | |
runs-on: ubuntu-latest | |
needs: docs-release | |
steps: | |
- name: "Install Git and clone project" | |
uses: actions/checkout@v4 | |
- name: "Install the library to get the version" | |
shell: bash | |
run: | | |
python -m pip install -e . | |
- name: "Get the version of the library" | |
run: | | |
VERSION=$(python -c "from ${{ env.PACKAGE_NAMESPACE }} import __version__; print('.'.join(__version__.split('.')[:2]))") | |
VERSION_MEILI=$(python -c "from ${{ env.PACKAGE_NAMESPACE }} import __version__; print('-'.join(__version__.split('.')[:2]))") | |
echo "Calculated VERSION: $VERSION" | |
echo "Calculated VERSION_MEILI: $VERSION_MEILI" | |
echo "VERSION=$VERSION" >> $GITHUB_ENV | |
echo "VERSION_MEILI=$VERSION_MEILI" >> $GITHUB_ENV | |
- name: "Deploy the latest documentation index" | |
uses: ansys/actions/doc-deploy-index@v4 | |
with: | |
cname: ${{ env.DOCUMENTATION_CNAME }}/version/${{ env.VERSION }} | |
index-name: pyansys-v${{ env.VERSION_MEILI }} | |
host-url: ${{ vars.MEILISEARCH_HOST_URL }} | |
api-key: ${{ env.MEILISEARCH_API_KEY }} |