Refactor method deploy
[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 black --check --diff RO-VIM-gcp
65 black --check --diff integration-tests
66
67
68 #######################################################################################
69 [testenv:cover]
70 deps = {[testenv]deps}
71 -r{toxinidir}/requirements-dev.txt
72 -r{toxinidir}/requirements-test.txt
73 skip_install = true
74 whitelist_externals = sh
75 commands =
76 sh -c 'rm -f nosetests.xml'
77 coverage erase
78 # NG-RO
79 nose2 -C --coverage NG-RO/osm_ng_ro -s NG-RO/osm_ng_ro
80 sh -c 'mv .coverage .coverage_ng_ro'
81 # RO-plugin
82 nose2 -C --coverage RO-plugin/osm_ro_plugin -s RO-plugin/osm_ro_plugin
83 sh -c 'mv .coverage .coverage_ro_plugin'
84 # RO-SDN-arista_cloudvision
85 nose2 -C --coverage RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision -s RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision
86 sh -c 'mv .coverage .coverage_rosdn_arista_cloudvision'
87 # RO-SDN-dpb
88 nose2 -C --coverage RO-SDN-dpb/osm_rosdn_dpb -s RO-SDN-dpb/osm_rosdn_dpb
89 sh -c 'mv .coverage .coverage_rosdn_dpb'
90 # RO-SDN-dynpac
91 nose2 -C --coverage RO-SDN-dynpac/osm_rosdn_dynpac -s RO-SDN-dynpac/osm_rosdn_dynpac
92 sh -c 'mv .coverage .coverage_rosdn_dynpac'
93 # RO-SDN-floodlight_openflow
94 nose2 -C --coverage RO-SDN-floodlight_openflow/osm_rosdn_floodlightof -s RO-SDN-floodlight_openflow/osm_rosdn_floodlightof
95 sh -c 'mv .coverage .coverage_rosdn_floodlightof'
96 # RO-SDN-ietfl2vpn
97 nose2 -C --coverage RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn -s RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn
98 sh -c 'mv .coverage .coverage_rosdn_ietfl2vpn'
99 # RO-SDN-juniper_contrail
100 nose2 -C --coverage RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail -s RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail
101 sh -c 'mv .coverage .coverage_rosdn_juniper_contrail'
102 # RO-SDN-odl_openflow
103 nose2 -C --coverage RO-SDN-odl_openflow/osm_rosdn_odlof -s RO-SDN-odl_openflow/osm_rosdn_odlof
104 sh -c 'mv .coverage .coverage_rosdn_odlof'
105 # RO-SDN-onos_openflow
106 nose2 -C --coverage RO-SDN-onos_openflow/osm_rosdn_onosof -s RO-SDN-onos_openflow/osm_rosdn_onosof
107 sh -c 'mv .coverage .coverage_rosdn_onosof'
108 # RO-SDN-onos_vpls
109 nose2 -C --coverage RO-SDN-onos_vpls/osm_rosdn_onos_vpls -s RO-SDN-onos_vpls/osm_rosdn_onos_vpls
110 sh -c 'mv .coverage .coverage_rosdn_onos_vpls'
111 # RO-VIM-aws
112 nose2 -C --coverage RO-VIM-aws/osm_rovim_aws -s RO-VIM-aws/osm_rovim_aws
113 sh -c 'mv .coverage .coverage_rovim_aws'
114 # RO-VIM-azure
115 nose2 -C --coverage RO-VIM-azure/osm_rovim_azure -s RO-VIM-azure/osm_rovim_azure
116 sh -c 'mv .coverage .coverage_rovim_azure'
117 # RO-VIM-openstack
118 # nose2 -C --coverage RO-VIM-openstack/osm_rovim_openstack -s RO-VIM-openstack/osm_rovim_openstack
119 # sh -c 'mv .coverage .coverage_rovim_openstack'
120 # RO-VIM-openvim
121 nose2 -C --coverage RO-VIM-openvim/osm_rovim_openvim -s RO-VIM-openvim/osm_rovim_openvim
122 sh -c 'mv .coverage .coverage_rovim_openvim'
123 # RO-VIM-vmware
124 # nose2 -C --coverage RO-VIM-vmware/osm_rovim_vmware -s RO-VIM-vmware/osm_rovim_vmware
125 # sh -c 'mv .coverage .coverage_rovim_vmware'
126 # RO-VIM-gcp
127 nose2 -C --coverage RO-VIM-gcp/osm_rovim_gcp -s RO-VIM-gcp/osm_rovim_gcp
128 sh -c 'mv .coverage .coverage_rovim_gcp'
129 # Combine results and generate reports
130 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_gcp # .coverage_rovim_openstack .coverage_rovim_vmware
131 coverage report --omit='*tests*'
132 coverage html -d ./cover --omit='*tests*'
133 coverage xml -o coverage.xml --omit='*tests*'
134
135
136 #######################################################################################
137 [testenv:flake8]
138 deps =
139 flake8
140 flake8-import-order
141 skip_install = true
142 commands =
143 flake8 NG-RO/osm_ng_ro/ NG-RO/setup.py
144 flake8 RO-plugin/osm_ro_plugin/ RO-plugin/setup.py
145 flake8 RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision/ RO-SDN-arista_cloudvision/setup.py
146 flake8 RO-SDN-dpb/osm_rosdn_dpb/ RO-SDN-dpb/setup.py
147 flake8 RO-SDN-dynpac/osm_rosdn_dynpac/ RO-SDN-dynpac/setup.py
148 flake8 RO-SDN-floodlight_openflow/osm_rosdn_floodlightof/ RO-SDN-floodlight_openflow/setup.py
149 flake8 RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn/ RO-SDN-ietfl2vpn/setup.py
150 flake8 RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/ RO-SDN-juniper_contrail/setup.py
151 flake8 RO-SDN-odl_openflow/osm_rosdn_odlof/ RO-SDN-odl_openflow/setup.py
152 flake8 RO-SDN-onos_openflow/osm_rosdn_onosof/ RO-SDN-onos_openflow/setup.py
153 flake8 RO-SDN-onos_vpls/osm_rosdn_onos_vpls/ RO-SDN-onos_vpls/setup.py
154 flake8 RO-VIM-aws/osm_rovim_aws/ RO-VIM-aws/setup.py
155 flake8 RO-VIM-azure/osm_rovim_azure/ RO-VIM-azure/setup.py
156 flake8 RO-VIM-openstack/osm_rovim_openstack/ RO-VIM-openstack/setup.py
157 flake8 RO-VIM-openvim/osm_rovim_openvim/ RO-VIM-openvim/setup.py
158 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
159 flake8 RO-VIM-gcp/osm_rovim_gcp/ RO-VIM-gcp/setup.py
160 flake8 integration-tests/
161
162
163 #######################################################################################
164 [testenv:pylint]
165 deps = {[testenv]deps}
166 -r{toxinidir}/requirements-dev.txt
167 -r{toxinidir}/requirements-test.txt
168 pylint
169 skip_install = true
170 commands =
171 - pylint -E NG-RO/osm_ng_ro
172 - pylint -E RO-plugin/osm_ro_plugin
173 - pylint -E RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision
174 - pylint -E RO-SDN-dpb/osm_rosdn_dpb
175 - pylint -E RO-SDN-dynpac/osm_rosdn_dynpac
176 - pylint -E RO-SDN-floodlight_openflow/osm_rosdn_floodlightof
177 - pylint -E RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn
178 - pylint -E RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail
179 - pylint -E RO-SDN-odl_openflow/osm_rosdn_odlof
180 - pylint -E RO-SDN-onos_openflow/osm_rosdn_onosof
181 - pylint -E RO-SDN-onos_vpls/osm_rosdn_onos_vpls
182 - pylint -E RO-VIM-aws/osm_rovim_aws
183 - pylint -E RO-VIM-azure/osm_rovim_azure
184 - pylint -E RO-VIM-openstack/osm_rovim_openstack
185 - pylint -E RO-VIM-openvim/osm_rovim_openvim
186 - pylint -E RO-VIM-vmware/osm_rovim_vmware
187 - pylint -E RO-VIM-gcp/osm_rovim_gcp
188
189
190 #######################################################################################
191 [testenv:safety]
192 setenv =
193 LC_ALL=C.UTF-8
194 LANG=C.UTF-8
195 deps = {[testenv]deps}
196 safety
197 skip_install = true
198 commands =
199 - safety check --full-report
200
201
202 #######################################################################################
203 [testenv:pip-compile]
204 deps = pip-tools==6.4.0
205 skip_install = true
206 whitelist_externals = bash
207 [
208 commands =
209 - bash -c "for file in requirements*.in ; do \
210 UNSAFE="" ; \
211 if [[ $file =~ 'dist' ]] ; then UNSAFE='--allow-unsafe' ; fi ; \
212 pip-compile -rU --no-header $UNSAFE $file ;\
213 out=`echo $file | sed 's/.in/.txt/'` ; \
214 sed -i -e '1 e head -16 tox.ini' $out ;\
215 done"
216 - bash -c "sed -i 's/.*RO-plugin/-e RO-plugin/g' requirements-test.txt"
217
218
219 #######################################################################################
220 [testenv:dist_ng_ro]
221 deps = {[testenv]deps}
222 -r{toxinidir}/requirements-dist.txt
223 skip_install = true
224 whitelist_externals = sh
225 changedir = {toxinidir}/NG-RO
226 commands =
227 sh -c 'rm -rf osm_ng_ro/requirements.txt deb_dist dist osm_ng_ro.egg-info osm_ng_ro*.tar.gz'
228 sh -c 'cp ../requirements.txt osm_ng_ro/requirements.txt'
229 python3 setup.py --command-packages=stdeb.command sdist_dsc
230 sh -c 'cd deb_dist/osm-ng-ro*/ && dpkg-buildpackage -rfakeroot -uc -us'
231
232
233 #######################################################################################
234 [testenv:dist_ro_plugin]
235 deps = {[testenv]deps}
236 -r{toxinidir}/requirements-dist.txt
237 skip_install = true
238 whitelist_externals = sh
239 changedir = {toxinidir}/RO-plugin
240 commands =
241 sh -c 'rm -rf deb_dist dist osm_ro_plugin.egg-info osm_ro_plugin*.tar.gz'
242 python3 setup.py --command-packages=stdeb.command sdist_dsc
243 sh -c 'cd deb_dist/osm-ro-plugin*/ && dpkg-buildpackage -rfakeroot -uc -us'
244
245
246 #######################################################################################
247 [testenv:dist_ro_sdn_arista_cloudvision]
248 deps = {[testenv]deps}
249 -r{toxinidir}/requirements-dist.txt
250 skip_install = true
251 whitelist_externals = sh
252 changedir = {toxinidir}/RO-SDN-arista_cloudvision
253 commands =
254 sh -c 'rm -rf deb_dist dist osm_rosdn_arista_cloudvision.egg-info osm_rosdn_arista_cloudvision*.tar.gz'
255 python3 setup.py --command-packages=stdeb.command sdist_dsc
256 sh -c 'cd deb_dist/osm-rosdn-arista-cloudvision*/ && dpkg-buildpackage -rfakeroot -uc -us'
257
258
259 #######################################################################################
260 [testenv:dist_ro_sdn_dpb]
261 deps = {[testenv]deps}
262 -r{toxinidir}/requirements-dist.txt
263 skip_install = true
264 whitelist_externals = sh
265 changedir = {toxinidir}/RO-SDN-dpb
266 commands =
267 sh -c 'rm -rf deb_dist dist osm_rosdn_dpb.egg-info osm_rosdn_dpb*.tar.gz'
268 python3 setup.py --command-packages=stdeb.command sdist_dsc
269 sh -c 'cd deb_dist/osm-rosdn-dpb*/ && dpkg-buildpackage -rfakeroot -uc -us'
270
271
272 #######################################################################################
273 [testenv:dist_ro_sdn_dynpac]
274 deps = {[testenv]deps}
275 -r{toxinidir}/requirements-dist.txt
276 skip_install = true
277 whitelist_externals = sh
278 changedir = {toxinidir}/RO-SDN-dynpac
279 commands =
280 sh -c 'rm -rf deb_dist dist osm_rosdn_dynpac.egg-info osm_rosdn_dynpac*.tar.gz'
281 python3 setup.py --command-packages=stdeb.command sdist_dsc
282 sh -c 'cd deb_dist/osm-rosdn-dynpac*/ && dpkg-buildpackage -rfakeroot -uc -us'
283
284
285 #######################################################################################
286 [testenv:dist_ro_sdn_floodlight_of]
287 deps = {[testenv]deps}
288 -r{toxinidir}/requirements-dist.txt
289 skip_install = true
290 whitelist_externals = sh
291 changedir = {toxinidir}/RO-SDN-floodlight_openflow
292 commands =
293 sh -c 'rm -rf deb_dist dist osm_rosdn_floodlightof.egg-info osm_rosdn_floodlightof*.tar.gz'
294 python3 setup.py --command-packages=stdeb.command sdist_dsc
295 sh -c 'cd deb_dist/osm-rosdn-floodlightof*/ && dpkg-buildpackage -rfakeroot -uc -us'
296
297
298 #######################################################################################
299 [testenv:dist_ro_sdn_ietfl2vpn]
300 deps = {[testenv]deps}
301 -r{toxinidir}/requirements-dist.txt
302 skip_install = true
303 whitelist_externals = sh
304 changedir = {toxinidir}/RO-SDN-ietfl2vpn
305 commands =
306 sh -c 'rm -rf deb_dist dist osm_rosdn_ietfl2vpn.egg-info osm_rosdn_ietfl2vpn*.tar.gz'
307 python3 setup.py --command-packages=stdeb.command sdist_dsc
308 sh -c 'cd deb_dist/osm-rosdn-ietfl2vpn*/ && dpkg-buildpackage -rfakeroot -uc -us'
309
310
311 #######################################################################################
312 [testenv:dist_ro_sdn_juniper_contrail]
313 deps = {[testenv]deps}
314 -r{toxinidir}/requirements-dist.txt
315 skip_install = true
316 whitelist_externals = sh
317 changedir = {toxinidir}/RO-SDN-juniper_contrail
318 commands =
319 sh -c 'rm -rf deb_dist dist osm_rosdn_juniper_contrail.egg-info osm_rosdn_juniper_contrail*.tar.gz'
320 python3 setup.py --command-packages=stdeb.command sdist_dsc
321 sh -c 'cd deb_dist/osm-rosdn-juniper-contrail*/ && dpkg-buildpackage -rfakeroot -uc -us'
322
323
324 #######################################################################################
325 [testenv:dist_ro_sdn_odl_of]
326 deps = {[testenv]deps}
327 -r{toxinidir}/requirements-dist.txt
328 skip_install = true
329 whitelist_externals = sh
330 changedir = {toxinidir}/RO-SDN-odl_openflow
331 commands =
332 sh -c 'rm -rf deb_dist dist osm_rosdn_odlof.egg-info osm_rosdn_odlof*.tar.gz'
333 python3 setup.py --command-packages=stdeb.command sdist_dsc
334 sh -c 'cd deb_dist/osm-rosdn-odlof*/ && dpkg-buildpackage -rfakeroot -uc -us'
335
336
337 #######################################################################################
338 [testenv:dist_ro_sdn_onos_of]
339 deps = {[testenv]deps}
340 -r{toxinidir}/requirements-dist.txt
341 skip_install = true
342 whitelist_externals = sh
343 changedir = {toxinidir}/RO-SDN-onos_openflow
344 commands =
345 sh -c 'rm -rf deb_dist dist osm_rosdn_onosof.egg-info osm_rosdn_onosof*.tar.gz'
346 python3 setup.py --command-packages=stdeb.command sdist_dsc
347 sh -c 'cd deb_dist/osm-rosdn-onosof*/ && dpkg-buildpackage -rfakeroot -uc -us'
348
349
350 #######################################################################################
351 [testenv:dist_ro_sdn_onos_vpls]
352 deps = {[testenv]deps}
353 -r{toxinidir}/requirements-dist.txt
354 skip_install = true
355 whitelist_externals = sh
356 changedir = {toxinidir}/RO-SDN-onos_vpls
357 commands =
358 sh -c 'rm -rf deb_dist dist osm_rosdn_onos_vpls.egg-info osm_rosdn_onos_vpls*.tar.gz'
359 python3 setup.py --command-packages=stdeb.command sdist_dsc
360 sh -c 'cd deb_dist/osm-rosdn-onos-vpls*/ && dpkg-buildpackage -rfakeroot -uc -us'
361
362
363 #######################################################################################
364 [testenv:dist_ro_vim_aws]
365 deps = {[testenv]deps}
366 -r{toxinidir}/requirements-dist.txt
367 skip_install = true
368 whitelist_externals = sh
369 changedir = {toxinidir}/RO-VIM-aws
370 commands =
371 sh -c 'rm -rf deb_dist dist osm_rovim_aws.egg-info osm_rovim_aws*.tar.gz'
372 python3 setup.py --command-packages=stdeb.command sdist_dsc
373 sh -c 'cd deb_dist/osm-rovim-aws*/ && dpkg-buildpackage -rfakeroot -uc -us'
374
375
376 #######################################################################################
377 [testenv:dist_ro_vim_azure]
378 deps = {[testenv]deps}
379 -r{toxinidir}/requirements-dist.txt
380 skip_install = true
381 whitelist_externals = sh
382 changedir = {toxinidir}/RO-VIM-azure
383 commands =
384 sh -c 'rm -rf deb_dist dist osm_rovim_azure.egg-info osm_rovim_azure*.tar.gz'
385 python3 setup.py --command-packages=stdeb.command sdist_dsc
386 sh -c 'cd deb_dist/osm-rovim-azure*/ && dpkg-buildpackage -rfakeroot -uc -us'
387
388
389 #######################################################################################
390 [testenv:dist_ro_vim_openstack]
391 deps = {[testenv]deps}
392 -r{toxinidir}/requirements-dist.txt
393 skip_install = true
394 whitelist_externals = sh
395 changedir = {toxinidir}/RO-VIM-openstack
396 commands =
397 sh -c 'rm -rf deb_dist dist osm_rovim_openstack.egg-info osm_rovim_openstack*.tar.gz'
398 python3 setup.py --command-packages=stdeb.command sdist_dsc
399 sh -c 'cd deb_dist/osm-rovim-openstack*/ && dpkg-buildpackage -rfakeroot -uc -us'
400
401
402 #######################################################################################
403 [testenv:dist_ro_vim_openvim]
404 deps = {[testenv]deps}
405 -r{toxinidir}/requirements-dist.txt
406 skip_install = true
407 whitelist_externals = sh
408 changedir = {toxinidir}/RO-VIM-openvim
409 commands =
410 sh -c 'rm -rf deb_dist dist osm_rovim_openvim.egg-info osm_rovim_openvim*.tar.gz'
411 python3 setup.py --command-packages=stdeb.command sdist_dsc
412 sh -c 'cd deb_dist/osm-rovim-openvim*/ && dpkg-buildpackage -rfakeroot -uc -us'
413
414
415 #######################################################################################
416 [testenv:dist_ro_vim_vmware]
417 deps = {[testenv]deps}
418 -r{toxinidir}/requirements-dist.txt
419 skip_install = true
420 whitelist_externals = sh
421 changedir = {toxinidir}/RO-VIM-vmware
422 commands =
423 sh -c 'rm -rf deb_dist dist osm_rovim_vmware.egg-info osm_rovim_vmware*.tar.gz'
424 python3 setup.py --command-packages=stdeb.command sdist_dsc
425 sh -c 'cd deb_dist/osm-rovim-vmware*/ && dpkg-buildpackage -rfakeroot -uc -us'
426
427
428 #######################################################################################
429 [testenv:dist_ro_vim_gcp]
430 deps = {[testenv]deps}
431 -r{toxinidir}/requirements-dist.txt
432 skip_install = true
433 whitelist_externals = sh
434 changedir = {toxinidir}/RO-VIM-gcp
435 commands =
436 sh -c 'rm -rf deb_dist dist osm_rovim_gcp.egg-info osm_rovim_gcp*.tar.gz'
437 python3 setup.py --command-packages=stdeb.command sdist_dsc
438 sh -c 'cd deb_dist/osm-rovim-gcp*/ && dpkg-buildpackage -rfakeroot -uc -us'
439
440
441 #######################################################################################
442 [flake8]
443 ignore =
444 W291,
445 W293,
446 W503,
447 W605,
448 E123,
449 E125,
450 E203,
451 E226,
452 E241
453 exclude =
454 .git,
455 __pycache__,
456 .tox,
457 max-line-length = 120
458 show-source = True
459 builtins = _
460 import-order-style = google