Skip to content

Edits for overall doc review prior to public release #969

Edits for overall doc review prior to public release

Edits for overall doc review prior to public release #969

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:
style:
name: Code style
runs-on: ubuntu-latest
steps:
- name: PyAnsys code style checks
uses: ansys/actions/code-style@v4
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
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:
name: Build and Smoke tests
runs-on: ${{ matrix.os }}
needs: [style]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.8', '3.9', '3.10', '3.11']
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@v4
with:
library-name: ${{ env.PACKAGE_NAME }}
library-namespace: ${{ env.PACKAGE_NAMESPACE }}
operating-system: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
build_and_test:
name: Build & test
needs: [smoke-tests]
runs-on: ubuntu-latest
steps:
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
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@v4
env:
ANSYSLMD_LICENSE_FILE: ${{ format('1055@{0}', secrets.LICENSE_SERVER) }}
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
requires-xvfb: true
- uses: codecov/codecov-action@v3
name: 'Upload coverage to CodeCov'
docs:
name: Build docs
runs-on: ubuntu-latest
needs: [smoke-tests]
steps:
- uses: actions/checkout@v3
- name: Login in Github Container registry
uses: docker/login-action@v2
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@v4
env:
ANSYSLMD_LICENSE_FILE: ${{ format('1055@{0}', secrets.LICENSE_SERVER) }}
with:
sphinxopts: '-j auto'
package:
name: Package library
needs: [build_and_test, docs]
runs-on: ubuntu-latest
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 }}
doc-deploy-dev:
name: "Deploy development documentation"
# Deploy development only when merging to main
if: github.ref == 'refs/heads/main'
needs: [package]
runs-on: ubuntu-latest
steps:
- name: "Deploy the latest documentation"
uses: ansys/actions/doc-deploy-dev@v4
with:
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
release:
name: Release
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
needs: [package]
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@v4
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@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 }}
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: [package]
steps:
- name: "Deploy the stable documentation"
uses: ansys/actions/doc-deploy-stable@v4
with:
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
build-failure:
name: Teams notify on failure
if: failure() && (github.event_name == 'pull_request' || github.ref == 'refs/heads/main' || github.ref_type == 'tag')
needs: [smoke-tests, build_and_test ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Microsoft Teams Notification
uses: jdcargile/ms-teams-notification@v1.3
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