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