-
Notifications
You must be signed in to change notification settings - Fork 0
/
.azure-pipelines.yml
140 lines (137 loc) · 5.48 KB
/
.azure-pipelines.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
jobs:
- job: 'Windows'
pool:
vmImage: 'windows-latest'
strategy:
matrix:
Python35_x86:
python.version: '3.5'
python.architecture: 'x86'
Python35_x64:
python.version: '3.5'
python.architecture: 'x64'
Python36_x86:
python.version: '3.6'
python.architecture: 'x86'
Python36_x64:
python.version: '3.6'
python.architecture: 'x64'
Python37_x86:
python.version: '3.7'
python.architecture: 'x86'
Python37_x64:
python.version: '3.7'
python.architecture: 'x64'
Python38_x86:
python.version: '3.8'
python.architecture: 'x86'
Python38_x64:
python.version: '3.8'
python.architecture: 'x64'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
architecture: '$(python.architecture)'
- script: python -m pip install --upgrade pip setuptools
displayName: 'Install packaging tools'
- script: python -m pip install --upgrade codecov
displayName: 'Install codecov'
- script: python -m pip install --force-reinstall -r requirements.txt
displayName: 'Install requirements'
- script: python -m pip install --force-reinstall -r requirements-tests.txt
displayName: 'Install tests requirements'
- script: python -m pip install .
displayName: 'Install'
- script: pytest
displayName: 'Run tests'
- script: python -m doctest README.md
displayName: 'Run doctests'
- script: python -m codecov -f coverage.xml -X gcov
condition: succeeded()
displayName: 'Upload coverage'
env:
CODECOV_TOKEN: $(CODECOV_TOKEN)
- script: python -m pip install --upgrade cibuildwheel
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
displayName: 'Install build requirements'
- bash:
CIBW_BEFORE_BUILD='python -m pip install -r requirements.txt'
CIBW_BUILD=$(python -c 'import sys; print("cp" + "".join(map(str, sys.version_info[:2])) + "-*")')
cibuildwheel --output-dir dist
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
displayName: 'Build wheels'
- script: python -m pip install --upgrade twine
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
displayName: 'Install deployment requirements'
- script: twine upload --skip-existing dist/*
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
displayName: 'Deploy wheels'
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: $(TWINE_PASSWORD)
- job: 'MacOS'
pool:
vmImage: 'macOS-latest'
strategy:
matrix:
Python35:
python.version: '3.5'
Python36:
python.version: '3.6'
Python37:
python.version: '3.7'
Python38:
python.version: '3.8'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
- script: python -m pip install --upgrade pip setuptools
displayName: 'Install packaging tools'
- script: python -m pip install --upgrade codecov
displayName: 'Install codecov'
- script: python -m pip install --upgrade gcovr
displayName: 'Install gcovr'
- script: python -m pip install --force-reinstall -r requirements.txt
displayName: 'Install requirements'
- script: python -m pip install --force-reinstall -r requirements-tests.txt
displayName: 'Install tests requirements'
- script: python -m pip install -e .
displayName: 'Install in editable mode'
env:
CPPFLAGS: --coverage
- script: pytest
displayName: 'Run tests'
- script: python -m doctest README.md
displayName: 'Run doctests'
- script: gcovr --filter src/ --xml -o coverage_cpp.xml
displayName: 'Collect C++ coverage'
- script: python -m codecov -f coverage.xml -X gcov
condition: succeeded()
displayName: 'Upload coverage'
env:
CODECOV_TOKEN: $(CODECOV_TOKEN)
- script: python -m codecov -f coverage_cpp.xml -X gcov
condition: succeeded()
displayName: 'Upload C++ coverage'
env:
CODECOV_TOKEN: $(CODECOV_TOKEN)
- script: python -m pip install --upgrade cibuildwheel
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
displayName: 'Install build requirements'
- bash:
CIBW_BEFORE_BUILD='python -m pip install -r requirements.txt'
CIBW_BUILD=$(python -c 'import sys; print("cp" + "".join(map(str, sys.version_info[:2])) + "-*")')
cibuildwheel --output-dir dist
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
displayName: 'Build wheels'
- script: python -m pip install --upgrade twine
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
displayName: 'Install deployment requirements'
- script: twine upload --skip-existing dist/*
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
displayName: 'Deploy wheels'
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: $(TWINE_PASSWORD)