Skip to content

Mostieri/fix contributors #1781

Mostieri/fix contributors

Mostieri/fix contributors #1781

Workflow file for this run

name: GitHub CI
# run only on main branch. This avoids duplicated actions on PRs
on:
workflow_dispatch:
pull_request:
push:
tags:
- "*"
branches:
- main
env:
DOCUMENTATION_CNAME: 'ensight.docs.pyansys.com'
MAIN_PYTHON_VERSION: '3.10'
PACKAGE_NAME: 'ansys-pyensight-core'
PACKAGE_NAMESPACE: 'ansys.pyensight.core'
ENSIGHT_IMAGE: 'ghcr.io/ansys-internal/ensight_dev'
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 }}
doc-style:
name: "Doc style"
runs-on: ubuntu-latest
steps:
- uses: ansys/actions/doc-style@v8
with:
token: ${{ secrets.GITHUB_TOKEN }}
smoke-tests:
name: "Wheelhouse for ${{ matrix.os }} and ${{ matrix.python-version }}"
runs-on: ${{ matrix.os }}
needs: code-style
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.9', '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 wheelhouse and perform smoke test
uses: ansys/actions/build-wheelhouse@v8
with:
library-name: ${{ env.PACKAGE_NAME }}
library-namespace: ${{ env.PACKAGE_NAMESPACE }}
operating-system: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
tests:
name: "Test ${{ matrix.python-version }} with ${{ matrix.os }}"
needs: [smoke-tests]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ['3.9', '3.10', '3.11', '3.12']
steps:
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: docker
run: docker pull ${{ env.ENSIGHT_IMAGE }}
- name: Run pytest
uses: ansys/actions/tests-pytest@v8
env:
ANSYSLMD_LICENSE_FILE: ${{ format('1055@{0}', secrets.LICENSE_SERVER) }}
with:
python-version: ${{ matrix.python-version }}
requires-xvfb: true
pytest-extra-args: "-n 4 --reruns 3"
- uses: codecov/codecov-action@v3
name: 'Upload coverage to CodeCov'
doc:
name: "Doc build"
runs-on: ubuntu-latest
needs: doc-style
steps:
- uses: actions/checkout@v4
- name: Login in Github Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ansys-bot
password: ${{ secrets.GITHUB_TOKEN }}
- name: Docker pull
run: docker pull ${{ env.ENSIGHT_IMAGE }}
- name: Run Ansys documentation building action
uses: ansys/actions/doc-build@v8
env:
ANSYSLMD_LICENSE_FILE: ${{ format('1055@{0}', secrets.LICENSE_SERVER) }}
with:
sphinxopts: '-j auto'
build-library:
name: "Build library"
needs: [doc, tests]
runs-on: ubuntu-latest
steps:
- uses: ansys/actions/build-library@v8
with:
library-name: ${{ env.PACKAGE_NAME }}
python-version: ${{ env.MAIN_PYTHON_VERSION }}
doc-deploy-dev:
name: "Deploy development documentation"
# Deploy development only when merging to main
if: github.ref == 'refs/heads/main'
needs: build-library
runs-on: ubuntu-latest
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 }}
release:
name: Release
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
needs: build-library
runs-on: ubuntu-latest
steps:
# Upload first to the private PyPi, at least up until we release
- name: Release to the private PyPI repository
uses: ansys/actions/release-pypi-private@v8
with:
library-name: ${{ env.PACKAGE_NAME }}
twine-token: ${{ secrets.PYANSYS_PYPI_PRIVATE_PAT }}
- 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
with:
library-name: ${{ env.PACKAGE_NAME }}
doc-deploy-stable:
name: "Deploy stable documentation"
# Deploy release documentation when creating a new tag
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 }}
build-failure:
name: Teams notify on failure
if: failure() && (github.event_name == 'pull_request' || github.ref == 'refs/heads/main' || github.ref_type == 'tag')
needs: tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Microsoft Teams Notification
uses: jdcargile/ms-teams-notification@v1.4
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