79f551e30f67fc2b7bd2a9df195d7d175875824c
[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           queue-scanning: 'BUILDABLE'
316           blocking-jobs:
317             - '{repo}-functest-.*-.*'
318     parameters:
319       - functest-virtual-defaults
320     builders:
321       - multijob:
322           name: remove advanced functest containers
323           <<: *functest-advcontainers-rmi
324       - multijob:
325           name: remove functest-tempest
326           projects:
327             - name: '{repo}-functest-tempest-{tag}-rmi'
328       - multijob:
329           name: remove functest-core
330           projects:
331             - name: '{repo}-functest-core-{tag}-rmi'
332       - multijob:
333           name: remove alpine
334           projects:
335             - name: 'alpine-rmi'
336       - multijob:
337           name: pull containers
338           <<: *functest-pulljobs
339       - multijob:
340           name: healthcheck
341           <<: *functest-healthcheckjobs
342       - multijob:
343           name: advanced suites
344           <<: *functest-advjobs
345
346 - project:
347     name: repo-functest-tag-daily
348     <<: *functest-defaultparameters
349     jobs:
350       - '{repo}-functest-{tag}-daily'
351
352 - functest-gateparameters: &functest-gateparameters
353     name: 'functest-gateparameters'
354     parameters:
355       - functest-virtual-defaults
356
357 - functest-checkparameters: &functest-checkparameters
358     name: 'functest-checkparameters'
359     parameters:
360       - functest-virtual-defaults
361       - string:
362           name: BRANCH
363           default: '{branch}'
364
365 - builder:
366     name: build-containers
367     builders:
368       - shell: |
369          case "{container}" in
370          "components")
371              args="" ;;
372          *)
373              args="--build-arg BRANCH={ref}" ;;
374          esac
375          cd docker/{container}
376          sudo docker build \
377            ${{args}} --pull=false --no-cache --force-rm=true \
378            -t {repo}/functest-{container}:{tag} .
379
380 - scm:
381     name: functest-scm
382     scm:
383       - git:
384           url: https://gerrit.opnfv.org/gerrit/functest
385           refspec: '+refs/changes/*:refs/changes/*'
386           branches:
387             - '{ref}'
388
389 - functest-buildparameters: &functest-buildparameters
390     name: 'functest-buildparameters'
391     container: '{container}'
392     repo: '{repo}'
393     tag: '{tag}'
394
395 - job-template:
396     name: '{repo}-functest-{container}-{tag}-gate'
397     <<: *functest-gateparameters
398     scm:
399       - functest-scm:
400           ref: $GERRIT_REFSPEC
401     builders:
402       - build-containers:
403           ref: $GERRIT_REFSPEC
404           <<: *functest-buildparameters
405
406 - builder:
407     name: run-tox
408     builders:
409       - shell: tox
410
411 - job-template:
412     name: '{repo}-functest-{tag}-ut-gate'
413     <<: *functest-gateparameters
414     scm:
415       - functest-scm:
416           ref: $GERRIT_REFSPEC
417     builders:
418       - run-tox:
419           ref: $GERRIT_REFSPEC
420           repo: '{repo}'
421           tag: '{tag}'
422
423 - job-template:
424     name: '{repo}-functest-{tag}-ut-check'
425     <<: *functest-checkparameters
426     scm:
427       - functest-scm:
428           ref: $BRANCH
429     builders:
430       - run-tox:
431           ref: $BRANCH
432           repo: '{repo}'
433           tag: '{tag}'
434
435 - project:
436     name: repo-functest-tag-ut-build
437     <<: *functest-defaultparameters
438     jobs:
439       - '{repo}-functest-{tag}-ut-gate'
440       - '{repo}-functest-{tag}-ut-check'
441
442 - job-template:
443     name: '{repo}-functest-{container}-{tag}-check'
444     <<: *functest-checkparameters
445     scm:
446       - functest-scm:
447           ref: $BRANCH
448     builders:
449       - build-containers:
450           ref: $BRANCH
451           <<: *functest-buildparameters
452
453 - project:
454     name: repo-functest-container-tag-build
455     <<: *functest-defaultparameters
456     container:
457       - core
458       - tempest
459       - healthcheck
460       - smoke
461       - benchmarking
462       - components
463       - vnf
464       - features
465     jobs:
466       - '{repo}-functest-{container}-{tag}-gate'
467       - '{repo}-functest-{container}-{tag}-check'
468
469 - functest-projectparameters: &functest-projectparameters
470     name: 'functest-projectparameters'
471     current-parameters: true
472
473 - job-template:
474     name: '{repo}-functest-{tag}-gate'
475     project-type: multijob
476     <<: *functest-gateparameters
477     triggers:
478       - gerrit-trigger-patchset-created:
479           project: 'functest'
480           branch: '{branch}'
481           files: '**'
482     properties:
483       - build-blocker:
484           use-build-blocker: true
485           blocking-level: 'NODE'
486           queue-scanning: 'BUILDABLE'
487           blocking-jobs:
488             - '{repo}-functest-.*-.*'
489     builders:
490       - multijob:
491           name: run tox
492           projects:
493             - name: '{repo}-functest-{tag}-ut-gate'
494               <<: *functest-projectparameters
495       - multijob:
496           name: remove advanced functest containers
497           <<: *functest-advcontainers-rmi
498       - multijob:
499           name: remove functest-tempest
500           projects:
501             - name: '{repo}-functest-tempest-{tag}-rmi'
502               <<: *functest-projectparameters
503       - multijob:
504           name: remove functest-core
505           projects:
506             - name: '{repo}-functest-core-{tag}-rmi'
507               <<: *functest-projectparameters
508       - multijob:
509           name: remove alpine
510           projects:
511             - name: 'alpine-rmi'
512               <<: *functest-projectparameters
513       - multijob:
514           name: pull alpine
515           projects:
516             - name: 'alpine-pull'
517       - multijob:
518           name: build functest-core
519           projects:
520             - name: '{repo}-functest-core-{tag}-gate'
521               <<: *functest-projectparameters
522       - multijob:
523           name: build functest-tempest
524           projects:
525             - name: '{repo}-functest-tempest-{tag}-gate'
526               <<: *functest-projectparameters
527       - multijob:
528           name: build all remaining contrainers
529           projects:
530             - name: '{repo}-functest-healthcheck-{tag}-gate'
531               <<: *functest-projectparameters
532             - name: '{repo}-functest-smoke-{tag}-gate'
533               <<: *functest-projectparameters
534             - name: '{repo}-functest-benchmarking-{tag}-gate'
535               <<: *functest-projectparameters
536             - name: '{repo}-functest-components-{tag}-gate'
537               <<: *functest-projectparameters
538             - name: '{repo}-functest-vnf-{tag}-gate'
539               <<: *functest-projectparameters
540             - name: '{repo}-functest-features-{tag}-gate'
541               <<: *functest-projectparameters
542       - multijob:
543           name: healthcheck
544           <<: *functest-healthcheckjobs
545       - multijob:
546           name: advanced suites
547           <<: *functest-advjobs
548
549 - job-template:
550     name: '{repo}-functest-{tag}-check'
551     project-type: multijob
552     <<: *functest-checkparameters
553     properties:
554       - build-blocker:
555           use-build-blocker: true
556           blocking-level: 'NODE'
557           queue-scanning: 'BUILDABLE'
558           blocking-jobs:
559             - '{repo}-functest-.*-.*'
560     builders:
561       - multijob:
562           name: run tox
563           projects:
564             - name: '{repo}-functest-{tag}-ut-check'
565               <<: *functest-projectparameters
566       - multijob:
567           name: remove advanced functest containers
568           <<: *functest-advcontainers-rmi
569       - multijob:
570           name: remove functest-tempest
571           projects:
572             - name: '{repo}-functest-tempest-{tag}-rmi'
573               <<: *functest-projectparameters
574       - multijob:
575           name: remove functest-core
576           projects:
577             - name: '{repo}-functest-core-{tag}-rmi'
578               <<: *functest-projectparameters
579       - multijob:
580           name: remove alpine
581           projects:
582             - name: 'alpine-rmi'
583               <<: *functest-projectparameters
584       - multijob:
585           name: pull alpine
586           projects:
587             - name: 'alpine-pull'
588       - multijob:
589           name: build functest-core
590           projects:
591             - name: '{repo}-functest-core-{tag}-check'
592               <<: *functest-projectparameters
593       - multijob:
594           name: build functest-tempest
595           projects:
596             - name: '{repo}-functest-tempest-{tag}-check'
597               <<: *functest-projectparameters
598       - multijob:
599           name: build all remaining contrainers
600           projects:
601             - name: '{repo}-functest-healthcheck-{tag}-check'
602               <<: *functest-projectparameters
603             - name: '{repo}-functest-smoke-{tag}-check'
604               <<: *functest-projectparameters
605             - name: '{repo}-functest-benchmarking-{tag}-check'
606               <<: *functest-projectparameters
607             - name: '{repo}-functest-components-{tag}-check'
608               <<: *functest-projectparameters
609             - name: '{repo}-functest-vnf-{tag}-check'
610               <<: *functest-projectparameters
611             - name: '{repo}-functest-features-{tag}-check'
612               <<: *functest-projectparameters
613       - multijob:
614           name: healthcheck
615           <<: *functest-healthcheckjobs
616       - multijob:
617           name: advanced suites
618           <<: *functest-advjobs
619
620 - project:
621     name: repo-functest-tag-build
622     <<: *functest-defaultparameters
623     jobs:
624       - '{repo}-functest-{tag}-gate'
625       - '{repo}-functest-{tag}-check'