Compatibility with qutip v5 #141
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: Tests | |
on: | |
push: | |
branches: | |
- master | |
- dev | |
- 'release-*' | |
tags: | |
- '*' | |
pull_request: | |
branches: | |
- master | |
jobs: | |
run_tests: | |
name: ${{ matrix.title }} (Python ${{ matrix.python }} on ${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
env: | |
default_tests: src tests docs/*.rst | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- title: Codestyle and Main Tests | |
os: ubuntu-24.04 | |
python: "3.12" | |
commands: | | |
hatch run lint:black-check | |
hatch run lint:isort-check | |
hatch run cov -- $default_tests | |
coverage: true | |
- title: Oldest supported Python | |
os: ubuntu-24.04 | |
python: "3.10" | |
commands: hatch -e py310 run test -- $default_tests | |
coverage: false | |
- title: Windows | |
os: windows-latest | |
python: "3.12" | |
commands: hatch run test -- src tests docs\notebooks\01_example_simple_state_to_state.ipynb docs\notebooks\05_example_transmon_xgate.ipynb | |
coverage: false | |
- title: MacOS | |
os: macos-latest | |
python: "3.12" | |
commands: hatch run cov -- $default_tests docs/notebooks/01_example_simple_state_to_state.ipynb | |
coverage: true | |
- title: Notebook 1 (State-to-State) | |
os: ubuntu-24.04 | |
python: "3.12" | |
commands: hatch run cov -- docs/notebooks/01_example_simple_state_to_state.ipynb | |
coverage: true | |
- title: Notebook 2 (RWA) | |
os: ubuntu-24.04 | |
python: "3.12" | |
commands: hatch run cov -- docs/notebooks/02_example_lambda_system_rwa_complex_pulse.ipynb | |
coverage: true | |
- title: Notebook 3 (Non-Hermitian) | |
os: ubuntu-24.04 | |
python: "3.12" | |
commands: hatch run cov -- docs/notebooks/03_example_lambda_system_rwa_non_hermitian.ipynb | |
coverage: true | |
- title: Notebook 4 (Density Matrix) | |
os: ubuntu-24.04 | |
python: "3.12" | |
commands: hatch run cov -- docs/notebooks/04_example_dissipative_qubit_reset.ipynb | |
coverage: true | |
- title: Notebook 5 (Quantum Gate) | |
os: ubuntu-24.04 | |
python: "3.12" | |
commands: hatch run cov -- docs/notebooks/05_example_transmon_xgate.ipynb | |
coverage: true | |
- title: Notebook 6 (3 States) | |
os: ubuntu-24.04 | |
python: "3.12" | |
commands: hatch run cov -- docs/notebooks/06_example_3states.ipynb | |
coverage: true | |
- title: Notebook 7 (Perfect Entanglers) | |
os: ubuntu-24.04 | |
python: "3.12" | |
commands: hatch run cov -- docs/notebooks/07_example_PE.ipynb | |
coverage: true | |
- title: Notebook 8 (Ensemble Optimization) | |
os: ubuntu-24.04 | |
python: "3.12" | |
commands: hatch run cov -- docs/notebooks/08_example_ensemble.ipynb | |
coverage: true | |
- title: Notebook 9 (NumPy) | |
os: ubuntu-24.04 | |
python: "3.12" | |
commands: hatch run cov -- docs/notebooks/09_example_numpy.ipynb | |
coverage: true | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
name: Install Python ${{ matrix.python }} | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install required apt packages | |
if: runner.os == 'Linux' | |
run: sudo apt-get install pandoc liblapack-dev libblas-dev gfortran | |
- name: Install Hatch | |
uses: pypa/hatch@install | |
with: | |
version: 1.11.1 | |
- name: Run Commands | |
run: ${{ matrix.commands }} | |
- name: Convert coverage data to xml | |
if: matrix.coverage == true | |
shell: bash | |
run: | | |
hatch run -- python -m coverage xml | |
- name: Upload coverage to Codecov | |
if: matrix.coverage == true | |
uses: codecov/codecov-action@v4 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} |