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