feat: Update qcs-sdk-python #1382
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 ] | |
pull_request: | |
branches: [ master ] | |
workflow_dispatch: | |
jobs: | |
docs: | |
name: Build and test documentation | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
- uses: actions/cache@v2 | |
with: | |
path: .venv | |
key: poetry-${{ hashFiles('poetry.lock') }} | |
- name: Build and test the documentation | |
run: | | |
sudo apt update | |
sudo apt install pandoc | |
. scripts/ci_install_deps | |
poetry run make docs | |
check-format: | |
name: Check formatting | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
- uses: actions/cache@v2 | |
with: | |
path: .venv | |
key: poetry-${{ hashFiles('poetry.lock') }} | |
- name: Check format | |
run: | | |
sudo apt update | |
. scripts/ci_install_deps | |
poetry run make check-format | |
check-style: | |
name: Check style | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
- uses: actions/cache@v2 | |
with: | |
path: .venv | |
key: poetry-${{ hashFiles('poetry.lock') }} | |
- name: Check style | |
run: | | |
sudo apt update | |
. scripts/ci_install_deps | |
poetry run make check-style | |
check-types: | |
name: Check types | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
- uses: actions/cache@v2 | |
with: | |
path: .venv | |
key: poetry-${{ hashFiles('poetry.lock') }} | |
- name: Check types | |
run: | | |
sudo apt update | |
. scripts/ci_install_deps | |
poetry run make check-types | |
check-dependencies: | |
name: Check dependencies for vulnerabilities | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
- name: Install OSV scanner | |
run: | | |
go install github.com/google/osv-scanner/cmd/osv-scanner@latest | |
- name: Run OSV scanner | |
run: | | |
osv-scanner --lockfile=./poetry.lock | |
test-doctest: | |
name: Run Doctests | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13.0-beta.1"] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- uses: actions/cache@v2 | |
with: | |
path: .venv | |
key: poetry-${{ hashFiles('poetry.lock') }} | |
- name: Test Unit (Python ${{ matrix.python-version }}) | |
run: | | |
sudo apt update | |
. scripts/ci_install_deps | |
sudo apt install pandoc | |
docker run --rm -itd -p 5555:5555 rigetti/quilc -R | |
docker run --rm -itd -p 5000:5000 rigetti/qvm -S | |
poetry run make doctest | |
test-unit: | |
name: Test Unit | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
pull-requests: write # allows coverage bot to comment | |
strategy: | |
matrix: | |
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13.0-beta.1"] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- uses: actions/cache@v2 | |
with: | |
path: .venv | |
key: poetry-${{ hashFiles('poetry.lock') }} | |
- name: Test Unit (Python ${{ matrix.python-version }}) | |
run: | | |
sudo apt update | |
. scripts/ci_install_deps | |
docker run --rm -itd -p 5555:5555 rigetti/quilc -R | |
docker run --rm -itd -p 5000:5000 rigetti/qvm -S | |
poetry run make test | |
- name: Report Coverage | |
if: matrix.python-version == '3.11' && github.event_name == 'pull_request' | |
continue-on-error: true | |
uses: orgoro/coverage@v3.1 | |
with: | |
coverageFile: coverage.xml | |
thresholdAll: 0.87 | |
thresholdNew: 0.9 | |
token: ${{ secrets.GITHUB_TOKEN }} | |
check-docker-image: | |
name: Check docker image | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.9' | |
- uses: actions/cache@v2 | |
with: | |
path: .venv | |
key: poetry-${{ hashFiles('poetry.lock') }} | |
- name: Check wheel installation | |
run: | | |
sudo apt update | |
pip wheel . -w wheels | |
- name: Build and Test | |
uses: docker/build-push-action@v4 | |
with: | |
file: Dockerfile.test | |
context: . | |
load: true | |
tags: test | |
- name: Test Image | |
run: | | |
docker run --rm test python -c "from pyquil import get_qc" | |
test-e2e: | |
name: Test e2e QVM | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13.0-beta.1"] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- uses: actions/cache@v2 | |
with: | |
path: .venv | |
key: poetry-${{ hashFiles('poetry.lock') }} | |
- name: Test e2e QVM (Python ${{ matrix.python-version }}) | |
id: runTests | |
run: | | |
sudo apt update | |
. scripts/ci_install_deps | |
docker run --rm -itd -p 5555:5555 rigetti/quilc -R | |
docker run --rm -itd -p 5000:5000 rigetti/qvm -S | |
poetry run make e2e TEST_QUANTUM_PROCESSOR=2q-qvm | |
docker ps -q | xargs -L 1 docker logs | |
- name: Dump docker logs | |
if: always() && steps.runTests.outcome == 'failure' | |
run: | | |
docker ps -q | xargs -L 1 docker logs |