Skip to content

tests: test against multiple Qiskit versions #11

tests: test against multiple Qiskit versions

tests: test against multiple Qiskit versions #11

Workflow file for this run

name: Tests
on:
push:
branches:
- master
pull_request:
# Run on manual triggers
workflow_dispatch:
env:
PYTHONIOENCODING: utf-8
jobs:
build-packages:
name: build-packages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.12
- name: Install uv
run: |
# https://github.com/astral-sh/uv/issues/1386#issuecomment-1947801083
echo "VIRTUAL_ENV=${Python_ROOT_DIR}" >> $GITHUB_ENV
pip install uv
- name: Build packages
run: |
uv pip install hatch
hatch build
- name: Store packages
uses: actions/upload-artifact@v4
with:
name: packages
path: dist/
examples:
needs: build-packages
name: examples-${{ matrix.os }}-py${{ matrix.python-version }}-qiskit${{ matrix.qiskit-version }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
qiskit-version: ['0.46.0', '1.0.1']
python-version: ['3.12']
os: ["ubuntu-latest"]
steps:
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
run: |
# https://github.com/astral-sh/uv/issues/1386#issuecomment-1947801083
echo "VIRTUAL_ENV=${Python_ROOT_DIR}" >> $GITHUB_ENV
pip install uv
- name: Restore packages
uses: actions/download-artifact@v4
with:
name: packages
path: dist
- name: Install package wheel
run: |
# there is only one wheel in dist/
echo "qiskit==${{ matrix.qiskit-version }}" > override.txt
uv pip install --strict --override override.txt "qiskit-aqt-provider[examples] @ $(ls dist/*.whl)"
- name: Checkout examples # FIXME: ship examples with source distribution
uses: actions/checkout@v4
with:
sparse-checkout: |
examples
sparse-checkout-cone-mode: false
- name: Run examples
run: |
./examples/run_all.sh
tests:
name: tests-${{ matrix.os }}-py${{ matrix.python-version }}-qiskit${{ matrix.qiskit-version }}-resolve-${{ matrix.resolution-strategy }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
qiskit-version: ['1.0.1']
python-version: ['3.12']
os: ['ubuntu-latest']
resolution-strategy: ['highest']
steps:
- uses: actions/checkout@v4
- name: Check shell scripts
uses: ludeeus/[email protected]
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
- name: Install uv
run: |
# https://github.com/astral-sh/uv/issues/1386#issuecomment-1947801083
echo "VIRTUAL_ENV=${Python_ROOT_DIR}" >> $GITHUB_ENV
pip install uv
- name: Lock dependencies
run: |
echo "qiskit==${{ matrix.qiskit-version }}" > qiskit-override.txt
echo 'furo==2023.9.10' > furo-override.txt # https://github.com/Qiskit/qiskit_sphinx_theme/issues/567
uv pip compile pyproject.toml --extra development --override qiskit-override.txt --override furo-override.txt > requirements.txt
- name: Install project
run: |
uv pip sync --strict --reinstall requirements.txt
uv pip install --editable .
- name: Check version numbers consistency
run: poe version_check
- name: Check formatting
run: poe format_check
- name: Linting
run: poe lint
- name: Type checking
run: poe typecheck
- name: Testing
run: poe test
# - name: Docs
# run: poetry run poe docs
# if: startsWith(matrix.os, 'ubuntu')
# - name: Generate coverage report
# run: poetry run coverage lcov -o coverage.lcov
# if: startsWith(matrix.os, 'ubuntu')
# - name: Upload coverage report
# uses: coverallsapp/github-action@v2
# with:
# file: coverage.lcov
# parallel: true
# flag-name: run ${{ join(matrix.*, ' - ') }}
# if: startsWith(matrix.os, 'ubuntu')
# finish:
# needs: tests
# runs-on: ubuntu-latest
# steps:
# - name: Close parallel coverage build
# uses: coverallsapp/github-action@v2
# with:
# parallel-finished: true