Refactor and unify result workflows #1891
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: 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 |