3f3b1ae2e0b7b5bf2c5350f9fc7d5506af2ec751
[releng.git] / jjb / functest / functest.yaml
1 ---
2 - functest-jobs: &functest-jobs
3     name: 'functest-jobs'
4     current-parameters: true
5
6 - functest-params: &functest-params
7     name: 'functest-params'
8     repo: 'opnfv'
9     port:
10     tag:
11       - latest:
12           branch: master
13           slave: lf-virtual9
14       - iruya:
15           branch: stable/iruya
16           slave: lf-virtual4
17       - hunter:
18           branch: stable/hunter
19           slave: lf-virtual6
20
21 - parameter:
22     name: functest-slave
23     parameters:
24       - label:
25           name: slave
26           default: '{slave}'
27
28 - parameter:
29     name: functest-branch
30     parameters:
31       - string:
32           name: branch
33           default: '{branch}'
34
35 - functest-containers: &functest-containers
36     name: 'functest-containers'
37     repo: '{repo}'
38     port: '{port}'
39     container: '{container}'
40     tag: '{tag}'
41
42 - functest-run-containers: &functest-run-containers
43     name: 'functest-build-containers'
44     <<: *functest-containers
45     test: '{test}'
46
47 - functest-build-containers: &functest-build-containers
48     name: 'functest-build-containers'
49     <<: *functest-containers
50     ref_arg: '{ref_arg}'
51     path: '{path}'
52
53 - builder:
54     name: functest-pull-containers
55     builders:
56       - shell: |
57           set +x
58           if [ "{repo}" = "_" ]; then
59             image={container}:{tag}
60           elif [ "{port}" = "None" ]; then
61             image={repo}/{container}:{tag}
62           else
63             image={repo}:{port}/{container}:{tag}
64           fi
65           sudo docker pull $image
66
67 - builder:
68     name: functest-build-containers
69     builders:
70       - shell: |
71           set +x
72           if [ "{repo}" = "_" ]; then
73             image={container}:{tag}
74           elif [ "{port}" = "None" ]; then
75             image={repo}/{container}:{tag}
76           else
77             image={repo}:{port}/{container}:{tag}
78           fi
79           if [ "{ref_arg}" = "None" ]; then
80             build_arg=""
81           else
82             build_arg="--build-arg {ref_arg}={ref}"
83           fi
84           cd {path}
85           sudo docker build $build_arg \
86             --pull=false --no-cache --force-rm=true \
87             -t $image .
88
89 - builder:
90     name: functest-run-containers
91     builders:
92       - shell: |
93           set +ex
94           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
95           if [ "{repo}" = "_" ]; then
96             image={container}:{tag}
97           elif [ "{port}" = "None" ]; then
98             image={repo}/{container}:{tag}
99           else
100             image={repo}:{port}/{container}:{tag}
101           fi
102           sudo docker run --rm \
103             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
104             -e DEBUG=True \
105             -e EXTERNAL_NETWORK=public \
106             -e DEBUG=true \
107             -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \
108             -v /home/opnfv/functest/images:/home/opnfv/functest/images \
109             $image run_tests -t {test}
110           res=$?
111           gsutil -m cp -r $WORKSPACE/ \
112             gs://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID > /dev/null 2>&1
113           find $WORKSPACE -type f \
114             -printf \
115             "http://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID/%P\n"
116           exit $res
117
118 - builder:
119     name: functest-remove-images
120     builders:
121       - shell: |
122           set +x
123           if [ "{repo}" = "_" ]; then
124             image={container}:{tag}
125           elif [ "{port}" = "None" ]; then
126             image={repo}/{container}:{tag}
127           else
128             image={repo}:{port}/{container}:{tag}
129           fi
130           sudo docker rmi $image || true
131
132 - scm:
133     name: functest-scm
134     scm:
135       - git:
136           url: https://gerrit.opnfv.org/gerrit/functest
137           refspec: '+refs/changes/*:refs/changes/*'
138           branches:
139             - '{ref}'
140
141 - job-template:
142     name: 'functest-{repo}-{container}-{tag}-pull'
143     parameters:
144       - functest-slave:
145           slave: '{slave}'
146     builders:
147       - functest-pull-containers:
148           <<: *functest-containers
149
150 - project:
151     name: 'functest-opnfv-functest-healthcheck-pull'
152     <<: *functest-params
153     container: 'functest-healthcheck'
154     jobs:
155       - 'functest-{repo}-{container}-{tag}-pull'
156
157 - project:
158     name: 'functest-opnfv-functest-smoke-pull'
159     <<: *functest-params
160     container: 'functest-smoke'
161     jobs:
162       - 'functest-{repo}-{container}-{tag}-pull'
163
164 - project:
165     name: 'functest-opnfv-functest-benchmarking-pull'
166     <<: *functest-params
167     container: 'functest-benchmarking'
168     jobs:
169       - 'functest-{repo}-{container}-{tag}-pull'
170
171 - project:
172     name: 'functest-opnfv-functest-vnf-pull'
173     <<: *functest-params
174     container: 'functest-vnf'
175     jobs:
176       - 'functest-{repo}-{container}-{tag}-pull'
177
178 - project:
179     name: 'functest-opnfv-functest-features-pull'
180     <<: *functest-params
181     container: 'functest-features'
182     jobs:
183       - 'functest-{repo}-{container}-{tag}-pull'
184
185 - job-template:
186     name: 'functest-{repo}-{container}-{tag}-rmi'
187     parameters:
188       - functest-slave:
189           slave: '{slave}'
190     builders:
191       - functest-remove-images:
192           <<: *functest-containers
193
194 - project:
195     name: 'functest-opnfv-functest-healthcheck-rmi'
196     <<: *functest-params
197     container: 'functest-healthcheck'
198     jobs:
199       - 'functest-{repo}-{container}-{tag}-rmi'
200
201 - project:
202     name: 'functest-opnfv-functest-smoke-rmi'
203     <<: *functest-params
204     container: 'functest-smoke'
205     jobs:
206       - 'functest-{repo}-{container}-{tag}-rmi'
207
208 - project:
209     name: 'functest-opnfv-functest-benchmarking-rmi'
210     <<: *functest-params
211     container: 'functest-benchmarking'
212     jobs:
213       - 'functest-{repo}-{container}-{tag}-rmi'
214
215 - project:
216     name: 'functest-opnfv-functest-vnf-rmi'
217     <<: *functest-params
218     container: 'functest-vnf'
219     jobs:
220       - 'functest-{repo}-{container}-{tag}-rmi'
221
222 - project:
223     name: 'functest-opnfv-functest-features-rmi'
224     <<: *functest-params
225     container: 'functest-features'
226     jobs:
227       - 'functest-{repo}-{container}-{tag}-rmi'
228
229 - job-template:
230     name: 'functest-{repo}-{container}-{tag}-{test}-run'
231     parameters:
232       - functest-slave:
233           slave: '{slave}'
234     builders:
235       - functest-run-containers:
236           <<: *functest-run-containers
237
238 - project:
239     name: 'functest-opnfv-functest-healthcheck'
240     <<: *functest-params
241     container: 'functest-healthcheck'
242     test:
243       - connection_check
244       - tenantnetwork1
245       - tenantnetwork2
246       - vmready1
247       - vmready2
248       - singlevm1
249       - singlevm2
250       - vping_ssh
251       - vping_userdata
252       - cinder_test
253       - odl
254       - tempest_smoke
255     jobs:
256       - 'functest-{repo}-{container}-{tag}-{test}-run'
257
258 - project:
259     name: 'functest-opnfv-functest-smoke'
260     <<: *functest-params
261     container: 'functest-smoke'
262     test:
263       - neutron-tempest-plugin-api
264       - rally_sanity
265       - refstack_defcore
266       - tempest_full
267       - tempest_scenario
268       - patrole
269       - neutron_trunk
270       - networking-bgpvpn
271       - networking-sfc
272       - barbican
273     jobs:
274       - 'functest-{repo}-{container}-{tag}-{test}-run'
275
276 - project:
277     name: 'functest-opnfv-functest-benchmarking'
278     <<: *functest-params
279     container: 'functest-benchmarking'
280     test:
281       - rally_full
282       - rally_jobs
283       - vmtp
284       - shaker
285     jobs:
286       - 'functest-{repo}-{container}-{tag}-{test}-run'
287
288 - project:
289     name: 'functest-opnfv-functest-vnf'
290     <<: *functest-params
291     container: 'functest-vnf'
292     test:
293       - cloudify
294       - cloudify_ims
295       - heat_ims
296       - vyos_vrouter
297       - juju_epc
298     jobs:
299       - 'functest-{repo}-{container}-{tag}-{test}-run'
300
301 - project:
302     name: 'functest-opnfv-functest-features'
303     <<: *functest-params
304     container: 'functest-features'
305     test:
306       - doctor-notification
307       - functest-odl-sfc
308       - barometercollectd
309       - vgpu
310       - stor4nfv_os
311     jobs:
312       - 'functest-{repo}-{container}-{tag}-{test}-run'
313
314 - job-template:
315     name: 'functest-{tag}-daily'
316     project-type: multijob
317     triggers:
318       - timed: '@daily'
319     parameters:
320       - functest-slave:
321           slave: '{slave}'
322     properties:
323       - build-blocker:
324           use-build-blocker: true
325           blocking-level: 'NODE'
326           blocking-jobs:
327             - '^functest-{tag}-(daily|check|gate)$'
328     builders:
329       - multijob:
330           name: remove former images
331           projects:
332             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
333               <<: *functest-jobs
334             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
335               <<: *functest-jobs
336             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
337               <<: *functest-jobs
338             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
339               <<: *functest-jobs
340             - name: 'functest-opnfv-functest-features-{tag}-rmi'
341               <<: *functest-jobs
342       - multijob:
343           name: pull containers
344           projects:
345             - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
346               <<: *functest-jobs
347             - name: 'functest-opnfv-functest-smoke-{tag}-pull'
348               <<: *functest-jobs
349             - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
350               <<: *functest-jobs
351             - name: 'functest-opnfv-functest-vnf-{tag}-pull'
352               <<: *functest-jobs
353             - name: 'functest-opnfv-functest-features-{tag}-pull'
354               <<: *functest-jobs
355       - multijob:
356           name: opnfv/functest-healthcheck:{tag}
357           projects:
358             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
359               <<: *functest-jobs
360             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
361               <<: *functest-jobs
362             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
363               <<: *functest-jobs
364             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
365               <<: *functest-jobs
366             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
367               <<: *functest-jobs
368             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
369               <<: *functest-jobs
370             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
371               <<: *functest-jobs
372             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
373               <<: *functest-jobs
374             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
375               <<: *functest-jobs
376             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
377               <<: *functest-jobs
378             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
379               <<: *functest-jobs
380             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
381               <<: *functest-jobs
382       - multijob:
383           name: opnfv/functest-smoke:{tag}
384           projects:
385             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
386               <<: *functest-jobs
387             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
388               <<: *functest-jobs
389             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
390               <<: *functest-jobs
391             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
392               <<: *functest-jobs
393             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
394               <<: *functest-jobs
395             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
396               <<: *functest-jobs
397             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
398               <<: *functest-jobs
399             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
400               <<: *functest-jobs
401             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
402               <<: *functest-jobs
403             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
404               <<: *functest-jobs
405       - multijob:
406           name: opnfv/functest-benchmarking:{tag}
407           projects:
408             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
409               <<: *functest-jobs
410             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
411               <<: *functest-jobs
412             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
413               <<: *functest-jobs
414             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
415               <<: *functest-jobs
416       - multijob:
417           name: opnfv/functest-vnf:{tag}
418           execution-type: SEQUENTIALLY
419           projects:
420             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
421               <<: *functest-jobs
422             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
423               <<: *functest-jobs
424             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
425               <<: *functest-jobs
426             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
427               <<: *functest-jobs
428             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
429               <<: *functest-jobs
430       - multijob:
431           name: opnfv/functest-features:{tag}
432           projects:
433             - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
434               <<: *functest-jobs
435             - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
436               <<: *functest-jobs
437             - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
438               <<: *functest-jobs
439             - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
440               <<: *functest-jobs
441             - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
442               <<: *functest-jobs
443
444 - job-template:
445     name: 'functest-{repo}-{container}-{tag}-gate'
446     parameters:
447       - functest-slave:
448           slave: '{slave}'
449     scm:
450       - functest-scm:
451           ref: $GERRIT_REFSPEC
452     builders:
453       - functest-build-containers:
454           <<: *functest-build-containers
455           ref: $GERRIT_REFSPEC
456
457 - job-template:
458     name: 'functest-{repo}-{container}-{tag}-check'
459     parameters:
460       - functest-slave:
461           slave: '{slave}'
462       - functest-branch:
463           branch: '{branch}'
464     scm:
465       - functest-scm:
466           ref: $branch
467     builders:
468       - functest-build-containers:
469           <<: *functest-build-containers
470           ref: $branch
471
472 - project:
473     name: 'functest-_-alpine-3.9-rmi'
474     repo: _
475     port:
476     container: alpine
477     tag: 3.9
478     slave: master
479     jobs:
480       - 'functest-{repo}-{container}-{tag}-rmi'
481
482 - project:
483     name: 'functest-_-alpine-3.9-pull'
484     repo: _
485     port:
486     container: alpine
487     tag: 3.9
488     slave: master
489     jobs:
490       - 'functest-{repo}-{container}-{tag}-pull'
491
492 - project:
493     name: functest-opnfv-functest-core-{tag}-build
494     <<: *functest-params
495     container: functest-core
496     ref_arg: BRANCH
497     path: docker/core
498     jobs:
499       - 'functest-{repo}-{container}-{tag}-gate'
500       - 'functest-{repo}-{container}-{tag}-check'
501
502 - project:
503     name: functest-opnfv-functest-tempest-{tag}-build
504     <<: *functest-params
505     container: functest-tempest
506     ref_arg: BRANCH
507     path: docker/tempest
508     jobs:
509       - 'functest-{repo}-{container}-{tag}-gate'
510       - 'functest-{repo}-{container}-{tag}-check'
511
512 - project:
513     name: functest-opnfv-functest-healthcheck-{tag}-build
514     <<: *functest-params
515     container: functest-healthcheck
516     ref_arg: BRANCH
517     path: docker/healthcheck
518     jobs:
519       - 'functest-{repo}-{container}-{tag}-gate'
520       - 'functest-{repo}-{container}-{tag}-check'
521
522 - project:
523     name: functest-opnfv-functest-smoke-{tag}-build
524     <<: *functest-params
525     container: functest-smoke
526     ref_arg: BRANCH
527     path: docker/smoke
528     jobs:
529       - 'functest-{repo}-{container}-{tag}-gate'
530       - 'functest-{repo}-{container}-{tag}-check'
531
532 - project:
533     name: functest-opnfv-functest-benchmarking-{tag}-build
534     <<: *functest-params
535     container: functest-benchmarking
536     ref_arg: BRANCH
537     path: docker/benchmarking
538     jobs:
539       - 'functest-{repo}-{container}-{tag}-gate'
540       - 'functest-{repo}-{container}-{tag}-check'
541
542 - project:
543     name: functest-opnfv-functest-vnf-{tag}-build
544     <<: *functest-params
545     container: functest-vnf
546     ref_arg:
547     path: docker/vnf
548     jobs:
549       - 'functest-{repo}-{container}-{tag}-gate'
550       - 'functest-{repo}-{container}-{tag}-check'
551
552 - project:
553     name: functest-opnfv-functest-features-{tag}-build
554     <<: *functest-params
555     container: functest-features
556     ref_arg: BRANCH
557     path: docker/features
558     jobs:
559       - 'functest-{repo}-{container}-{tag}-gate'
560       - 'functest-{repo}-{container}-{tag}-check'
561
562 - job-template:
563     name: 'functest-{tag}-check'
564     project-type: multijob
565     parameters:
566       - functest-slave:
567           slave: '{slave}'
568       - functest-branch:
569           branch: '{branch}'
570     properties:
571       - build-blocker:
572           use-build-blocker: true
573           blocking-level: 'NODE'
574           blocking-jobs:
575             - '^functest-{tag}-(daily|check|gate)$'
576     builders:
577       - multijob:
578           name: remove former images
579           projects:
580             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
581               <<: *functest-jobs
582             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
583               <<: *functest-jobs
584             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
585               <<: *functest-jobs
586             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
587               <<: *functest-jobs
588             - name: 'functest-opnfv-functest-features-{tag}-rmi'
589               <<: *functest-jobs
590       - multijob:
591           name: remove dependencies
592           projects:
593             - name: 'functest-_-alpine-3.9-rmi'
594               <<: *functest-jobs
595       - multijob:
596           name: pull dependencies
597           projects:
598             - name: 'functest-_-alpine-3.9-pull'
599               <<: *functest-jobs
600       - multijob:
601           name: build opnfv/functest-core
602           projects:
603             - name: 'functest-opnfv-functest-core-{tag}-check'
604               <<: *functest-jobs
605       - multijob:
606           name: build opnfv/functest-tempest
607           projects:
608             - name: 'functest-opnfv-functest-tempest-{tag}-check'
609               <<: *functest-jobs
610       - multijob:
611           name: build containers
612           projects:
613             - name: 'functest-opnfv-functest-healthcheck-{tag}-check'
614               <<: *functest-jobs
615             - name: 'functest-opnfv-functest-smoke-{tag}-check'
616               <<: *functest-jobs
617             - name: 'functest-opnfv-functest-benchmarking-{tag}-check'
618               <<: *functest-jobs
619             - name: 'functest-opnfv-functest-vnf-{tag}-check'
620               <<: *functest-jobs
621             - name: 'functest-opnfv-functest-features-{tag}-check'
622               <<: *functest-jobs
623       - multijob:
624           name: opnfv/functest-healthcheck:{tag}
625           projects:
626             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
627               <<: *functest-jobs
628             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
629               <<: *functest-jobs
630             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
631               <<: *functest-jobs
632             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
633               <<: *functest-jobs
634             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
635               <<: *functest-jobs
636             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
637               <<: *functest-jobs
638             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
639               <<: *functest-jobs
640             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
641               <<: *functest-jobs
642             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
643               <<: *functest-jobs
644             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
645               <<: *functest-jobs
646             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
647               <<: *functest-jobs
648             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
649               <<: *functest-jobs
650       - multijob:
651           name: opnfv/functest-smoke:{tag}
652           projects:
653             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
654               <<: *functest-jobs
655             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
656               <<: *functest-jobs
657             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
658               <<: *functest-jobs
659             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
660               <<: *functest-jobs
661             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
662               <<: *functest-jobs
663             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
664               <<: *functest-jobs
665             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
666               <<: *functest-jobs
667             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
668               <<: *functest-jobs
669             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
670               <<: *functest-jobs
671             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
672               <<: *functest-jobs
673       - multijob:
674           name: opnfv/functest-benchmarking:{tag}
675           projects:
676             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
677               <<: *functest-jobs
678             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
679               <<: *functest-jobs
680             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
681               <<: *functest-jobs
682             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
683               <<: *functest-jobs
684       - multijob:
685           name: opnfv/functest-vnf:{tag}
686           execution-type: SEQUENTIALLY
687           projects:
688             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
689               <<: *functest-jobs
690             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
691               <<: *functest-jobs
692             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
693               <<: *functest-jobs
694             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
695               <<: *functest-jobs
696             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
697               <<: *functest-jobs
698       - multijob:
699           name: opnfv/functest-features:{tag}
700           projects:
701             - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
702               <<: *functest-jobs
703             - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
704               <<: *functest-jobs
705             - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
706               <<: *functest-jobs
707             - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
708               <<: *functest-jobs
709             - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
710               <<: *functest-jobs
711
712 - trigger:
713     name: functest-patchset-created
714     triggers:
715       - gerrit:
716           server-name: 'gerrit.opnfv.org'
717           trigger-on:
718             - patchset-created-event
719             - comment-added-contains-event:
720                 comment-contains-value: 'recheck'
721             - comment-added-contains-event:
722                 comment-contains-value: 'reverify'
723           projects:
724             - project-compare-type: 'ANT'
725               project-pattern: 'functest'
726               branches:
727                 - branch-compare-type: 'ANT'
728                   branch-pattern: '**/{branch}'
729           skip-vote:
730             successful: false
731             failed: false
732             unstable: false
733             notbuilt: false
734
735 - job-template:
736     name: 'functest-{tag}-gate'
737     project-type: multijob
738     triggers:
739       - functest-patchset-created:
740           branch: '{branch}'
741     parameters:
742       - functest-slave:
743           slave: '{slave}'
744     properties:
745       - build-blocker:
746           use-build-blocker: true
747           blocking-level: 'NODE'
748           blocking-jobs:
749             - '^functest-{tag}-(daily|check|gate)$'
750     builders:
751       - multijob:
752           name: remove former images
753           projects:
754             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
755               <<: *functest-jobs
756             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
757               <<: *functest-jobs
758             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
759               <<: *functest-jobs
760             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
761               <<: *functest-jobs
762             - name: 'functest-opnfv-functest-features-{tag}-rmi'
763               <<: *functest-jobs
764       - multijob:
765           name: remove dependencies
766           projects:
767             - name: 'functest-_-alpine-3.9-rmi'
768               <<: *functest-jobs
769       - multijob:
770           name: pull dependencies
771           projects:
772             - name: 'functest-_-alpine-3.9-pull'
773               <<: *functest-jobs
774       - multijob:
775           name: build opnfv/functest-core
776           projects:
777             - name: 'functest-opnfv-functest-core-{tag}-gate'
778               <<: *functest-jobs
779       - multijob:
780           name: build opnfv/functest-tempest
781           projects:
782             - name: 'functest-opnfv-functest-tempest-{tag}-gate'
783               <<: *functest-jobs
784       - multijob:
785           name: build containers
786           projects:
787             - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
788               <<: *functest-jobs
789             - name: 'functest-opnfv-functest-smoke-{tag}-gate'
790               <<: *functest-jobs
791             - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
792               <<: *functest-jobs
793             - name: 'functest-opnfv-functest-vnf-{tag}-gate'
794               <<: *functest-jobs
795             - name: 'functest-opnfv-functest-features-{tag}-gate'
796               <<: *functest-jobs
797       - multijob:
798           name: opnfv/functest-healthcheck:{tag}
799           projects:
800             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
801               <<: *functest-jobs
802             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
803               <<: *functest-jobs
804             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
805               <<: *functest-jobs
806             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
807               <<: *functest-jobs
808             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
809               <<: *functest-jobs
810             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
811               <<: *functest-jobs
812             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
813               <<: *functest-jobs
814             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
815               <<: *functest-jobs
816             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
817               <<: *functest-jobs
818             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
819               <<: *functest-jobs
820             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
821               <<: *functest-jobs
822             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
823               <<: *functest-jobs
824       - multijob:
825           name: opnfv/functest-smoke:{tag}
826           projects:
827             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
828               <<: *functest-jobs
829             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
830               <<: *functest-jobs
831             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
832               <<: *functest-jobs
833             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
834               <<: *functest-jobs
835             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
836               <<: *functest-jobs
837             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
838               <<: *functest-jobs
839             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
840               <<: *functest-jobs
841             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
842               <<: *functest-jobs
843             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
844               <<: *functest-jobs
845             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
846               <<: *functest-jobs
847       - multijob:
848           name: opnfv/functest-benchmarking:{tag}
849           projects:
850             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
851               <<: *functest-jobs
852             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
853               <<: *functest-jobs
854             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
855               <<: *functest-jobs
856             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
857               <<: *functest-jobs
858       - multijob:
859           name: opnfv/functest-vnf:{tag}
860           execution-type: SEQUENTIALLY
861           projects:
862             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
863               <<: *functest-jobs
864             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
865               <<: *functest-jobs
866             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
867               <<: *functest-jobs
868             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
869               <<: *functest-jobs
870             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
871               <<: *functest-jobs
872       - multijob:
873           name: opnfv/functest-features:{tag}
874           projects:
875             - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
876               <<: *functest-jobs
877             - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
878               <<: *functest-jobs
879             - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
880               <<: *functest-jobs
881             - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
882               <<: *functest-jobs
883             - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
884               <<: *functest-jobs
885
886 - project:
887     name: 'functest'
888     <<: *functest-params
889     jobs:
890       - 'functest-{tag}-daily'
891       - 'functest-{tag}-check'
892       - 'functest-{tag}-gate'
893
894 - view:
895     name: functest
896     view-type: list
897     columns:
898       - status
899       - weather
900       - job
901       - last-success
902       - last-failure
903       - last-duration
904     regex: ^functest-[a-z]+-(daily|check|gate)$