qiskit/azure-pipelines.yml

826 lines
30 KiB
YAML

# Python package
# Create and test a Python package on multiple Python versions.
# Add steps that analyze code, save the dist with the build record, publish to a PyPI-compatible index, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/python
trigger:
branches:
include:
- main
- stable/*
tags:
include:
- '*'
pr:
autoCancel: true
branches:
include:
- '*' # must quote since "*" is a YAML reserved character; we want a string
stages:
- stage: 'Wheel_Builds'
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
jobs:
- job: 'linux'
pool: {vmImage: 'Ubuntu-16.04'}
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
variables:
python.version: '3.7'
CIBW_BEFORE_BUILD: pip install -U Cython
CIBW_SKIP: cp27-* cp34-* cp35-* pp*
TWINE_USERNAME: qiskit
CIBW_TEST_COMMAND: python {project}/examples/python/stochastic_swap.py
steps:
- task: UsePythonVersion@0
- bash: |
set -e
python -m pip install --upgrade pip
pip install cibuildwheel==1.10.0
pip install -U twine
cibuildwheel --output-dir wheelhouse .
- task: PublishBuildArtifacts@1
inputs: {pathtoPublish: 'wheelhouse'}
condition: succeededOrFailed()
- bash: |
twine upload wheelhouse/*
env:
TWINE_PASSWORD: $(TWINE_PASSWORD)
- job: 'sdist'
pool: {vmImage: 'Ubuntu-16.04'}
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
variables:
TWINE_USERNAME: qiskit
python.version: '3.7'
steps:
- task: UsePythonVersion@0
- bash: |
set -e
python -m pip install --upgrade pip
pip install -U twine
python setup.py sdist
- task: PublishBuildArtifacts@1
inputs: {pathtoPublish: 'dist'}
condition: succeededOrFailed()
- bash: |
twine upload dist/*
env:
TWINE_PASSWORD: $(TWINE_PASSWORD)
- job: 'macos'
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
pool: {vmImage: 'macOS-latest'}
variables:
python.version: '3.7'
CIBW_BEFORE_BUILD: pip install -U Cython
CIBW_SKIP: cp27-* cp34-* cp35-* pp*
TWINE_USERNAME: qiskit
CIBW_TEST_COMMAND: python {project}/examples/python/stochastic_swap.py
steps:
- task: UsePythonVersion@0
- bash: |
set -e
python -m pip install --upgrade pip
pip install cibuildwheel==1.10.0
pip install -U twine
cibuildwheel --output-dir wheelhouse .
- task: PublishBuildArtifacts@1
inputs: {pathtoPublish: 'wheelhouse'}
condition: succeededOrFailed()
- bash: |
twine upload wheelhouse/*
env:
TWINE_PASSWORD: $(TWINE_PASSWORD)
- job: 'macos_arm'
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
pool: {vmImage: 'macOS-latest'}
variables:
python.version: '3.7'
CIBW_BEFORE_BUILD: pip install -U Cython
CIBW_SKIP: cp27-* cp34-* cp35-* pp*
CIBW_ARCHS_MACOS: universal2
TWINE_USERNAME: qiskit
CIBW_TEST_COMMAND: python {project}/examples/python/stochastic_swap.py
steps:
- task: UsePythonVersion@0
- bash: |
set -e
python -m pip install --upgrade pip
pip install cibuildwheel==1.10.0
pip install -U twine
cibuildwheel --output-dir wheelhouse .
- task: PublishBuildArtifacts@1
inputs: {pathtoPublish: 'wheelhouse'}
condition: succeededOrFailed()
- bash: |
twine upload wheelhouse/*
env:
TWINE_PASSWORD: $(TWINE_PASSWORD)
- job: 'Windows'
pool: {vmImage: 'vs2017-win2016'}
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
variables:
CIBW_BEFORE_BUILD: pip install -U Cython
CIBW_SKIP: cp27-* cp34-* cp35-* pp*
TWINE_USERNAME: qiskit
CIBW_TEST_COMMAND: python {project}\examples\python\stochastic_swap.py
steps:
- {task: UsePythonVersion@0, inputs: {versionSpec: '3.6', architecture: x86}}
- {task: UsePythonVersion@0, inputs: {versionSpec: '3.6', architecture: x64}}
- {task: UsePythonVersion@0, inputs: {versionSpec: '3.7', architecture: x86}}
- {task: UsePythonVersion@0, inputs: {versionSpec: '3.7', architecture: x64}}
- {task: UsePythonVersion@0, inputs: {versionSpec: '3.8', architecture: x86}}
- {task: UsePythonVersion@0, inputs: {versionSpec: '3.8', architecture: x64}}
- {task: UsePythonVersion@0, inputs: {versionSpec: '3.9', architecture: x86}}
- {task: UsePythonVersion@0, inputs: {versionSpec: '3.9', architecture: x64}}
- script: choco install vcpython27 -f -y
displayName: Install Visual C++ for Python 2.7
- bash: |
set -e
python -m pip install --upgrade pip
pip install cibuildwheel==1.10.0
pip install -U twine
cibuildwheel --output-dir wheelhouse
- task: PublishBuildArtifacts@1
inputs: {pathtoPublish: 'wheelhouse'}
condition: succeededOrFailed()
- script: |
twine upload wheelhouse\*
env:
TWINE_PASSWORD: $(TWINE_PASSWORD)
- stage: 'Lint_and_Tests'
dependsOn: []
jobs:
- job: 'Linux_Tests'
pool: {vmImage: 'ubuntu-latest'}
strategy:
matrix:
Python37:
python.version: '3.7'
variables:
QISKIT_SUPPRESS_PACKAGING_WARNINGS: Y
PIP_CACHE_DIR: $(Pipeline.Workspace)/.pip
QISKIT_TEST_CAPTURE_STREAMS: 1
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- task: Cache@2
inputs:
key: 'pip | "$(Agent.OS)" | "$(python.version)" |"$(Build.BuildNumber)"'
restoreKeys: |
pip | "$(Agent.OS)" | "$(python.version)"
pip | "$(Agent.OS)"
pip
path: $(PIP_CACHE_DIR)
displayName: Cache pip
- task: Cache@2
inputs:
key: 'stestr | "$(Agent.OS)" | "$(python.version)" | "$(Build.BuildNumber)"'
restoreKeys: |
stestr | "$(Agent.OS)" | "$(python.version)"
stestr | "$(Agent.OS)"
stestr
path: .stestr
displayName: Cache stestr
- bash: |
set -e
python -m pip install --upgrade pip setuptools wheel virtualenv
virtualenv test-job
source test-job/bin/activate
pip install -U -r requirements.txt -r requirements-dev.txt -c constraints.txt
python setup.py sdist
pip install -U -c constraints.txt dist/qiskit-terra*.tar.gz
pip install -U "qiskit-aer" "z3-solver" -c constraints.txt
mkdir -p /tmp/terra-tests
cp -r test /tmp/terra-tests/.
cp .stestr.conf /tmp/terra-tests/.
sudo apt install -y graphviz
pip check
displayName: 'Install dependencies'
- bash: |
set -e
source test-job/bin/activate
pushd /tmp/terra-tests
export PYTHONHASHSEED=$(python -S -c "import random; print(random.randint(1, 4294967295))")
echo "PYTHONHASHSEED=$PYTHONHASHSEED"
stestr run
popd
displayName: 'Run tests'
- task: CopyFiles@2
condition: failed()
displayName: 'Copy images'
inputs:
contents: '**/*.png'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
condition: failed()
displayName: 'Publish images'
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'drop_linux'
- bash: |
set -e
source test-job/bin/activate
cp tools/subunit_to_junit.py /tmp/terra-tests/.
pip install -U junitxml
pushd /tmp/terra-tests
mkdir -p junit
stestr last --subunit | ./subunit_to_junit.py -o junit/test-results.xml
popd
cp -r /tmp/terra-tests/junit .
pushd .stestr
ls | grep -P "^\d" | xargs -d "\n" rm -f
popd
condition: succeededOrFailed()
displayName: 'Generate results'
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testResultsFiles: '**/test-*.xml'
testRunTitle: 'Test results for Linux Python $(python.version)'
- job: 'Lint'
pool: {vmImage: 'ubuntu-latest'}
strategy:
matrix:
Python37:
python.version: '3.7'
variables:
PIP_CACHE_DIR: $(Pipeline.Workspace)/.pip
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- task: Cache@2
inputs:
key: 'pip | "$(Agent.OS)" | "$(python.version)" | "$(Build.BuildNumber)"'
restoreKeys: |
pip | "$(Agent.OS)" | "$(python.version)"
pip | "$(Agent.OS)"
pip
path: $(PIP_CACHE_DIR)
displayName: Cache pip
- bash: |
set -e
python -m pip install --upgrade pip setuptools wheel virtualenv
virtualenv test-job
source test-job/bin/activate
pip install -U -r requirements.txt -r requirements-dev.txt -c constraints.txt
pip install -U -c constraints.txt -e .
pip install -U "qiskit-aer" -c constraints.txt
python setup.py build_ext --inplace
displayName: 'Install dependencies'
- bash: |
set -e
source test-job/bin/activate
black --check qiskit test tools
pylint -rn qiskit test
tools/verify_headers.py qiskit test
python tools/find_optional_imports.py
reno lint
displayName: 'Style and lint'
- job: 'MacOS_Catalina_Tests'
pool: {vmImage: 'macOS-latest'}
strategy:
matrix:
Python37:
python.version: '3.7'
variables:
QISKIT_SUPPRESS_PACKAGING_WARNINGS: Y
PIP_CACHE_DIR: $(Pipeline.Workspace)/.pip
QISKIT_TEST_CAPTURE_STREAMS: 1
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- task: Cache@2
inputs:
key: 'pip | "$(Agent.OS)" | "$(python.version)" | "$(Build.BuildNumber)"'
restoreKeys: |
pip | "$(Agent.OS)" | "$(python.version)"
pip | "$(Agent.OS)"
pip
path: $(PIP_CACHE_DIR)
displayName: Cache pip
- task: Cache@2
inputs:
key: 'stestr | "$(Agent.OS)" | "$(python.version)" | "$(Build.BuildNumber)"'
restoreKeys: |
stestr | "$(Agent.OS)" | "$(python.version)"
stestr | "$(Agent.OS)"
stestr
path: .stestr
displayName: Cache stestr
- bash: |
set -e
python -m pip install --upgrade pip setuptools wheel virtualenv
virtualenv test-job
source test-job/bin/activate
pip install -U -r requirements.txt -r requirements-dev.txt -c constraints.txt
pip install -U -c constraints.txt -e .
pip install -U "qiskit-aer" -c constraints.txt
python setup.py build_ext --inplace
pip check
displayName: 'Install dependencies'
- bash: |
set -e
source test-job/bin/activate
export PYTHONHASHSEED=$(python -S -c "import random; print(random.randint(1, 4294967295))")
echo "PYTHONHASHSEED=$PYTHONHASHSEED"
stestr run
displayName: 'Run tests'
- task: CopyFiles@2
condition: failed()
displayName: 'Copy images'
inputs:
contents: '**/*.png'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
condition: failed()
displayName: 'Publish images'
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'drop_macos'
- bash: |
set -e
source test-job/bin/activate
pip install -U junitxml
mkdir -p junit
stestr last --subunit | tools/subunit_to_junit.py -o junit/test-results.xml
pushd .stestr
ls | grep -e '^[[:digit:]]' | xargs -n1 rm -f
popd
condition: succeededOrFailed()
displayName: 'Generate results'
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testResultsFiles: '**/test-*.xml'
testRunTitle: 'Test results for macOS Python $(python.version)'
- job: 'Windows_Tests'
pool: {vmImage: 'windows-latest'}
strategy:
matrix:
Python37:
python.version: '3.7'
variables:
QISKIT_SUPPRESS_PACKAGING_WARNINGS: Y
QISKIT_TEST_CAPTURE_STREAMS: 1
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- task: Cache@2
inputs:
key: 'stestr | "$(Agent.OS)" | "$(python.version)" | "$(Build.BuildNumber)"'
restoreKeys: |
stestr | "$(Agent.OS)" | "$(python.version)"
stestr | "$(Agent.OS)"
stestr
path: .stestr
displayName: Cache stestr
- bash: |
set -e
python -m pip install --upgrade pip setuptools wheel virtualenv
virtualenv test-job
source test-job/Scripts/activate
pip install -r requirements.txt -r requirements-dev.txt -c constraints.txt
pip install -c constraints.txt -e .
pip install "z3-solver" -c constraints.txt
python setup.py build_ext --inplace
pip check
displayName: 'Install dependencies'
- bash: |
set -e
chcp.com 65001
source test-job/Scripts/activate
export PYTHONHASHSEED=$(python -S -c "import random; print(random.randint(1, 1024))")
echo "PYTHONHASHSEED=$PYTHONHASHSEED"
stestr run
displayName: 'Run tests'
env:
LANG: 'C.UTF-8'
PYTHONIOENCODING: 'utf-8:backslashreplace'
- task: CopyFiles@2
condition: failed()
displayName: 'Copy images'
inputs:
contents: '**/*.png'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
condition: failed()
displayName: 'Publish images'
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'drop_windows'
- bash: |
set -e
chcp.com 65001
source test-job/Scripts/activate
pip install -U junitxml
mkdir -p junit
stestr last --subunit | python tools/subunit_to_junit.py -o junit/test-results.xml
pushd .stestr
ls | grep -P "^\d" | xargs -d "\n" rm -f
popd
condition: succeededOrFailed()
env:
LANG: 'C.UTF-8'
PYTHONIOENCODING: 'utf-8:backslashreplace'
displayName: 'Generate results'
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testResultsFiles: '**/test-*.xml'
testRunTitle: 'Test results for Windows Python $(python.version)'
- stage: 'Python_Tests'
condition: and(succeeded('Lint_and_Tests'), not(startsWith(variables['Build.SourceBranch'], 'refs/tags')))
jobs:
- job: 'Windows_Tests'
pool: {vmImage: 'windows-latest'}
strategy:
matrix:
Python36:
python.version: '3.6'
Python38:
python.version: '3.8'
Python39:
python.version: '3.9'
variables:
QISKIT_SUPPRESS_PACKAGING_WARNINGS: Y
QISKIT_TEST_CAPTURE_STREAMS: 1
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- task: Cache@2
inputs:
key: 'stestr | "$(Agent.OS)" | "$(python.version)" | "$(Build.BuildNumber)"'
restoreKeys: |
stestr | "$(Agent.OS)" | "$(python.version)"
stestr | "$(Agent.OS)"
stestr
path: .stestr
displayName: Cache stestr
- bash: |
set -e
python -m pip install --upgrade pip setuptools wheel virtualenv
virtualenv test-job
source test-job/Scripts/activate
pip install -r requirements.txt -r requirements-dev.txt -c constraints.txt
pip install -c constraints.txt -e .
pip install "z3-solver" -c constraints.txt
python setup.py build_ext --inplace
pip check
displayName: 'Install dependencies'
- bash: |
set -e
chcp.com 65001
source test-job/Scripts/activate
export PYTHONHASHSEED=$(python -S -c "import random; print(random.randint(1, 1024))")
echo "PYTHONHASHSEED=$PYTHONHASHSEED"
stestr run
env:
LANG: 'C.UTF-8'
PYTHONIOENCODING: 'utf-8:backslashreplace'
displayName: 'Run tests'
- task: CopyFiles@2
condition: failed()
displayName: 'Copy images'
inputs:
contents: '**/*.png'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
condition: failed()
displayName: 'Publish images'
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'drop_windows'
- bash: |
set -e
chcp.com 65001
source test-job/Scripts/activate
pip install -U junitxml
mkdir -p junit
stestr last --subunit | python tools/subunit_to_junit.py -o junit/test-results.xml
pushd .stestr
ls | grep -P "^\d" | xargs -d "\n" rm -f
popd
condition: succeededOrFailed()
env:
LANG: 'C.UTF-8'
PYTHONIOENCODING: 'utf-8:backslashreplace'
displayName: 'Generate results'
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testResultsFiles: '**/test-*.xml'
testRunTitle: 'Test results for Windows Python $(python.version)'
- job: 'Linux_Tests'
pool: {vmImage: 'ubuntu-latest'}
strategy:
matrix:
Python36:
python.version: '3.6'
Python38:
python.version: '3.8'
Python39:
python.version: '3.9'
variables:
QISKIT_SUPPRESS_PACKAGING_WARNINGS: Y
PIP_CACHE_DIR: $(Pipeline.Workspace)/.pip
QISKIT_TEST_CAPTURE_STREAMS: 1
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- task: Cache@2
inputs:
key: 'pip | "$(Agent.OS)" | "$(python.version)" | "$(Build.BuildNumber)"'
restoreKeys: |
pip | "$(Agent.OS)" | "$(python.version)"
pip | "$(Agent.OS)"
pip
path: $(PIP_CACHE_DIR)
displayName: Cache pip
- task: Cache@2
inputs:
key: 'stestr | "$(Agent.OS)" | "$(python.version)" | "$(Build.BuildNumber)"'
restoreKeys: |
stestr | "$(Agent.OS)" | "$(python.version)"
stestr | "$(Agent.OS)"
stestr
path: .stestr
displayName: Cache stestr
- bash: |
set -e
python -m pip install --upgrade pip setuptools wheel virtualenv
virtualenv test-job
source test-job/bin/activate
pip install -U -r requirements.txt -r requirements-dev.txt -c constraints.txt
pip install -U -c constraints.txt -e .
pip install -U "qiskit-aer" "z3-solver" -c constraints.txt
python setup.py build_ext --inplace
sudo apt install -y graphviz
pip check
displayName: 'Install dependencies'
- bash: |
set -e
source test-job/bin/activate
export PYTHONHASHSEED=$(python -S -c "import random; print(random.randint(1, 4294967295))")
echo "PYTHONHASHSEED=$PYTHONHASHSEED"
stestr run
displayName: 'Run tests'
- task: CopyFiles@2
condition: failed()
displayName: 'Copy images'
inputs:
contents: '**/*.png'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
condition: failed()
displayName: 'Publish images'
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'drop_linux'
- bash: |
set -e
source test-job/bin/activate
pip install -U junitxml
mkdir -p junit
stestr last --subunit | tools/subunit_to_junit.py -o junit/test-results.xml
pushd .stestr
ls | grep -P "^\d" | xargs -d "\n" rm -f
popd
condition: succeededOrFailed()
displayName: 'Generate results'
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testResultsFiles: '**/test-*.xml'
testRunTitle: 'Test results for Linux Python $(python.version)'
- job: 'MacOS_Catalina_Tests'
pool: {vmImage: 'macOS-latest'}
strategy:
matrix:
Python36:
python.version: '3.6'
Python38:
python.version: '3.8'
Python39:
python.version: '3.9'
variables:
QISKIT_SUPPRESS_PACKAGING_WARNINGS: Y
PIP_CACHE_DIR: $(Pipeline.Workspace)/.pip
QISKIT_TEST_CAPTURE_STREAMS: 1
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- task: Cache@2
inputs:
key: 'pip | "$(Agent.OS)" | "$(python.version)" | "$(Build.BuildNumber)"'
restoreKeys: |
pip | "$(Agent.OS)" | "$(python.version)"
pip | "$(Agent.OS)"
pip
path: $(PIP_CACHE_DIR)
displayName: Cache pip
- task: Cache@2
inputs:
key: 'stestr | "$(Agent.OS)" | "$(python.version)" | "$(Build.BuildNumber)"'
restoreKeys: |
stestr | "$(Agent.OS)" | "$(python.version)"
stestr | "$(Agent.OS)"
stestr
path: .stestr
displayName: Cache stestr
- bash: |
set -e
python -m pip install --upgrade pip setuptools wheel virtualenv
virtualenv test-job
source test-job/bin/activate
pip install -U -r requirements.txt -r requirements-dev.txt -c constraints.txt
pip install -U -c constraints.txt -e .
python setup.py build_ext --inplace
pip check
displayName: 'Install dependencies'
- bash: |
set -e
source test-job/bin/activate
export PYTHONHASHSEED=$(python -S -c "import random; print(random.randint(1, 4294967295))")
echo "PYTHONHASHSEED=$PYTHONHASHSEED"
stestr run
displayName: 'Run tests'
- task: CopyFiles@2
condition: failed()
displayName: 'Copy images'
inputs:
contents: '**/*.png'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
condition: failed()
displayName: 'Publish images'
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'drop_macos'
- bash: |
set -e
source test-job/bin/activate
pip install -U junitxml
mkdir -p junit
stestr last --subunit | tools/subunit_to_junit.py -o junit/test-results.xml
pushd .stestr
ls | grep -e '^[[:digit:]]' | xargs -n1 rm -f
popd
condition: succeededOrFailed()
displayName: 'Generate results'
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testResultsFiles: '**/test-*.xml'
testRunTitle: 'Test results for macOS Python $(python.version)'
- stage: 'Docs_and_Tutorials'
condition: and(succeeded('Python_Tests'), not(startsWith(variables['Build.SourceBranch'], 'refs/tags')))
jobs:
- job: 'Docs'
pool: {vmImage: 'ubuntu-latest'}
strategy:
matrix:
Python37:
python.version: '3.7'
variables:
PIP_CACHE_DIR: $(Pipeline.Workspace)/.pip
steps:
- checkout: self
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- task: Cache@2
inputs:
key: 'pip | "$(Agent.OS)" | "$(python.version)" | "$(Build.BuildNumber)"'
restoreKeys: |
pip | "$(Agent.OS)" | "$(python.version)"
pip | "$(Agent.OS)"
pip
path: $(PIP_CACHE_DIR)
displayName: Cache pip
- bash: |
set -e
python -m pip install --upgrade pip setuptools wheel
pip install -U tox
python setup.py build_ext --inplace
sudo apt install -y graphviz
displayName: 'Install dependencies'
- bash: |
tox -edocs
displayName: 'Run Docs build'
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: 'docs/_build/html'
archiveType: tar
archiveFile: '$(Build.ArtifactStagingDirectory)/html_docs.tar.gz'
verbose: true
- task: PublishBuildArtifacts@1
displayName: 'Publish docs'
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'html_docs'
Parallel: true
ParallelCount: 8
- job: 'Tutorials'
pool: {vmImage: 'ubuntu-latest'}
strategy:
matrix:
Python38:
python.version: '3.8'
variables:
QISKIT_SUPPRESS_PACKAGING_WARNINGS: Y
PIP_CACHE_DIR: $(Pipeline.Workspace)/.pip
QISKIT_CELL_TIMEOUT: 300
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- task: Cache@2
inputs:
key: 'pip | "$(Agent.OS)" | "$(python.version)"'
restoreKeys: |
pip | "$(Agent.OS)"
pip
path: $(PIP_CACHE_DIR)
displayName: Cache pip
- bash: |
set -e
git clone https://github.com/Qiskit/qiskit-tutorials --depth=1
python -m pip install --upgrade pip
pip install -U -r requirements.txt -r requirements-dev.txt -c constraints.txt
pip install -c constraints.txt -e .
# TODO: Remove aqua and ignis from source after next aqua release
pip install "qiskit-ibmq-provider" "qiskit-aer" "z3-solver" "git+https://github.com/Qiskit/qiskit-ignis" "git+https://github.com/Qiskit/qiskit-aqua" "pyscf<1.7.4" "matplotlib<3.3.0" sphinx nbsphinx sphinx_rtd_theme cvxpy -c constraints.txt
python setup.py build_ext --inplace
sudo apt install -y graphviz pandoc
pip check
displayName: 'Install dependencies'
- bash: |
set -e
cd qiskit-tutorials
sphinx-build -b html . _build/html
env:
QISKIT_PARALLEL: False
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: 'qiskit-tutorials/_build/html'
archiveType: tar
archiveFile: '$(Build.ArtifactStagingDirectory)/html_tutorials.tar.gz'
verbose: true
- task: PublishBuildArtifacts@1
displayName: 'Publish docs'
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'html_tutorials'
Parallel: true
ParallelCount: 8
- job: 'Image_tests'
pool: {vmImage: 'ubuntu-latest'}
strategy:
matrix:
Python38:
python.version: '3.8'
variables:
QISKIT_SUPPRESS_PACKAGING_WARNINGS: Y
PIP_CACHE_DIR: $(Pipeline.Workspace)/.pip
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- task: Cache@2
inputs:
key: 'pip | "$(Agent.OS)" | "$(python.version)"'
restoreKeys: |
pip | "$(Agent.OS)"
pip
path: $(PIP_CACHE_DIR)
displayName: Cache pip
- bash: |
set -e
python -m pip install --upgrade pip
pip install -U -r requirements.txt -c constraints.txt
pip install -U -c constraints.txt -e .
pip install -U "matplotlib<3.3.0" pylatexenc pillow
python setup.py build_ext --inplace
sudo apt install -y graphviz pandoc
pip check
displayName: 'Install dependencies'
- bash: python -m unittest discover -v test/ipynb
displayName: 'Run image test'