Skip to content

Add template list

Add template list #475

Workflow file for this run

name: GitHub CI
on:
workflow_dispatch:
pull_request:
push:
tags:
- "*"
branches:
- main
env:
MAIN_PYTHON_VERSION: '3.10'
PACKAGE_NAME: ansys-motorcad-core
PACKAGE_NAMESPACE: ansys.motorcad.core
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
DOCUMENTATION_CNAME: 'motorcad.docs.pyansys.com'
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 }}
doc-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: [windows-latest]
python-version: ['3.7', '3.8', '3.9', '3.10']
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 }}
tests:
name: Tests and coverage
needs: smoke-tests
runs-on: [self-hosted, pymotorcad]
steps:
- name: Ensure Motor-CAD not open
run: |
taskkill /IM Motor-CAD* /F /FI "STATUS eq RUNNING"
taskkill /IM MotorLABruntime.exe /F /FI "STATUS eq RUNNING"
- uses: actions/checkout@v3
- name: Set up Python ${{ env.MAIN_PYTHON_VERSION }}
uses: actions/setup-python@v4
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip tox tox-gh-actions
- name: Test with tox
# Only the tox environment specified in the tox.ini gh-actions is run
run: tox -e py310-coverage
- uses: codecov/codecov-action@v3
name: 'Upload coverage to Codecov'
doc-build:
name: "Building library documentation"
runs-on: [self-hosted, pymotorcad]
needs: doc-style
steps:
- name: Ensure Motor-CAD not open
run: |
taskkill /IM Motor-CAD* /F /FI "STATUS eq RUNNING"
taskkill /IM MotorLABruntime.exe /F /FI "STATUS eq RUNNING"
- uses: actions/checkout@v3
- name: Set up Python ${{ env.MAIN_PYTHON_VERSION }}
uses: actions/setup-python@v4
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip tox tox-gh-actions
- name: Generate the documentation with tox
run: tox -e doc
- name: Upload HTML documentation
uses: actions/upload-artifact@v3
with:
name: documentation-html
path: .tox/doc_out/
retention-days: 7
doc-deploy-development:
name: "Deploy development documentation"
runs-on: ubuntu-latest
if: ${{ github.ref == 'refs/heads/main' }}
needs: package
steps:
- name: "Deploy development documentation"
uses: ansys/actions/doc-deploy-dev@v4
with:
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
doc-deploy-stable:
name: Doc stable version deploy
if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
runs-on: ubuntu-latest
needs: release
steps:
- name: "Deploy stable documentation"
uses: ansys/actions/doc-deploy-stable@v4
with:
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
python-version: ${{ env.MAIN_PYTHON_VERSION }}
package:
name: Package library
runs-on: ubuntu-latest
needs: [doc-build, tests]
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
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 }}
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
- name: Display structure of downloaded files
run: ls -R
- name: "Release to GitHub"
uses: softprops/action-gh-release@v1
with:
files: |
./**/*.whl
./**/*.tar.gz
documentation-html