Skip to content

Refactor and unify result workflows #1889

Refactor and unify result workflows

Refactor and unify result workflows #1889

Workflow file for this run

name: CI
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
branches-ignore:
- "*no-ci"
push:
branches:
- master
workflow_dispatch:
inputs:
standalone_branch_suffix:
description: 'Suffix of the branch on standalone'
required: false
default: ''
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true
env:
PACKAGE_NAME: 'ansys-dpf-post'
MODULE: 'post'
DOCUMENTATION_CNAME: 'post.docs.pyansys.com'
MAIN_PYTHON_VERSION: '3.10'
ANSYS_VERSION: '251'
jobs:
debug:
runs-on: ubuntu-latest
steps:
- name: Show the Github context for the triggered event
run: echo "$GITHUB_CONTEXT"
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
style:
name: "Style Check"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: "Setup Python"
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
- name: "Install pre-commit"
run: pip install pre-commit
- name: "Run pre-commit"
run: pre-commit run --all-files --show-diff-on-failure
tests:
name: tests
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11"]
os: ["windows-latest", "ubuntu-latest"]
steps:
- uses: actions/checkout@v4
- name: "Set licensing if necessary"
if: env.ANSYS_VERSION > 231
shell: bash
run: |
echo "ANSYS_DPF_ACCEPT_LA=Y" >> $GITHUB_ENV
echo "ANSYSLMD_LICENSE_FILE=1055@${{ secrets.LICENSE_SERVER }}" >> $GITHUB_ENV
- name: "Build Package"
uses: ansys/pydpf-actions/build_package@v2.3
with:
python-version: ${{ matrix.python-version }}
ANSYS_VERSION: ${{env.ANSYS_VERSION}}
PACKAGE_NAME: ${{env.PACKAGE_NAME}}
MODULE: ${{env.MODULE}}
dpf-standalone-TOKEN: ${{secrets.DPF_PIPELINE}}
install_extras: plotting
# Upload the wheel artifact for only one of the OS as it is OS-agnostic
wheel: ${{ (matrix.python-version == env.MAIN_PYTHON_VERSION) && (matrix.os == 'windows-latest') }}
wheelhouse: true
standalone_suffix: ${{ inputs.standalone_suffix || ''}}
- name: "Prepare Testing Environment"
uses: ansys/pydpf-actions/prepare_tests@v2.3
with:
DEBUG: true
- name: "List installed packages"
shell: bash
run: pip list
- name: "Test Docstrings"
uses: ansys/pydpf-actions/test_docstrings@v2.3
with:
MODULE: ${{env.MODULE}}
PACKAGE_NAME: ${{env.PACKAGE_NAME}}
working-directory: src
- name: "Test API"
shell: bash
working-directory: tests
run: |
pytest $DEBUG --cov=ansys.dpf.${{env.MODULE}} --cov-report=xml --cov-report=html --cov-append --log-level=ERROR --junitxml=junit/test-results.xml --reruns 2 .
- name: "Kill all servers"
uses: ansys/pydpf-actions/kill-dpf-servers@v2.3
if: always()
- name: "Upload Test Results"
uses: actions/upload-artifact@v4
with:
name: ${{ env.PACKAGE_NAME }}_${{ matrix.python-version }}_${{ matrix.os }}_pytest_${{ env.ANSYS_VERSION }}
path: tests/junit/test-results.xml
- name: "Upload coverage to Codecov"
uses: codecov/codecov-action@v4
retro:
name: "Retro-compatibility"
if: startsWith(github.head_ref, 'master') || github.event.action == 'ready_for_review' || !github.event.pull_request.draft
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version: ["3.10"]
os: ["windows-latest", "ubuntu-latest"]
ANSYS_VERSION: ["242", "241", "232", "231", "222"]
steps:
- uses: actions/checkout@v4
- name: "Set licensing if necessary"
if: matrix.ANSYS_VERSION > 231
shell: bash
run: |
echo "ANSYS_DPF_ACCEPT_LA=Y" >> $GITHUB_ENV
echo "ANSYSLMD_LICENSE_FILE=1055@${{ secrets.LICENSE_SERVER }}" >> $GITHUB_ENV
- name: "Build Package"
uses: ansys/pydpf-actions/build_package@v2.3
with:
python-version: ${{ matrix.python-version }}
ANSYS_VERSION: ${{matrix.ANSYS_VERSION}}
PACKAGE_NAME: ${{env.PACKAGE_NAME}}
MODULE: ${{env.MODULE}}
dpf-standalone-TOKEN: ${{secrets.DPF_PIPELINE}}
install_extras: plotting
wheel: false
standalone_suffix: ${{ matrix.ANSYS_VERSION == '241' && '.sp01' || '' }}
- name: "Prepare Testing Environment"
uses: ansys/pydpf-actions/prepare_tests@v2.3
with:
DEBUG: true
- name: "List installed packages"
shell: bash
run: pip list
- name: "Test API"
shell: bash
working-directory: tests
run: |
pytest $DEBUG --cov=ansys.dpf.${{env.MODULE}} --cov-report=xml --cov-report=html --cov-append --log-level=ERROR --junitxml=junit/test-results.xml --reruns 2 .
- name: "Kill all servers"
uses: ansys/pydpf-actions/kill-dpf-servers@v2.3
if: always()
- name: "Upload Test Results"
uses: actions/upload-artifact@v4
with:
name: ${{ env.PACKAGE_NAME }}_${{ matrix.python-version }}_${{ matrix.os }}_pytest_${{ matrix.ANSYS_VERSION }}
path: tests/junit/test-results.xml
if: always()
- name: "Upload coverage to Codecov"
uses: codecov/codecov-action@v4
examples:
if: startsWith(github.head_ref, 'master') || github.event.action == 'ready_for_review' || !github.event.pull_request.draft
uses: ./.github/workflows/examples.yml
with:
ANSYS_VERSION: "251"
python_versions: '["3.10"]'
standalone_suffix: ${{ inputs.standalone_suffix || ''}}
secrets: inherit
docs:
if: startsWith(github.head_ref, 'master') || github.event.action == 'ready_for_review' || !github.event.pull_request.draft
uses: ./.github/workflows/docs.yml
with:
ANSYS_VERSION: "251"
python_version: "3.10"
standalone_suffix: ${{ inputs.standalone_suffix || ''}}
event_name: ${{ github.event_name }}
secrets: inherit
upload-development-docs:
runs-on: ubuntu-latest
if: ${{ github.ref == 'refs/heads/master' }}
needs: [docs]
steps:
- name: "Upload development documentation"
uses: ansys/actions/doc-deploy-dev@v6
with:
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
doc-artifact-name: HTML-doc-ansys-dpf-post.zip
decompress-artifact: true