Disable blocking on buildable queue (Functest)
[releng.git] / jjb / functest / functest-virtual.yaml
1 ---
2 - functest-defaultparameters: &functest-defaultparameters
3     name: 'functest-defaultparameters'
4     repo: opnfv
5     tag:
6       - gambia:
7           branch: stable/gambia
8       - hunter:
9           branch: stable/hunter
10       - latest:
11           branch: master
12
13 - job:
14     name: alpine-pull
15     parameters:
16       - functest-virtual-defaults
17     builders:
18       - shell: sudo docker pull alpine:3.8
19
20 - job-template:
21     name: '{repo}-functest-{container}-{tag}-pull'
22     parameters:
23       - functest-virtual-defaults
24     builders:
25       - shell: sudo docker pull {repo}/functest-{container}:{tag}
26
27 - project:
28     name: repo-functest-container-tag-pull
29     <<: *functest-defaultparameters
30     container:
31       - core
32       - tempest
33       - healthcheck
34       - smoke
35       - benchmarking
36       - components
37       - vnf
38       - features
39     jobs:
40       - '{repo}-functest-{container}-{tag}-pull'
41
42 - functest-pulljobs: &functest-pulljobs
43     name: 'functest-pulljobs'
44     projects:
45       - name: 'alpine-pull'
46       - name: '{repo}-functest-core-{tag}-pull'
47       - name: '{repo}-functest-tempest-{tag}-pull'
48       - name: '{repo}-functest-healthcheck-{tag}-pull'
49       - name: '{repo}-functest-smoke-{tag}-pull'
50       - name: '{repo}-functest-benchmarking-{tag}-pull'
51       - name: '{repo}-functest-components-{tag}-pull'
52       - name: '{repo}-functest-vnf-{tag}-pull'
53       - name: '{repo}-functest-features-{tag}-pull'
54
55 - job:
56     name: alpine-rmi
57     parameters:
58       - functest-virtual-defaults
59     builders:
60       - shell: sudo docker rmi alpine:3.8 || true
61
62 - job-template:
63     name: '{repo}-functest-{container}-{tag}-rmi'
64     parameters:
65       - functest-virtual-defaults
66     builders:
67       - shell: sudo docker rmi {repo}/functest-{container}:{tag} || true
68
69 - project:
70     name: repo-functest-container-tag-rmi
71     <<: *functest-defaultparameters
72     container:
73       - core
74       - tempest
75       - healthcheck
76       - smoke
77       - benchmarking
78       - components
79       - vnf
80       - features
81     jobs:
82       - '{repo}-functest-{container}-{tag}-rmi'
83
84 - job-template:
85     name: '{repo}-functest-{container}-{test}-{tag}-run'
86     parameters:
87       - functest-virtual-defaults
88     builders:
89       - shell: |
90           sudo docker run --rm \
91             -e EXTERNAL_NETWORK=public1 \
92             -v /home/opnfv/functest/results/$JOB_NAME-$BUILD_ID:\
93           /home/opnfv/functest/results \
94             -v /home/opnfv/functest/openstack.creds:\
95           /home/opnfv/functest/conf/env_file \
96             -v /home/opnfv/functest/images:/home/opnfv/functest/images \
97             -v /home/opnfv/functest/tempest_blacklist.yaml:\
98           /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/\
99           tempest/custom_tests/blacklist.yaml \
100             -v /home/opnfv/functest/rally_blacklist.yaml:\
101           /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/\
102           rally/blacklist.yaml \
103             {repo}/functest-{container}:{tag} run_tests -t {test} || \
104             export RES=$?
105           gsutil -m cp -r /home/opnfv/functest/results/$JOB_NAME-$BUILD_ID \
106             gs://artifacts.opnfv.org/functest/ > /dev/null
107           find /home/opnfv/functest/results/$JOB_NAME-$BUILD_ID -type f \
108             -printf \
109             "http://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID/%P\n"
110           sudo rm -rf /home/opnfv/functest/results/$JOB_NAME-$BUILD_ID
111           exit $RES
112
113 - project:
114     name: repo-functest-healthcheck-test-tag-run
115     <<: *functest-defaultparameters
116     container: healthcheck
117     test:
118       - connection_check
119       - tenantnetwork1
120       - tenantnetwork2
121       - vmready1
122       - vmready2
123       - singlevm1
124       - singlevm2
125       - vping_ssh
126       - vping_userdata
127       - cinder_test
128       - odl
129       - api_check
130       - snaps_health_check
131     jobs:
132       - '{repo}-functest-{container}-{test}-{tag}-run'
133
134 - functest-healthcheckjobs: &functest-healthcheckjobs
135     name: 'functest-healthcheckjobs'
136     projects:
137       - name: '{repo}-functest-healthcheck-connection_check-{tag}-run'
138       - name: '{repo}-functest-healthcheck-tenantnetwork1-{tag}-run'
139       - name: '{repo}-functest-healthcheck-tenantnetwork2-{tag}-run'
140       - name: '{repo}-functest-healthcheck-vmready1-{tag}-run'
141       - name: '{repo}-functest-healthcheck-vmready2-{tag}-run'
142       - name: '{repo}-functest-healthcheck-singlevm1-{tag}-run'
143       - name: '{repo}-functest-healthcheck-singlevm2-{tag}-run'
144       - name: '{repo}-functest-healthcheck-vping_ssh-{tag}-run'
145       - name: '{repo}-functest-healthcheck-vping_userdata-{tag}-run'
146       - name: '{repo}-functest-healthcheck-cinder_test-{tag}-run'
147       - name: '{repo}-functest-healthcheck-odl-{tag}-run'
148       - name: '{repo}-functest-healthcheck-api_check-{tag}-run'
149       - name: '{repo}-functest-healthcheck-snaps_health_check-{tag}-run'
150
151 - project:
152     name: repo-functest-smoke-test-tag-run
153     <<: *functest-defaultparameters
154     container: smoke
155     test:
156       - tempest_smoke
157       - neutron-tempest-plugin-api
158       - rally_sanity
159       - rally_jobs
160       - refstack_defcore
161       - patrole
162       - snaps_smoke
163       - neutron_trunk
164       - networking-bgpvpn
165       - networking-sfc
166       - barbican
167     jobs:
168       - '{repo}-functest-{container}-{test}-{tag}-run'
169
170 - functest-smokejobs: &functest-smokejobs
171     name: 'functest-smokejobs'
172     projects:
173       - name: '{repo}-functest-smoke-tempest_smoke-{tag}-run'
174       - name: '{repo}-functest-smoke-neutron-tempest-plugin-api-{tag}-run'
175       - name: '{repo}-functest-smoke-rally_sanity-{tag}-run'
176       - name: '{repo}-functest-smoke-rally_jobs-{tag}-run'
177       - name: '{repo}-functest-smoke-refstack_defcore-{tag}-run'
178       - name: '{repo}-functest-smoke-patrole-{tag}-run'
179       - name: '{repo}-functest-smoke-snaps_smoke-{tag}-run'
180       - name: '{repo}-functest-smoke-neutron_trunk-{tag}-run'
181       - name: '{repo}-functest-smoke-networking-bgpvpn-{tag}-run'
182       - name: '{repo}-functest-smoke-networking-sfc-{tag}-run'
183       - name: '{repo}-functest-smoke-barbican-{tag}-run'
184
185 - project:
186     name: repo-functest-benchmarking-test-tag-run'
187     <<: *functest-defaultparameters
188     container: benchmarking
189     test:
190       - vmtp
191       - shaker
192     jobs:
193       - '{repo}-functest-{container}-{test}-{tag}-run'
194
195 - functest-benchmarkingjobs: &functest-benchmarkingjobs
196     name: 'functest-benchmarkingjobs'
197     projects:
198       - name: '{repo}-functest-benchmarking-vmtp-{tag}-run'
199       - name: '{repo}-functest-benchmarking-shaker-{tag}-run'
200
201 - project:
202     name: repo-functest-components-test-tag-run
203     <<: *functest-defaultparameters
204     container: components
205     test:
206       - tempest_full
207       - tempest_scenario
208       - rally_full
209     jobs:
210       - '{repo}-functest-{container}-{test}-{tag}-run'
211
212 - functest-componentsjobs: &functest-componentsjobs
213     name: 'functest-componentsjobs'
214     projects:
215       - name: '{repo}-functest-components-tempest_full-{tag}-run'
216       - name: '{repo}-functest-components-tempest_scenario-{tag}-run'
217       # - name: '{repo}-functest-components-rally_full-{tag}-run'
218
219 - project:
220     name: repo-functest-vnf-{test}-{tag}-run
221     <<: *functest-defaultparameters
222     container: vnf
223     test:
224       - cloudify
225       - cloudify_ims
226       - heat_ims
227       - vyos_vrouter
228       - juju_epc
229     jobs:
230       - '{repo}-functest-{container}-{test}-{tag}-run'
231
232 - functest-vnfjobs: &functest-vnfjobs
233     name: 'functest-vnfjobs'
234     projects:
235       - name: '{repo}-functest-vnf-cloudify-{tag}-run'
236       - name: '{repo}-functest-vnf-cloudify_ims-{tag}-run'
237       - name: '{repo}-functest-vnf-heat_ims-{tag}-run'
238       - name: '{repo}-functest-vnf-vyos_vrouter-{tag}-run'
239       - name: '{repo}-functest-vnf-juju_epc-{tag}-run'
240
241 - project:
242     name: repo-functest-features-test-tag-run
243     <<: *functest-defaultparameters
244     container: features
245     test:
246       - doctor-notification
247       - bgpvpn
248       - functest-odl-sfc
249       - barometercollectd
250       - vgpu
251       - stor4nfv_os
252     jobs:
253       - '{repo}-functest-{container}-{test}-{tag}-run'
254
255 - functest-featuresjobs: &functest-featuresjobs
256     name: 'functest-featuresjobs'
257     projects:
258       - name: '{repo}-functest-features-doctor-notification-{tag}-run'
259       - name: '{repo}-functest-features-bgpvpn-{tag}-run'
260       - name: '{repo}-functest-features-functest-odl-sfc-{tag}-run'
261       - name: '{repo}-functest-features-barometercollectd-{tag}-run'
262       - name: '{repo}-functest-features-vgpu-{tag}-run'
263       - name: '{repo}-functest-features-stor4nfv_os-{tag}-run'
264
265 - functest-advjobs: &functest-advjobs
266     name: '&functest-advjobs'
267     projects:
268       - name: '{repo}-functest-smoke-tempest_smoke-{tag}-run'
269       - name: '{repo}-functest-smoke-neutron-tempest-plugin-api-{tag}-run'
270       - name: '{repo}-functest-smoke-rally_sanity-{tag}-run'
271       - name: '{repo}-functest-smoke-rally_jobs-{tag}-run'
272       - name: '{repo}-functest-smoke-refstack_defcore-{tag}-run'
273       - name: '{repo}-functest-smoke-patrole-{tag}-run'
274       - name: '{repo}-functest-smoke-snaps_smoke-{tag}-run'
275       - name: '{repo}-functest-smoke-neutron_trunk-{tag}-run'
276       - name: '{repo}-functest-smoke-networking-bgpvpn-{tag}-run'
277       - name: '{repo}-functest-smoke-networking-sfc-{tag}-run'
278       - name: '{repo}-functest-smoke-barbican-{tag}-run'
279       - name: '{repo}-functest-benchmarking-vmtp-{tag}-run'
280       - name: '{repo}-functest-benchmarking-shaker-{tag}-run'
281       - name: '{repo}-functest-components-tempest_full-{tag}-run'
282       - name: '{repo}-functest-components-tempest_scenario-{tag}-run'
283       # - name: '{repo}-functest-components-rally_full-{tag}-run'
284       - name: '{repo}-functest-vnf-cloudify-{tag}-run'
285       # - name: '{repo}-functest-vnf-cloudify_ims-{tag}-run'
286       # - name: '{repo}-functest-vnf-heat_ims-{tag}-run'
287       # - name: '{repo}-functest-vnf-vyos_vrouter-{tag}-run'
288       # - name: '{repo}-functest-vnf-juju_epc-{tag}-run'
289       - name: '{repo}-functest-features-doctor-notification-{tag}-run'
290       - name: '{repo}-functest-features-bgpvpn-{tag}-run'
291       - name: '{repo}-functest-features-functest-odl-sfc-{tag}-run'
292       - name: '{repo}-functest-features-barometercollectd-{tag}-run'
293       - name: '{repo}-functest-features-vgpu-{tag}-run'
294       - name: '{repo}-functest-features-stor4nfv_os-{tag}-run'
295
296 - functest-advcontainers-rmi: &functest-advcontainers-rmi
297     name: 'functest-advcontainers-rmi'
298     projects:
299       - name: '{repo}-functest-smoke-{tag}-rmi'
300       - name: '{repo}-functest-benchmarking-{tag}-rmi'
301       - name: '{repo}-functest-components-{tag}-rmi'
302       - name: '{repo}-functest-vnf-{tag}-rmi'
303       - name: '{repo}-functest-features-{tag}-rmi'
304
305 - job-template:
306     name: '{repo}-functest-{tag}-daily'
307     <<: *functest-defaultparameters
308     project-type: multijob
309     triggers:
310       - timed: '@daily'
311     properties:
312       - build-blocker:
313           use-build-blocker: true
314           blocking-level: 'NODE'
315           blocking-jobs:
316             - '{repo}-functest-.*-.*'
317     parameters:
318       - functest-virtual-defaults
319     builders:
320       - multijob:
321           name: remove advanced functest containers
322           <<: *functest-advcontainers-rmi
323       - multijob:
324           name: remove functest-tempest
325           projects:
326             - name: '{repo}-functest-tempest-{tag}-rmi'
327       - multijob:
328           name: remove functest-core
329           projects:
330             - name: '{repo}-functest-core-{tag}-rmi'
331       - multijob:
332           name: remove alpine
333           projects:
334             - name: 'alpine-rmi'
335       - multijob:
336           name: pull containers
337           <<: *functest-pulljobs
338       - multijob:
339           name: healthcheck
340           <<: *functest-healthcheckjobs
341       - multijob:
342           name: advanced suites
343           <<: *functest-advjobs
344
345 - project:
346     name: repo-functest-tag-daily
347     <<: *functest-defaultparameters
348     jobs:
349       - '{repo}-functest-{tag}-daily'
350
351 - functest-gateparameters: &functest-gateparameters
352     name: 'functest-gateparameters'
353     parameters:
354       - functest-virtual-defaults
355
356 - functest-checkparameters: &functest-checkparameters
357     name: 'functest-checkparameters'
358     parameters:
359       - functest-virtual-defaults
360       - string:
361           name: BRANCH
362           default: '{branch}'
363
364 - builder:
365     name: build-containers
366     builders:
367       - shell: |
368          case "{container}" in
369          "components")
370              args="" ;;
371          *)
372              args="--build-arg BRANCH={ref}" ;;
373          esac
374          cd docker/{container}
375          sudo docker build \
376            ${{args}} --pull=false --no-cache --force-rm=true \
377            -t {repo}/functest-{container}:{tag} .
378
379 - scm:
380     name: functest-scm
381     scm:
382       - git:
383           url: https://gerrit.opnfv.org/gerrit/functest
384           refspec: '+refs/changes/*:refs/changes/*'
385           branches:
386             - '{ref}'
387
388 - functest-buildparameters: &functest-buildparameters
389     name: 'functest-buildparameters'
390     container: '{container}'
391     repo: '{repo}'
392     tag: '{tag}'
393
394 - job-template:
395     name: '{repo}-functest-{container}-{tag}-gate'
396     <<: *functest-gateparameters
397     scm:
398       - functest-scm:
399           ref: $GERRIT_REFSPEC
400     builders:
401       - build-containers:
402           ref: $GERRIT_REFSPEC
403           <<: *functest-buildparameters
404
405 - builder:
406     name: run-tox
407     builders:
408       - shell: tox -e docs,pep8,pylint,yamllint,bashate,py27,cover
409
410 - job-template:
411     name: '{repo}-functest-{tag}-ut-gate'
412     <<: *functest-gateparameters
413     scm:
414       - functest-scm:
415           ref: $GERRIT_REFSPEC
416     builders:
417       - run-tox:
418           ref: $GERRIT_REFSPEC
419           repo: '{repo}'
420           tag: '{tag}'
421
422 - job-template:
423     name: '{repo}-functest-{tag}-ut-check'
424     <<: *functest-checkparameters
425     scm:
426       - functest-scm:
427           ref: $BRANCH
428     builders:
429       - run-tox:
430           ref: $BRANCH
431           repo: '{repo}'
432           tag: '{tag}'
433
434 - project:
435     name: repo-functest-tag-ut-build
436     <<: *functest-defaultparameters
437     jobs:
438       - '{repo}-functest-{tag}-ut-gate'
439       - '{repo}-functest-{tag}-ut-check'
440
441 - job-template:
442     name: '{repo}-functest-{container}-{tag}-check'
443     <<: *functest-checkparameters
444     scm:
445       - functest-scm:
446           ref: $BRANCH
447     builders:
448       - build-containers:
449           ref: $BRANCH
450           <<: *functest-buildparameters
451
452 - project:
453     name: repo-functest-container-tag-build
454     <<: *functest-defaultparameters
455     container:
456       - core
457       - tempest
458       - healthcheck
459       - smoke
460       - benchmarking
461       - components
462       - vnf
463       - features
464     jobs:
465       - '{repo}-functest-{container}-{tag}-gate'
466       - '{repo}-functest-{container}-{tag}-check'
467
468 - functest-projectparameters: &functest-projectparameters
469     name: 'functest-projectparameters'
470     current-parameters: true
471
472 - job-template:
473     name: '{repo}-functest-{tag}-gate'
474     project-type: multijob
475     <<: *functest-gateparameters
476     triggers:
477       - gerrit-trigger-patchset-created:
478           project: 'functest'
479           branch: '{branch}'
480           files: '**'
481     properties:
482       - build-blocker:
483           use-build-blocker: true
484           blocking-level: 'NODE'
485           blocking-jobs:
486             - '{repo}-functest-.*-.*'
487     builders:
488       - multijob:
489           name: run tox
490           projects:
491             - name: '{repo}-functest-{tag}-ut-gate'
492               <<: *functest-projectparameters
493       - multijob:
494           name: remove advanced functest containers
495           <<: *functest-advcontainers-rmi
496       - multijob:
497           name: remove functest-tempest
498           projects:
499             - name: '{repo}-functest-tempest-{tag}-rmi'
500               <<: *functest-projectparameters
501       - multijob:
502           name: remove functest-core
503           projects:
504             - name: '{repo}-functest-core-{tag}-rmi'
505               <<: *functest-projectparameters
506       - multijob:
507           name: remove alpine
508           projects:
509             - name: 'alpine-rmi'
510               <<: *functest-projectparameters
511       - multijob:
512           name: pull alpine
513           projects:
514             - name: 'alpine-pull'
515       - multijob:
516           name: build functest-core
517           projects:
518             - name: '{repo}-functest-core-{tag}-gate'
519               <<: *functest-projectparameters
520       - multijob:
521           name: build functest-tempest
522           projects:
523             - name: '{repo}-functest-tempest-{tag}-gate'
524               <<: *functest-projectparameters
525       - multijob:
526           name: build all remaining contrainers
527           projects:
528             - name: '{repo}-functest-healthcheck-{tag}-gate'
529               <<: *functest-projectparameters
530             - name: '{repo}-functest-smoke-{tag}-gate'
531               <<: *functest-projectparameters
532             - name: '{repo}-functest-benchmarking-{tag}-gate'
533               <<: *functest-projectparameters
534             - name: '{repo}-functest-components-{tag}-gate'
535               <<: *functest-projectparameters
536             - name: '{repo}-functest-vnf-{tag}-gate'
537               <<: *functest-projectparameters
538             - name: '{repo}-functest-features-{tag}-gate'
539               <<: *functest-projectparameters
540       - multijob:
541           name: healthcheck
542           <<: *functest-healthcheckjobs
543       - multijob:
544           name: advanced suites
545           <<: *functest-advjobs
546
547 - job-template:
548     name: '{repo}-functest-{tag}-check'
549     project-type: multijob
550     <<: *functest-checkparameters
551     properties:
552       - build-blocker:
553           use-build-blocker: true
554           blocking-level: 'NODE'
555           blocking-jobs:
556             - '{repo}-functest-.*-.*'
557     builders:
558       - multijob:
559           name: run tox
560           projects:
561             - name: '{repo}-functest-{tag}-ut-check'
562               <<: *functest-projectparameters
563       - multijob:
564           name: remove advanced functest containers
565           <<: *functest-advcontainers-rmi
566       - multijob:
567           name: remove functest-tempest
568           projects:
569             - name: '{repo}-functest-tempest-{tag}-rmi'
570               <<: *functest-projectparameters
571       - multijob:
572           name: remove functest-core
573           projects:
574             - name: '{repo}-functest-core-{tag}-rmi'
575               <<: *functest-projectparameters
576       - multijob:
577           name: remove alpine
578           projects:
579             - name: 'alpine-rmi'
580               <<: *functest-projectparameters
581       - multijob:
582           name: pull alpine
583           projects:
584             - name: 'alpine-pull'
585       - multijob:
586           name: build functest-core
587           projects:
588             - name: '{repo}-functest-core-{tag}-check'
589               <<: *functest-projectparameters
590       - multijob:
591           name: build functest-tempest
592           projects:
593             - name: '{repo}-functest-tempest-{tag}-check'
594               <<: *functest-projectparameters
595       - multijob:
596           name: build all remaining contrainers
597           projects:
598             - name: '{repo}-functest-healthcheck-{tag}-check'
599               <<: *functest-projectparameters
600             - name: '{repo}-functest-smoke-{tag}-check'
601               <<: *functest-projectparameters
602             - name: '{repo}-functest-benchmarking-{tag}-check'
603               <<: *functest-projectparameters
604             - name: '{repo}-functest-components-{tag}-check'
605               <<: *functest-projectparameters
606             - name: '{repo}-functest-vnf-{tag}-check'
607               <<: *functest-projectparameters
608             - name: '{repo}-functest-features-{tag}-check'
609               <<: *functest-projectparameters
610       - multijob:
611           name: healthcheck
612           <<: *functest-healthcheckjobs
613       - multijob:
614           name: advanced suites
615           <<: *functest-advjobs
616
617 - project:
618     name: repo-functest-tag-build
619     <<: *functest-defaultparameters
620     jobs:
621       - '{repo}-functest-{tag}-gate'
622       - '{repo}-functest-{tag}-check'