Added check for release notes
[osm/RO.git] / tox.ini
1 #######################################################################################
2 # Copyright ETSI Contributors and Others.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13 # implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #######################################################################################
17
18 [tox]
19 envlist = black, flake8, safety
20
21 [tox:jenkins]
22 toxworkdir = /tmp/.tox
23
24 [testenv]
25 usedevelop = True
26 basepython = python3
27 setenv = VIRTUAL_ENV={envdir}
28 PYTHONDONTWRITEBYTECODE = 1
29 deps = -r{toxinidir}/requirements.txt
30 parallel_show_output = true
31
32
33 #######################################################################################
34 [testenv:release_notes]
35 deps = reno
36 skip_install = true
37 whitelist_externals = bash
38 commands =
39 reno new {posargs:new_feature}
40 bash -c "sed -i -e '1 e head -16 tox.ini' releasenotes/notes/{posargs:new_feature}*.yaml"
41
42
43 #######################################################################################
44 [testenv:black]
45 deps = black
46 skip_install = true
47 commands =
48 black --check --diff NG-RO
49 black --check --diff RO-plugin
50 black --check --diff RO-SDN-arista_cloudvision
51 black --check --diff RO-SDN-dpb
52 black --check --diff RO-SDN-dynpac
53 black --check --diff RO-SDN-floodlight_openflow
54 black --check --diff RO-SDN-ietfl2vpn
55 black --check --diff RO-SDN-juniper_contrail
56 black --check --diff RO-SDN-odl_openflow
57 black --check --diff RO-SDN-onos_openflow
58 black --check --diff RO-SDN-onos_vpls
59 black --check --diff RO-VIM-aws
60 black --check --diff RO-VIM-azure
61 black --check --diff RO-VIM-openstack
62 black --check --diff RO-VIM-openvim
63 black --check --diff RO-VIM-vmware
64
65
66 #######################################################################################
67 [testenv:cover]
68 deps = {[testenv]deps}
69 -r{toxinidir}/requirements-dev.txt
70 -r{toxinidir}/requirements-test.txt
71 skip_install = true
72 whitelist_externals = sh
73 commands =
74 sh -c 'rm -f nosetests.xml'
75 coverage erase
76 # NG-RO
77 nose2 -C --coverage NG-RO/osm_ng_ro -s NG-RO/osm_ng_ro
78 sh -c 'mv .coverage .coverage_ng_ro'
79 # RO-plugin
80 nose2 -C --coverage RO-plugin/osm_ro_plugin -s RO-plugin/osm_ro_plugin
81 sh -c 'mv .coverage .coverage_ro_plugin'
82 # RO-SDN-arista_cloudvision
83 nose2 -C --coverage RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision -s RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision
84 sh -c 'mv .coverage .coverage_rosdn_arista_cloudvision'
85 # RO-SDN-dpb
86 nose2 -C --coverage RO-SDN-dpb/osm_rosdn_dpb -s RO-SDN-dpb/osm_rosdn_dpb
87 sh -c 'mv .coverage .coverage_rosdn_dpb'
88 # RO-SDN-dynpac
89 nose2 -C --coverage RO-SDN-dynpac/osm_rosdn_dynpac -s RO-SDN-dynpac/osm_rosdn_dynpac
90 sh -c 'mv .coverage .coverage_rosdn_dynpac'
91 # RO-SDN-floodlight_openflow
92 nose2 -C --coverage RO-SDN-floodlight_openflow/osm_rosdn_floodlightof -s RO-SDN-floodlight_openflow/osm_rosdn_floodlightof
93 sh -c 'mv .coverage .coverage_rosdn_floodlightof'
94 # RO-SDN-ietfl2vpn
95 nose2 -C --coverage RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn -s RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn
96 sh -c 'mv .coverage .coverage_rosdn_ietfl2vpn'
97 # RO-SDN-juniper_contrail
98 nose2 -C --coverage RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail -s RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail
99 sh -c 'mv .coverage .coverage_rosdn_juniper_contrail'
100 # RO-SDN-odl_openflow
101 nose2 -C --coverage RO-SDN-odl_openflow/osm_rosdn_odlof -s RO-SDN-odl_openflow/osm_rosdn_odlof
102 sh -c 'mv .coverage .coverage_rosdn_odlof'
103 # RO-SDN-onos_openflow
104 nose2 -C --coverage RO-SDN-onos_openflow/osm_rosdn_onosof -s RO-SDN-onos_openflow/osm_rosdn_onosof
105 sh -c 'mv .coverage .coverage_rosdn_onosof'
106 # RO-SDN-onos_vpls
107 nose2 -C --coverage RO-SDN-onos_vpls/osm_rosdn_onos_vpls -s RO-SDN-onos_vpls/osm_rosdn_onos_vpls
108 sh -c 'mv .coverage .coverage_rosdn_onos_vpls'
109 # RO-VIM-aws
110 nose2 -C --coverage RO-VIM-aws/osm_rovim_aws -s RO-VIM-aws/osm_rovim_aws
111 sh -c 'mv .coverage .coverage_rovim_aws'
112 # RO-VIM-azure
113 nose2 -C --coverage RO-VIM-azure/osm_rovim_azure -s RO-VIM-azure/osm_rovim_azure
114 sh -c 'mv .coverage .coverage_rovim_azure'
115 # RO-VIM-openstack
116 # nose2 -C --coverage RO-VIM-openstack/osm_rovim_openstack -s RO-VIM-openstack/osm_rovim_openstack
117 # sh -c 'mv .coverage .coverage_rovim_openstack'
118 # RO-VIM-openvim
119 nose2 -C --coverage RO-VIM-openvim/osm_rovim_openvim -s RO-VIM-openvim/osm_rovim_openvim
120 sh -c 'mv .coverage .coverage_rovim_openvim'
121 # RO-VIM-vmware
122 # nose2 -C --coverage RO-VIM-vmware/osm_rovim_vmware -s RO-VIM-vmware/osm_rovim_vmware
123 # sh -c 'mv .coverage .coverage_rovim_vmware'
124 # Combine results and generate reports
125 coverage combine .coverage_ng_ro .coverage_ro_plugin .coverage_rosdn_arista_cloudvision .coverage_rosdn_dpb .coverage_rosdn_dynpac .coverage_rosdn_floodlightof .coverage_rosdn_ietfl2vpn .coverage_rosdn_juniper_contrail .coverage_rosdn_odlof .coverage_rosdn_onos_vpls .coverage_rosdn_onosof .coverage_rovim_aws .coverage_rovim_azure .coverage_rovim_openvim # .coverage_rovim_openstack .coverage_rovim_vmware
126 coverage report --omit='*tests*'
127 coverage html -d ./cover --omit='*tests*'
128 coverage xml -o coverage.xml --omit='*tests*'
129
130 #######################################################################################
131 [testenv:flake8]
132 deps = flake8
133 flake8-import-order
134 skip_install = true
135 commands =
136 flake8 NG-RO/osm_ng_ro/ NG-RO/setup.py
137 flake8 RO-plugin/osm_ro_plugin/ RO-plugin/setup.py
138 flake8 RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision/ RO-SDN-arista_cloudvision/setup.py
139 flake8 RO-SDN-dpb/osm_rosdn_dpb/ RO-SDN-dpb/setup.py
140 flake8 RO-SDN-dynpac/osm_rosdn_dynpac/ RO-SDN-dynpac/setup.py
141 flake8 RO-SDN-floodlight_openflow/osm_rosdn_floodlightof/ RO-SDN-floodlight_openflow/setup.py
142 flake8 RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn/ RO-SDN-ietfl2vpn/setup.py
143 flake8 RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/ RO-SDN-juniper_contrail/setup.py
144 flake8 RO-SDN-odl_openflow/osm_rosdn_odlof/ RO-SDN-odl_openflow/setup.py
145 flake8 RO-SDN-onos_openflow/osm_rosdn_onosof/ RO-SDN-onos_openflow/setup.py
146 flake8 RO-SDN-onos_vpls/osm_rosdn_onos_vpls/ RO-SDN-onos_vpls/setup.py
147 flake8 RO-VIM-aws/osm_rovim_aws/ RO-VIM-aws/setup.py
148 flake8 RO-VIM-azure/osm_rovim_azure/ RO-VIM-azure/setup.py
149 flake8 RO-VIM-openstack/osm_rovim_openstack/ RO-VIM-openstack/setup.py
150 flake8 RO-VIM-openvim/osm_rovim_openvim/ RO-VIM-openvim/setup.py
151 flake8 RO-VIM-vmware/osm_rovim_vmware/vimconn_vmware.py RO-VIM-vmware/osm_rovim_vmware/tests/test_vimconn_vmware.py RO-VIM-vmware/setup.py
152
153
154 #######################################################################################
155 [testenv:pylint]
156 deps = {[testenv]deps}
157 -r{toxinidir}/requirements-dev.txt
158 -r{toxinidir}/requirements-test.txt
159 pylint
160 skip_install = true
161 commands =
162 - pylint -E NG-RO/osm_ng_ro
163 - pylint -E RO-plugin/osm_ro_plugin
164 - pylint -E RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision
165 - pylint -E RO-SDN-dpb/osm_rosdn_dpb
166 - pylint -E RO-SDN-dynpac/osm_rosdn_dynpac
167 - pylint -E RO-SDN-floodlight_openflow/osm_rosdn_floodlightof
168 - pylint -E RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn
169 - pylint -E RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail
170 - pylint -E RO-SDN-odl_openflow/osm_rosdn_odlof
171 - pylint -E RO-SDN-onos_openflow/osm_rosdn_onosof
172 - pylint -E RO-SDN-onos_vpls/osm_rosdn_onos_vpls
173 - pylint -E RO-VIM-aws/osm_rovim_aws
174 - pylint -E RO-VIM-azure/osm_rovim_azure
175 - pylint -E RO-VIM-openstack/osm_rovim_openstack
176 - pylint -E RO-VIM-openvim/osm_rovim_openvim
177 - pylint -E RO-VIM-vmware/osm_rovim_vmware
178
179
180 #######################################################################################
181 [testenv:safety]
182 setenv =
183 LC_ALL=C.UTF-8
184 LANG=C.UTF-8
185 deps = {[testenv]deps}
186 safety
187 skip_install = true
188 commands =
189 - safety check --full-report
190
191
192 #######################################################################################
193 [testenv:pip-compile]
194 deps = pip-tools==6.4.0
195 skip_install = true
196 whitelist_externals = bash
197 [
198 commands =
199 - bash -c "for file in requirements*.in ; do \
200 UNSAFE="" ; \
201 if [[ $file =~ 'dist' ]] ; then UNSAFE='--allow-unsafe' ; fi ; \
202 pip-compile -rU --no-header $UNSAFE $file ;\
203 out=`echo $file | sed 's/.in/.txt/'` ; \
204 sed -i -e '1 e head -16 tox.ini' $out ;\
205 done"
206 - bash -c "sed -i 's/.*RO-plugin/-e RO-plugin/g' requirements-test.txt"
207
208
209 #######################################################################################
210 [testenv:dist_ng_ro]
211 deps = {[testenv]deps}
212 -r{toxinidir}/requirements-dist.txt
213 skip_install = true
214 whitelist_externals = sh
215 changedir = {toxinidir}/NG-RO
216 commands =
217 sh -c 'rm -rf osm_ng_ro/requirements.txt deb_dist dist osm_ng_ro.egg-info osm_ng_ro*.tar.gz'
218 sh -c 'cp ../requirements.txt osm_ng_ro/requirements.txt'
219 python3 setup.py --command-packages=stdeb.command sdist_dsc
220 sh -c 'cd deb_dist/osm-ng-ro*/ && dpkg-buildpackage -rfakeroot -uc -us'
221
222
223 #######################################################################################
224 [testenv:dist_ro_plugin]
225 deps = {[testenv]deps}
226 -r{toxinidir}/requirements-dist.txt
227 skip_install = true
228 whitelist_externals = sh
229 changedir = {toxinidir}/RO-plugin
230 commands =
231 sh -c 'rm -rf deb_dist dist osm_ro_plugin.egg-info osm_ro_plugin*.tar.gz'
232 python3 setup.py --command-packages=stdeb.command sdist_dsc
233 sh -c 'cd deb_dist/osm-ro-plugin*/ && dpkg-buildpackage -rfakeroot -uc -us'
234
235
236 #######################################################################################
237 [testenv:dist_ro_sdn_arista_cloudvision]
238 deps = {[testenv]deps}
239 -r{toxinidir}/requirements-dist.txt
240 skip_install = true
241 whitelist_externals = sh
242 changedir = {toxinidir}/RO-SDN-arista_cloudvision
243 commands =
244 sh -c 'rm -rf deb_dist dist osm_rosdn_arista_cloudvision.egg-info osm_rosdn_arista_cloudvision*.tar.gz'
245 python3 setup.py --command-packages=stdeb.command sdist_dsc
246 sh -c 'cd deb_dist/osm-rosdn-arista-cloudvision*/ && dpkg-buildpackage -rfakeroot -uc -us'
247
248
249 #######################################################################################
250 [testenv:dist_ro_sdn_dpb]
251 deps = {[testenv]deps}
252 -r{toxinidir}/requirements-dist.txt
253 skip_install = true
254 whitelist_externals = sh
255 changedir = {toxinidir}/RO-SDN-dpb
256 commands =
257 sh -c 'rm -rf deb_dist dist osm_rosdn_dpb.egg-info osm_rosdn_dpb*.tar.gz'
258 python3 setup.py --command-packages=stdeb.command sdist_dsc
259 sh -c 'cd deb_dist/osm-rosdn-dpb*/ && dpkg-buildpackage -rfakeroot -uc -us'
260
261
262 #######################################################################################
263 [testenv:dist_ro_sdn_dynpac]
264 deps = {[testenv]deps}
265 -r{toxinidir}/requirements-dist.txt
266 skip_install = true
267 whitelist_externals = sh
268 changedir = {toxinidir}/RO-SDN-dynpac
269 commands =
270 sh -c 'rm -rf deb_dist dist osm_rosdn_dynpac.egg-info osm_rosdn_dynpac*.tar.gz'
271 python3 setup.py --command-packages=stdeb.command sdist_dsc
272 sh -c 'cd deb_dist/osm-rosdn-dynpac*/ && dpkg-buildpackage -rfakeroot -uc -us'
273
274
275 #######################################################################################
276 [testenv:dist_ro_sdn_floodlight_of]
277 deps = {[testenv]deps}
278 -r{toxinidir}/requirements-dist.txt
279 skip_install = true
280 whitelist_externals = sh
281 changedir = {toxinidir}/RO-SDN-floodlight_openflow
282 commands =
283 sh -c 'rm -rf deb_dist dist osm_rosdn_floodlightof.egg-info osm_rosdn_floodlightof*.tar.gz'
284 python3 setup.py --command-packages=stdeb.command sdist_dsc
285 sh -c 'cd deb_dist/osm-rosdn-floodlightof*/ && dpkg-buildpackage -rfakeroot -uc -us'
286
287
288 #######################################################################################
289 [testenv:dist_ro_sdn_ietfl2vpn]
290 deps = {[testenv]deps}
291 -r{toxinidir}/requirements-dist.txt
292 skip_install = true
293 whitelist_externals = sh
294 changedir = {toxinidir}/RO-SDN-ietfl2vpn
295 commands =
296 sh -c 'rm -rf deb_dist dist osm_rosdn_ietfl2vpn.egg-info osm_rosdn_ietfl2vpn*.tar.gz'
297 python3 setup.py --command-packages=stdeb.command sdist_dsc
298 sh -c 'cd deb_dist/osm-rosdn-ietfl2vpn*/ && dpkg-buildpackage -rfakeroot -uc -us'
299
300
301 #######################################################################################
302 [testenv:dist_ro_sdn_juniper_contrail]
303 deps = {[testenv]deps}
304 -r{toxinidir}/requirements-dist.txt
305 skip_install = true
306 whitelist_externals = sh
307 changedir = {toxinidir}/RO-SDN-juniper_contrail
308 commands =
309 sh -c 'rm -rf deb_dist dist osm_rosdn_juniper_contrail.egg-info osm_rosdn_juniper_contrail*.tar.gz'
310 python3 setup.py --command-packages=stdeb.command sdist_dsc
311 sh -c 'cd deb_dist/osm-rosdn-juniper-contrail*/ && dpkg-buildpackage -rfakeroot -uc -us'
312
313
314 #######################################################################################
315 [testenv:dist_ro_sdn_odl_of]
316 deps = {[testenv]deps}
317 -r{toxinidir}/requirements-dist.txt
318 skip_install = true
319 whitelist_externals = sh
320 changedir = {toxinidir}/RO-SDN-odl_openflow
321 commands =
322 sh -c 'rm -rf deb_dist dist osm_rosdn_odlof.egg-info osm_rosdn_odlof*.tar.gz'
323 python3 setup.py --command-packages=stdeb.command sdist_dsc
324 sh -c 'cd deb_dist/osm-rosdn-odlof*/ && dpkg-buildpackage -rfakeroot -uc -us'
325
326
327 #######################################################################################
328 [testenv:dist_ro_sdn_onos_of]
329 deps = {[testenv]deps}
330 -r{toxinidir}/requirements-dist.txt
331 skip_install = true
332 whitelist_externals = sh
333 changedir = {toxinidir}/RO-SDN-onos_openflow
334 commands =
335 sh -c 'rm -rf deb_dist dist osm_rosdn_onosof.egg-info osm_rosdn_onosof*.tar.gz'
336 python3 setup.py --command-packages=stdeb.command sdist_dsc
337 sh -c 'cd deb_dist/osm-rosdn-onosof*/ && dpkg-buildpackage -rfakeroot -uc -us'
338
339
340 #######################################################################################
341 [testenv:dist_ro_sdn_onos_vpls]
342 deps = {[testenv]deps}
343 -r{toxinidir}/requirements-dist.txt
344 skip_install = true
345 whitelist_externals = sh
346 changedir = {toxinidir}/RO-SDN-onos_vpls
347 commands =
348 sh -c 'rm -rf deb_dist dist osm_rosdn_onos_vpls.egg-info osm_rosdn_onos_vpls*.tar.gz'
349 python3 setup.py --command-packages=stdeb.command sdist_dsc
350 sh -c 'cd deb_dist/osm-rosdn-onos-vpls*/ && dpkg-buildpackage -rfakeroot -uc -us'
351
352
353 #######################################################################################
354 [testenv:dist_ro_vim_aws]
355 deps = {[testenv]deps}
356 -r{toxinidir}/requirements-dist.txt
357 skip_install = true
358 whitelist_externals = sh
359 changedir = {toxinidir}/RO-VIM-aws
360 commands =
361 sh -c 'rm -rf deb_dist dist osm_rovim_aws.egg-info osm_rovim_aws*.tar.gz'
362 python3 setup.py --command-packages=stdeb.command sdist_dsc
363 sh -c 'cd deb_dist/osm-rovim-aws*/ && dpkg-buildpackage -rfakeroot -uc -us'
364
365
366 #######################################################################################
367 [testenv:dist_ro_vim_azure]
368 deps = {[testenv]deps}
369 -r{toxinidir}/requirements-dist.txt
370 skip_install = true
371 whitelist_externals = sh
372 changedir = {toxinidir}/RO-VIM-azure
373 commands =
374 sh -c 'rm -rf deb_dist dist osm_rovim_azure.egg-info osm_rovim_azure*.tar.gz'
375 python3 setup.py --command-packages=stdeb.command sdist_dsc
376 sh -c 'cd deb_dist/osm-rovim-azure*/ && dpkg-buildpackage -rfakeroot -uc -us'
377
378
379 #######################################################################################
380 [testenv:dist_ro_vim_openstack]
381 deps = {[testenv]deps}
382 -r{toxinidir}/requirements-dist.txt
383 skip_install = true
384 whitelist_externals = sh
385 changedir = {toxinidir}/RO-VIM-openstack
386 commands =
387 sh -c 'rm -rf deb_dist dist osm_rovim_openstack.egg-info osm_rovim_openstack*.tar.gz'
388 python3 setup.py --command-packages=stdeb.command sdist_dsc
389 sh -c 'cd deb_dist/osm-rovim-openstack*/ && dpkg-buildpackage -rfakeroot -uc -us'
390
391
392 #######################################################################################
393 [testenv:dist_ro_vim_openvim]
394 deps = {[testenv]deps}
395 -r{toxinidir}/requirements-dist.txt
396 skip_install = true
397 whitelist_externals = sh
398 changedir = {toxinidir}/RO-VIM-openvim
399 commands =
400 sh -c 'rm -rf deb_dist dist osm_rovim_openvim.egg-info osm_rovim_openvim*.tar.gz'
401 python3 setup.py --command-packages=stdeb.command sdist_dsc
402 sh -c 'cd deb_dist/osm-rovim-openvim*/ && dpkg-buildpackage -rfakeroot -uc -us'
403
404
405 #######################################################################################
406 [testenv:dist_ro_vim_vmware]
407 deps = {[testenv]deps}
408 -r{toxinidir}/requirements-dist.txt
409 skip_install = true
410 whitelist_externals = sh
411 changedir = {toxinidir}/RO-VIM-vmware
412 commands =
413 sh -c 'rm -rf deb_dist dist osm_rovim_vmware.egg-info osm_rovim_vmware*.tar.gz'
414 python3 setup.py --command-packages=stdeb.command sdist_dsc
415 sh -c 'cd deb_dist/osm-rovim-vmware*/ && dpkg-buildpackage -rfakeroot -uc -us'
416
417
418 #######################################################################################
419 [flake8]
420 ignore =
421 W291,
422 W293,
423 W503,
424 W605,
425 E123,
426 E125,
427 E203,
428 E226,
429 E241
430 exclude =
431 .git,
432 __pycache__,
433 .tox,
434 max-line-length = 120
435 show-source = True
436 builtins = _
437 import-order-style = google