136 lines
4.0 KiB
YAML
136 lines
4.0 KiB
YAML
trigger:
|
|
- master
|
|
- features
|
|
|
|
variables:
|
|
PYTEST_ADDOPTS: "--junitxml=build/test-results/$(tox.env).xml"
|
|
python.needs_vc: False
|
|
python.exe: "python"
|
|
COVERAGE_FILE: "$(Build.Repository.LocalPath)/.coverage"
|
|
COVERAGE_PROCESS_START: "$(Build.Repository.LocalPath)/.coveragerc"
|
|
PYTEST_COVERAGE: '0'
|
|
|
|
jobs:
|
|
|
|
- job: 'Test'
|
|
pool:
|
|
vmImage: "vs2017-win2016"
|
|
strategy:
|
|
matrix:
|
|
py27:
|
|
python.version: '2.7'
|
|
tox.env: 'py27'
|
|
py27-nobyte-lsof-numpy:
|
|
python.version: '2.7'
|
|
tox.env: 'py27-lsof-nobyte-numpy'
|
|
# Coverage for:
|
|
# - test_supports_breakpoint_module_global
|
|
# - test_terminal_reporter_writer_attr (without xdist)
|
|
# - "if write" branch in _pytest.assertion.rewrite
|
|
# - numpy
|
|
# - pytester's LsofFdLeakChecker (being skipped)
|
|
PYTEST_COVERAGE: '1'
|
|
py27-trial:
|
|
python.version: '2.7'
|
|
tox.env: 'py27-trial'
|
|
python.needs_vc: True
|
|
py27-pluggymaster-xdist:
|
|
python.version: '2.7'
|
|
tox.env: 'py27-pluggymaster-xdist'
|
|
# Coverage for:
|
|
# - except-IOError in _attempt_to_close_capture_file for py2.
|
|
# Also seen with py27-nobyte (using xdist), and py27-xdist.
|
|
# But no exception with py27-pexpect,py27-trial,py27-numpy.
|
|
PYTEST_COVERAGE: '1'
|
|
pypy:
|
|
python.version: 'pypy'
|
|
tox.env: 'pypy'
|
|
python.exe: 'pypy'
|
|
# NOTE: pypy3 fails to install pip currently due to an interal error.
|
|
# pypy3:
|
|
# python.version: 'pypy3'
|
|
# tox.env: 'pypy3'
|
|
# python.exe: 'pypy3'
|
|
py34-xdist:
|
|
python.version: '3.4'
|
|
tox.env: 'py34-xdist'
|
|
# Coverage for:
|
|
# - _pytest.compat._bytes_to_ascii
|
|
PYTEST_COVERAGE: '1'
|
|
py35-xdist:
|
|
python.version: '3.5'
|
|
tox.env: 'py35-xdist'
|
|
# Coverage for:
|
|
# - test_supports_breakpoint_module_global
|
|
PYTEST_COVERAGE: '1'
|
|
py36-xdist:
|
|
python.version: '3.6'
|
|
tox.env: 'py36-xdist'
|
|
py37:
|
|
python.version: '3.7'
|
|
tox.env: 'py37'
|
|
# Coverage for:
|
|
# - _py36_windowsconsoleio_workaround (with py36+)
|
|
# - test_request_garbage (no xdist)
|
|
PYTEST_COVERAGE: '1'
|
|
py37-linting/docs/doctesting:
|
|
python.version: '3.7'
|
|
tox.env: 'linting,docs,doctesting'
|
|
py37-trial/numpy:
|
|
python.version: '3.7'
|
|
tox.env: 'py37-trial,py37-numpy'
|
|
py37-pluggymaster-xdist:
|
|
python.version: '3.7'
|
|
tox.env: 'py37-pluggymaster-xdist'
|
|
maxParallel: 10
|
|
|
|
steps:
|
|
- task: UsePythonVersion@0
|
|
condition: not(startsWith(variables['python.exe'], 'pypy'))
|
|
inputs:
|
|
versionSpec: '$(python.version)'
|
|
architecture: 'x64'
|
|
|
|
- script: choco install vcpython27
|
|
condition: eq(variables['python.needs_vc'], True)
|
|
displayName: 'Install VC for py27'
|
|
|
|
- script: choco install python.pypy
|
|
condition: eq(variables['python.exe'], 'pypy')
|
|
displayName: 'Install pypy'
|
|
|
|
- script: choco install pypy3
|
|
condition: eq(variables['python.exe'], 'pypy3')
|
|
displayName: 'Install pypy3'
|
|
|
|
- task: PowerShell@2
|
|
inputs:
|
|
targetType: 'inline'
|
|
script: |
|
|
Invoke-WebRequest -Uri "https://bootstrap.pypa.io/get-pip.py" -OutFile "get-pip.py"
|
|
$(python.exe) get-pip.py
|
|
condition: startsWith(variables['python.exe'], 'pypy')
|
|
displayName: 'Install pip'
|
|
|
|
- script: $(python.exe) -m pip install --upgrade pip && $(python.exe) -m pip install tox
|
|
displayName: 'Install tox'
|
|
|
|
- script: |
|
|
call scripts/setup-coverage-vars.bat || goto :eof
|
|
$(python.exe) -m tox -e $(tox.env)
|
|
displayName: 'Run tests'
|
|
|
|
- task: PublishTestResults@2
|
|
inputs:
|
|
testResultsFiles: 'build/test-results/$(tox.env).xml'
|
|
testRunTitle: '$(tox.env)'
|
|
condition: succeededOrFailed()
|
|
|
|
- script: call scripts\upload-coverage.bat
|
|
displayName: 'Report and upload coverage'
|
|
condition: eq(variables['PYTEST_COVERAGE'], '1')
|
|
env:
|
|
PYTHON: $(python.exe)
|
|
CODECOV_TOKEN: $(CODECOV_TOKEN)
|
|
PYTEST_CODECOV_NAME: $(tox.env)
|