Merge "Add a job to run new proposed_tests on Apex"
[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       - tempest_smoke
245     jobs:
246       - 'functest-{repo}-{container}-{tag}-{test}-run'
247
248 - project:
249     name: 'functest-opnfv-functest-smoke'
250     <<: *functest-params
251     container: 'functest-smoke'
252     test:
253       - neutron-tempest-plugin-api
254       - rally_sanity
255       - refstack_defcore
256       - tempest_full
257       - tempest_scenario
258       - patrole
259       - neutron_trunk
260       - networking-bgpvpn
261       - networking-sfc
262       - barbican
263     jobs:
264       - 'functest-{repo}-{container}-{tag}-{test}-run'
265
266 - project:
267     name: 'functest-opnfv-functest-benchmarking'
268     <<: *functest-params
269     container: 'functest-benchmarking'
270     test:
271       - rally_full
272       - rally_jobs
273       - vmtp
274       - shaker
275     jobs:
276       - 'functest-{repo}-{container}-{tag}-{test}-run'
277
278 - project:
279     name: 'functest-opnfv-functest-vnf'
280     <<: *functest-params
281     container: 'functest-vnf'
282     test:
283       - cloudify
284       - cloudify_ims
285       - heat_ims
286       - vyos_vrouter
287       - juju_epc
288     jobs:
289       - 'functest-{repo}-{container}-{tag}-{test}-run'
290
291 - project:
292     name: 'functest-opnfv-functest-features'
293     <<: *functest-params
294     container: 'functest-features'
295     test:
296       - doctor-notification
297       - functest-odl-sfc
298       - barometercollectd
299       - vgpu
300       - stor4nfv_os
301     jobs:
302       - 'functest-{repo}-{container}-{tag}-{test}-run'
303
304 - job-template:
305     name: 'functest-{tag}-daily'
306     project-type: multijob
307     triggers:
308       - timed: '@daily'
309     parameters:
310       - functest-slave
311     properties:
312       - build-blocker:
313           use-build-blocker: true
314           blocking-level: 'NODE'
315           blocking-jobs:
316             - '^(functest|functest-kubernetes)-[a-z]+-(daily|check|gate)$'
317     builders:
318       - multijob:
319           name: remove former images
320           projects:
321             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
322               <<: *functest-jobs
323             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
324               <<: *functest-jobs
325             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
326               <<: *functest-jobs
327             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
328               <<: *functest-jobs
329             - name: 'functest-opnfv-functest-features-{tag}-rmi'
330               <<: *functest-jobs
331       - multijob:
332           name: pull containers
333           projects:
334             - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
335               <<: *functest-jobs
336             - name: 'functest-opnfv-functest-smoke-{tag}-pull'
337               <<: *functest-jobs
338             - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
339               <<: *functest-jobs
340             - name: 'functest-opnfv-functest-vnf-{tag}-pull'
341               <<: *functest-jobs
342             - name: 'functest-opnfv-functest-features-{tag}-pull'
343               <<: *functest-jobs
344       - multijob:
345           name: opnfv/functest-healthcheck:{tag}
346           projects:
347             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
348               <<: *functest-jobs
349             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
350               <<: *functest-jobs
351             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
352               <<: *functest-jobs
353             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
354               <<: *functest-jobs
355             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
356               <<: *functest-jobs
357             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
358               <<: *functest-jobs
359             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
360               <<: *functest-jobs
361             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
362               <<: *functest-jobs
363             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
364               <<: *functest-jobs
365             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
366               <<: *functest-jobs
367             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
368               <<: *functest-jobs
369             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
370               <<: *functest-jobs
371       - multijob:
372           name: opnfv/functest-smoke:{tag}
373           projects:
374             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
375               <<: *functest-jobs
376             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
377               <<: *functest-jobs
378             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
379               <<: *functest-jobs
380             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
381               <<: *functest-jobs
382             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
383               <<: *functest-jobs
384             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
385               <<: *functest-jobs
386             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
387               <<: *functest-jobs
388             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
389               <<: *functest-jobs
390             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
391               <<: *functest-jobs
392             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
393               <<: *functest-jobs
394       - multijob:
395           name: opnfv/functest-benchmarking:{tag}
396           projects:
397             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
398               <<: *functest-jobs
399             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
400               <<: *functest-jobs
401             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
402               <<: *functest-jobs
403             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
404               <<: *functest-jobs
405       - multijob:
406           name: opnfv/functest-vnf:{tag}
407           execution-type: SEQUENTIALLY
408           projects:
409             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
410               <<: *functest-jobs
411             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
412               <<: *functest-jobs
413             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
414               <<: *functest-jobs
415             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
416               <<: *functest-jobs
417             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
418               <<: *functest-jobs
419       - multijob:
420           name: opnfv/functest-features:{tag}
421           projects:
422             - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
423               <<: *functest-jobs
424             - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
425               <<: *functest-jobs
426             - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
427               <<: *functest-jobs
428             - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
429               <<: *functest-jobs
430             - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
431               <<: *functest-jobs
432
433 - job-template:
434     name: 'functest-{repo}-{container}-{tag}-gate'
435     parameters:
436       - functest-slave
437     scm:
438       - functest-scm:
439           ref: $GERRIT_REFSPEC
440     builders:
441       - functest-build-containers:
442           <<: *functest-build-containers
443           ref: $GERRIT_REFSPEC
444
445 - job-template:
446     name: 'functest-{repo}-{container}-{tag}-check'
447     parameters:
448       - functest-slave
449       - functest-branch:
450           branch: '{branch}'
451     scm:
452       - functest-scm:
453           ref: $branch
454     builders:
455       - functest-build-containers:
456           <<: *functest-build-containers
457           ref: $branch
458
459 - project:
460     name: 'functest-_-alpine-3.9-rmi'
461     repo: _
462     port:
463     container: alpine
464     tag: 3.9
465     jobs:
466       - 'functest-{repo}-{container}-{tag}-rmi'
467
468 - project:
469     name: 'functest-_-alpine-3.9-pull'
470     repo: _
471     port:
472     container: alpine
473     tag: 3.9
474     jobs:
475       - 'functest-{repo}-{container}-{tag}-pull'
476
477 - project:
478     name: functest-opnfv-functest-core-{tag}-build
479     <<: *functest-params
480     container: functest-core
481     ref_arg: BRANCH
482     path: docker/core
483     jobs:
484       - 'functest-{repo}-{container}-{tag}-gate'
485       - 'functest-{repo}-{container}-{tag}-check'
486
487 - project:
488     name: functest-opnfv-functest-tempest-{tag}-build
489     <<: *functest-params
490     container: functest-tempest
491     ref_arg: BRANCH
492     path: docker/tempest
493     jobs:
494       - 'functest-{repo}-{container}-{tag}-gate'
495       - 'functest-{repo}-{container}-{tag}-check'
496
497 - project:
498     name: functest-opnfv-functest-healthcheck-{tag}-build
499     <<: *functest-params
500     container: functest-healthcheck
501     ref_arg: BRANCH
502     path: docker/healthcheck
503     jobs:
504       - 'functest-{repo}-{container}-{tag}-gate'
505       - 'functest-{repo}-{container}-{tag}-check'
506
507 - project:
508     name: functest-opnfv-functest-smoke-{tag}-build
509     <<: *functest-params
510     container: functest-smoke
511     ref_arg: BRANCH
512     path: docker/smoke
513     jobs:
514       - 'functest-{repo}-{container}-{tag}-gate'
515       - 'functest-{repo}-{container}-{tag}-check'
516
517 - project:
518     name: functest-opnfv-functest-benchmarking-{tag}-build
519     <<: *functest-params
520     container: functest-benchmarking
521     ref_arg: BRANCH
522     path: docker/benchmarking
523     jobs:
524       - 'functest-{repo}-{container}-{tag}-gate'
525       - 'functest-{repo}-{container}-{tag}-check'
526
527 - project:
528     name: functest-opnfv-functest-vnf-{tag}-build
529     <<: *functest-params
530     container: functest-vnf
531     ref_arg:
532     path: docker/vnf
533     jobs:
534       - 'functest-{repo}-{container}-{tag}-gate'
535       - 'functest-{repo}-{container}-{tag}-check'
536
537 - project:
538     name: functest-opnfv-functest-features-{tag}-build
539     <<: *functest-params
540     container: functest-features
541     ref_arg: BRANCH
542     path: docker/features
543     jobs:
544       - 'functest-{repo}-{container}-{tag}-gate'
545       - 'functest-{repo}-{container}-{tag}-check'
546
547 - job-template:
548     name: 'functest-{tag}-check'
549     project-type: multijob
550     parameters:
551       - functest-slave
552       - functest-branch:
553           branch: '{branch}'
554     properties:
555       - build-blocker:
556           use-build-blocker: true
557           blocking-level: 'NODE'
558           blocking-jobs:
559             - '^(functest|functest-kubernetes)-[a-z]+-(daily|check|gate)$'
560     builders:
561       - multijob:
562           name: remove former images
563           projects:
564             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
565               <<: *functest-jobs
566             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
567               <<: *functest-jobs
568             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
569               <<: *functest-jobs
570             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
571               <<: *functest-jobs
572             - name: 'functest-opnfv-functest-features-{tag}-rmi'
573               <<: *functest-jobs
574       - multijob:
575           name: remove dependencies
576           projects:
577             - name: 'functest-_-alpine-3.9-rmi'
578               <<: *functest-jobs
579       - multijob:
580           name: pull dependencies
581           projects:
582             - name: 'functest-_-alpine-3.9-pull'
583               <<: *functest-jobs
584       - multijob:
585           name: build opnfv/functest-core
586           projects:
587             - name: 'functest-opnfv-functest-core-{tag}-check'
588               <<: *functest-jobs
589       - multijob:
590           name: build opnfv/functest-tempest
591           projects:
592             - name: 'functest-opnfv-functest-tempest-{tag}-check'
593               <<: *functest-jobs
594       - multijob:
595           name: build containers
596           projects:
597             - name: 'functest-opnfv-functest-healthcheck-{tag}-check'
598               <<: *functest-jobs
599             - name: 'functest-opnfv-functest-smoke-{tag}-check'
600               <<: *functest-jobs
601             - name: 'functest-opnfv-functest-benchmarking-{tag}-check'
602               <<: *functest-jobs
603             - name: 'functest-opnfv-functest-vnf-{tag}-check'
604               <<: *functest-jobs
605             - name: 'functest-opnfv-functest-features-{tag}-check'
606               <<: *functest-jobs
607       - multijob:
608           name: opnfv/functest-healthcheck:{tag}
609           projects:
610             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
611               <<: *functest-jobs
612             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
613               <<: *functest-jobs
614             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
615               <<: *functest-jobs
616             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
617               <<: *functest-jobs
618             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
619               <<: *functest-jobs
620             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
621               <<: *functest-jobs
622             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
623               <<: *functest-jobs
624             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
625               <<: *functest-jobs
626             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
627               <<: *functest-jobs
628             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
629               <<: *functest-jobs
630             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
631               <<: *functest-jobs
632             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
633               <<: *functest-jobs
634       - multijob:
635           name: opnfv/functest-smoke:{tag}
636           projects:
637             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
638               <<: *functest-jobs
639             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
640               <<: *functest-jobs
641             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
642               <<: *functest-jobs
643             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
644               <<: *functest-jobs
645             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
646               <<: *functest-jobs
647             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
648               <<: *functest-jobs
649             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
650               <<: *functest-jobs
651             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
652               <<: *functest-jobs
653             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
654               <<: *functest-jobs
655             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
656               <<: *functest-jobs
657       - multijob:
658           name: opnfv/functest-benchmarking:{tag}
659           projects:
660             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
661               <<: *functest-jobs
662             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
663               <<: *functest-jobs
664             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
665               <<: *functest-jobs
666             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
667               <<: *functest-jobs
668       - multijob:
669           name: opnfv/functest-vnf:{tag}
670           execution-type: SEQUENTIALLY
671           projects:
672             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
673               <<: *functest-jobs
674             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
675               <<: *functest-jobs
676             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
677               <<: *functest-jobs
678             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
679               <<: *functest-jobs
680             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
681               <<: *functest-jobs
682       - multijob:
683           name: opnfv/functest-features:{tag}
684           projects:
685             - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
686               <<: *functest-jobs
687             - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
688               <<: *functest-jobs
689             - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
690               <<: *functest-jobs
691             - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
692               <<: *functest-jobs
693             - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
694               <<: *functest-jobs
695
696 - trigger:
697     name: functest-patchset-created
698     triggers:
699       - gerrit:
700           server-name: 'gerrit.opnfv.org'
701           trigger-on:
702             - patchset-created-event
703             - comment-added-contains-event:
704                 comment-contains-value: 'recheck'
705             - comment-added-contains-event:
706                 comment-contains-value: 'reverify'
707           projects:
708             - project-compare-type: 'ANT'
709               project-pattern: 'functest'
710               branches:
711                 - branch-compare-type: 'ANT'
712                   branch-pattern: '**/{branch}'
713           skip-vote:
714             successful: false
715             failed: false
716             unstable: false
717             notbuilt: false
718
719 - job-template:
720     name: 'functest-{tag}-gate'
721     project-type: multijob
722     triggers:
723       - functest-patchset-created:
724           branch: '{branch}'
725     parameters:
726       - functest-slave
727     properties:
728       - build-blocker:
729           use-build-blocker: true
730           blocking-level: 'NODE'
731           blocking-jobs:
732             - '^(functest|functest-kubernetes)-[a-z]+-(daily|check|gate)$'
733     builders:
734       - multijob:
735           name: remove former images
736           projects:
737             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
738               <<: *functest-jobs
739             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
740               <<: *functest-jobs
741             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
742               <<: *functest-jobs
743             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
744               <<: *functest-jobs
745             - name: 'functest-opnfv-functest-features-{tag}-rmi'
746               <<: *functest-jobs
747       - multijob:
748           name: remove dependencies
749           projects:
750             - name: 'functest-_-alpine-3.9-rmi'
751               <<: *functest-jobs
752       - multijob:
753           name: pull dependencies
754           projects:
755             - name: 'functest-_-alpine-3.9-pull'
756               <<: *functest-jobs
757       - multijob:
758           name: build opnfv/functest-core
759           projects:
760             - name: 'functest-opnfv-functest-core-{tag}-gate'
761               <<: *functest-jobs
762       - multijob:
763           name: build opnfv/functest-tempest
764           projects:
765             - name: 'functest-opnfv-functest-tempest-{tag}-gate'
766               <<: *functest-jobs
767       - multijob:
768           name: build containers
769           projects:
770             - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
771               <<: *functest-jobs
772             - name: 'functest-opnfv-functest-smoke-{tag}-gate'
773               <<: *functest-jobs
774             - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
775               <<: *functest-jobs
776             - name: 'functest-opnfv-functest-vnf-{tag}-gate'
777               <<: *functest-jobs
778             - name: 'functest-opnfv-functest-features-{tag}-gate'
779               <<: *functest-jobs
780       - multijob:
781           name: opnfv/functest-healthcheck:{tag}
782           projects:
783             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
784               <<: *functest-jobs
785             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
786               <<: *functest-jobs
787             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
788               <<: *functest-jobs
789             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
790               <<: *functest-jobs
791             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
792               <<: *functest-jobs
793             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
794               <<: *functest-jobs
795             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
796               <<: *functest-jobs
797             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
798               <<: *functest-jobs
799             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
800               <<: *functest-jobs
801             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
802               <<: *functest-jobs
803             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
804               <<: *functest-jobs
805             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
806               <<: *functest-jobs
807       - multijob:
808           name: opnfv/functest-smoke:{tag}
809           projects:
810             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
811               <<: *functest-jobs
812             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
813               <<: *functest-jobs
814             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
815               <<: *functest-jobs
816             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
817               <<: *functest-jobs
818             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
819               <<: *functest-jobs
820             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
821               <<: *functest-jobs
822             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
823               <<: *functest-jobs
824             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
825               <<: *functest-jobs
826             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
827               <<: *functest-jobs
828             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
829               <<: *functest-jobs
830       - multijob:
831           name: opnfv/functest-benchmarking:{tag}
832           projects:
833             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
834               <<: *functest-jobs
835             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
836               <<: *functest-jobs
837             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
838               <<: *functest-jobs
839             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
840               <<: *functest-jobs
841       - multijob:
842           name: opnfv/functest-vnf:{tag}
843           execution-type: SEQUENTIALLY
844           projects:
845             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
846               <<: *functest-jobs
847             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
848               <<: *functest-jobs
849             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
850               <<: *functest-jobs
851             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
852               <<: *functest-jobs
853             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
854               <<: *functest-jobs
855       - multijob:
856           name: opnfv/functest-features:{tag}
857           projects:
858             - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
859               <<: *functest-jobs
860             - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
861               <<: *functest-jobs
862             - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
863               <<: *functest-jobs
864             - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
865               <<: *functest-jobs
866             - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
867               <<: *functest-jobs
868
869 - project:
870     name: 'functest'
871     <<: *functest-params
872     jobs:
873       - 'functest-{tag}-daily'
874       - 'functest-{tag}-check'
875       - 'functest-{tag}-gate'
876
877 - view:
878     name: functest
879     view-type: list
880     columns:
881       - status
882       - weather
883       - job
884       - last-success
885       - last-failure
886       - last-duration
887     regex: ^functest-[a-z]+-(daily|check|gate)$