Skip to content

Test suite

Test suite #3185

Workflow file for this run

name: Test suite
on:
schedule:
- cron: '0 06 * * *'
push:
branches:
- main
pull_request:
types:
- opened
- reopened
- synchronize
workflow_dispatch:
jobs:
beamme-testing-from-source-code:
name: ${{ matrix.os-version }} python${{ matrix.python-version }} from source
strategy:
fail-fast: false
matrix:
os-version: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.11", "3.14"]
runs-on: ${{ matrix.os-version }}
steps:
- name: Checkout PR code
uses: actions/checkout@v7
- name: Setup python environment
uses: ./.github/actions/setup_python_environment
with:
python-version: ${{ matrix.python-version }}
- name: Install BeamMe
uses: ./.github/actions/install_beamme
with:
# Test coverage and editable install with Python 3.11, otherwise we use a
# non-editable installation and turn off coverage, because the coverage
# only works in editable mode.
install-command: >-
${{ matrix.python-version == '3.11' && '-e .[dev]' || '.[dev]'}}
- name: Run the test suite and upload results on failure
uses: ./.github/actions/run_tests
with:
# The single space in the empty string is required, otherwise GitHub
# evaluates the if clause wrong.
additional-pytest-flags: "${{ matrix.python-version == '3.11' && ' ' || '--no-cov' }}"
all-tests-pass:
name: All tests passed
runs-on: ubuntu-latest
needs: [beamme-testing-from-source-code]
if: always()
steps:
- name: Check test matrix result
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}
beamme-performance-testing:
name: performance tests
continue-on-error: true
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Setup python environment
uses: ./.github/actions/setup_python_environment
with:
env_type: "conda"
- name: Install BeamMe
uses: ./.github/actions/install_beamme
- name: Run the test suite and upload results on failure
uses: ./.github/actions/run_tests
with:
additional-pytest-flags: "--performance-tests --exclude-standard-tests -s --no-cov"