Skip to content

CI: Update self-hosted runner labels #75

CI: Update self-hosted runner labels

CI: Update self-hosted runner labels #75

Workflow file for this run

name: Github CI-CD
on:
pull_request:
workflow_dispatch:
push:
tags:
- "*"
branches:
- "main"
schedule: # UTC at 0300
- cron: "0 3 * * *"
env:
MAIN_PYTHON_VERSION: '3.10'
PACKAGE_NAME: 'pyaedt-examples'
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@v4
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
use-python-cache: false
smoke-tests:
name: Build and Smoke tests
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ['3.9', '3.10', '3.11']
should-release:
- ${{ github.event_name == 'push' && contains(github.ref, 'refs/tags') }}
steps:
- name: Build wheelhouse and perform smoke test
uses: ansys/actions/build-wheelhouse@v5
with:
library-name: ${{ env.PACKAGE_NAME }}
operating-system: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
doc-style:
name: Documentation style
runs-on: ubuntu-latest
steps:
- uses: ansys/actions/doc-style@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
tests:
name: Test and coverage
runs-on: ubuntu-latest
steps:
- uses: ansys/actions/tests-pytest@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Upload Coverage Results
if: always()
uses: actions/upload-artifact@v4
with:
name: coverage-html
path: .cov/html
retention-days: 7
# =================================================================================================
# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv RUNNING ON SELF-HOSTED RUNNER vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
# =================================================================================================
doc-build:
name: Build documentation
runs-on: [self-hosted, Windows, pyaedt-examples]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ env.MAIN_PYTHON_VERSION }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
- name: Create virtual environment
run: |
python -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install pip -U
python -m pip install wheel setuptools -U
python -c "import sys; print(sys.executable)"
- name: Install project and documentation dependencies
run: |
.venv\Scripts\Activate.ps1
pip install .
pip install .[doc]
- name: Uninstall conflicting CI packages
run: |
.venv\Scripts\Activate.ps1
pip uninstall vtk pypandoc -y
- name: Install CI related dependencies
run: |
.venv\Scripts\Activate.ps1
pip install --extra-index-url https://wheels.vtk.org .[ci]
# Use environment variable to keep the doctree and avoid redundant build for PDF pages
- name: Create HTML documentation
run: |
echo "SPHINXBUILD_KEEP_DOCTREEDIR=1" >> $GITHUB_ENV
.venv\Scripts\Activate.ps1
. .\doc\make.bat html
- name: Upload HTML documentation artifact
uses: actions/upload-artifact@v4
with:
name: documentation-html
path: doc/_build/html
retention-days: 7
# Use environment variable to remove the doctree after the build of PDF pages
# Keeping doctree could cause an issue, see https://github.com/ansys/pyaedt/pull/3844/files
- name: Create PDF documentation
run: |
echo "SPHINXBUILD_KEEP_DOCTREEDIR=0" >> $GITHUB_ENV
.venv\Scripts\Activate.ps1
. .\doc\make.bat pdf
- name: Upload PDF documentation artifact
uses: actions/upload-artifact@v4
with:
name: documentation-pdf
path: doc/_build/latex
retention-days: 7
release:
name: Release project
if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
needs: [code-style, doc-build]
runs-on: ubuntu-latest
steps:
# TODO: update if ever public
# - name: Release to the public PyPI repository
# uses: ansys/actions/release-pypi-public@v5
# with:
# library-name: ${{ env.PACKAGE_NAME }}
# twine-username: "__token__"
# twine-token: ${{ secrets.PYPI_TOKEN }}
- name: Release to GitHub
uses: ansys/actions/release-github@v5
with:
library-name: ${{ env.PACKAGE_NAME }}