CI: Update self-hosted runner labels #75
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-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 }} |