-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathazure-pipelines.yml
140 lines (114 loc) · 3.38 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
trigger:
- master
pr:
branches:
include:
- master
jobs:
- template: azure-job.yml
parameters:
pythons:
py34:
spec: '3.4'
py35:
spec: '3.5'
py36:
spec: '3.6'
py37:
spec: '3.7'
images: [linux, windows, macOs]
- template: azure-job.yml
parameters:
pythons:
pypy3:
name: 'pypy3_linux'
spec: 'pypy3'
images: [linux]
- template: azure-job.yml
parameters:
pythons:
pypy3:
name: 'pypy3_win'
spec: 'pypy3'
images: [windows]
extra_cmds:
# pypy3 on Windows breaks for pytest>=5,
# due to problems with faulthandler
downgrade:
name: 'Downgrade pytest'
cmd: 'pip install "pytest<5"'
- job: micropython
pool:
vmImage: 'Ubuntu-16.04'
steps:
- script: sudo apt-get install -y build-essential curl libreadline-dev libffi-dev git pkg-config gcc-arm-none-eabi libnewlib-arm-none-eabi
displayName: Install micropython dependencies
- script: git clone --recurse-submodules https://github.com/micropython/micropython.git micropython
displayName: Clone micropython repo
- script: sh -c 'cd micropython/mpy-cross && make'
displayName: Make mpy-cross
- script: sh -c 'cd micropython/ports/unix && make axtls && make'
displayName: Make MicroPython
- script: micropython/ports/unix/micropython -c 'import upip; upip.install(["unittest"])'
displayName: Install tooling
- script: micropython/ports/unix/micropython -X heapsize=50M tests/micropython/test_micropython.py
displayName: Run MicroPython tests
- job: flake8
pool:
vmImage: 'Ubuntu-16.04'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.7'
- script: pip install -U tox
displayName: Install tox
- script: pip install -r requirements-flake8.txt
displayName: Install flake8 & plugins
- script: tox -e flake8
displayName: Lint the codebase
# This job runs the test suite, skipping any tests that
# intentionally raise warnings as part of their intended
# behavior, and reporting any warnings that are emitted
# unintentionally due to actual problems in the code.
- job: expose_warnings
pool:
vmImage: 'Ubuntu-16.04'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.7'
- script: pip install -r requirements-ci.txt
displayName: Install CI requirements
- script: pytest -v -W error::Warning
displayName: Run pytest, exposing underlying warnings (Python 3.7)
- job: docs
pool:
vmImage: 'Ubuntu-16.04'
strategy:
matrix:
display_warnings:
make_args: '-n'
error_warnings:
make_args: '-Wn'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.7'
# Needed for the inheritance diagram
- script: sudo apt-get install -y graphviz graphviz-dev libgraphviz-dev
displayName: Install graphviz
- script: pip install -r requirements-doc.txt
displayName: Install documentation requirements
- script: cd doc && make html O=$(make_args)
displayName: Build docs
- job: doctests
pool:
vmImage: 'Ubuntu-16.04'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.7'
- script: pip install -r requirements-doc.txt
displayName: Install documentation requirements
- script: cd doc && make doctest
displayName: Run doctests