Skip to content

Merge branch 'main' of https://github.com/Qiskit/qiskit-ibm-runtime i… #67

Merge branch 'main' of https://github.com/Qiskit/qiskit-ibm-runtime i…

Merge branch 'main' of https://github.com/Qiskit/qiskit-ibm-runtime i… #67

Workflow file for this run

# This code is part of Qiskit.
#
# (C) Copyright IBM 2021.
#
# This code is licensed under the Apache License, Version 2.0. You may
# obtain a copy of this license in the LICENSE.txt file in the root directory
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
#
# Any modifications or derivative works of this code must retain this
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
name: CI
on:
[ push, pull_request ]
# save resources: cancel redundant workflow runs on the same branch when new commits are pushed
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
code-quality:
if: github.repository_owner == 'Qiskit'
name: Run code quality checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -c constraints.txt -r requirements-dev.txt -e .
- name: Run black
run: make style
- name: Run lint
run: make lint
- name: Run mypy
run: make mypy
documentation:
if: github.repository_owner == 'Qiskit'
name: Build documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U tox
pip install nbqa docutils
sudo apt install -y graphviz pandoc
pip install -e .
wget https://github.com/errata-ai/vale/releases/download/v2.23.0/vale_2.23.0_Linux_64-bit.tar.gz
mkdir $HOME/bin && tar -xf vale_2.23.0_Linux_64-bit.tar.gz -C $HOME/bin
echo "$HOME/bin" >> $GITHUB_PATH
- name: Lint documentation
run: |
make docs-test
- name: Build documentation
run: tox -edocs
- name: Upload documentation
uses: actions/upload-artifact@v4
with:
name: html_docs
path: docs/_build/html
unit-tests:
if: github.repository_owner == 'Qiskit'
# only kick-off test cases when basic code quality checks succeed
needs: [ "code-quality" , "documentation" ]
name: Run unit tests - python${{ matrix.python-version }}-${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: [3.8, 3.9, '3.10', '3.11', '3.12']
os: [ "macos-latest", "ubuntu-latest", "windows-latest" ]
exclude:
- os: "macos-latest"
python-version: 3.8
- os: "macos-latest"
python-version: 3.9
env:
LOG_LEVEL: DEBUG
STREAM_LOG: True
QISKIT_IN_PARALLEL: True
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -c constraints.txt -r requirements-dev.txt -e .
- name: Run unit tests
run: make unit-test-coverage
- name: Report coverage to coveralls.io
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
flag-name: unit-tests_python${{ matrix.python-version }}-${{ matrix.os }}
parallel: true
file: coverage.lcov
integration-tests:
if: github.event_name == 'push' && github.repository_owner == 'Qiskit'
# only kick-off resource intensive integration tests if unit tests and all basic checks succeeded
needs: [ "unit-tests" ]
name: Run integration tests - ${{ matrix.environment }}
runs-on: ${{ matrix.os }}
strategy:
# avoid cancellation of in-progress jobs if any matrix job fails
fail-fast: false
matrix:
python-version: [ 3.9 ]
os: [ "ubuntu-latest" ]
environment: [ "ibm-quantum-production", "ibm-cloud-production" ]
environment: ${{ matrix.environment }}
env:
QISKIT_IBM_TOKEN: ${{ secrets.QISKIT_IBM_TOKEN }}
QISKIT_IBM_URL: ${{ secrets.QISKIT_IBM_URL }}
QISKIT_IBM_INSTANCE: ${{ secrets.QISKIT_IBM_INSTANCE }}
LOG_LEVEL: DEBUG
STREAM_LOG: True
QISKIT_IN_PARALLEL: True
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -c constraints.txt -r requirements-dev.txt -e .
- name: Run integration tests
run: make integration-test
tests-finished:
if: github.repository_owner == 'Qiskit'
name: Submit code coverage metrics
needs: [ unit-tests ]
runs-on: ubuntu-latest
steps:
- name: Notify coveralls.io that all parallel tests have finished
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true