Run smoke in parallel back
[releng.git] / jjb / functest / functest.yaml
1 ---
2 - functest-jobs: &functest-jobs
3     name: 'functest-jobs'
4     current-parameters: true
5
6 - functest-params: &functest-params
7     name: 'functest-params'
8     repo: 'opnfv'
9     port:
10     tag:
11       - latest:
12           branch: master
13           slave: lf-virtual9
14           dashboard_url: http://172.30.13.94
15       - jerma:
16           branch: stable/jerma
17           slave: lf-pod4
18           dashboard_url: http://172.30.12.83
19       - iruya:
20           branch: stable/iruya
21           slave: lf-virtual4
22           dashboard_url: http://172.30.13.89
23       - hunter:
24           branch: stable/hunter
25           slave: lf-virtual6
26           dashboard_url: http://172.30.13.91
27
28 - parameter:
29     name: functest-slave
30     parameters:
31       - label:
32           name: slave
33           default: '{slave}'
34
35 - parameter:
36     name: functest-build_tag
37     parameters:
38       - random-string:
39           name: build_tag
40
41 - parameter:
42     name: functest-branch
43     parameters:
44       - string:
45           name: branch
46           default: '{branch}'
47
48 - parameter:
49     name: functest-DEBUG
50     parameters:
51       - string:
52           name: DEBUG
53           default: 'true'
54
55 - parameter:
56     name: functest-EXTERNAL_NETWORK
57     parameters:
58       - string:
59           name: EXTERNAL_NETWORK
60           default: public
61
62 - functest-containers: &functest-containers
63     name: 'functest-containers'
64     repo: '{repo}'
65     port: '{port}'
66     container: '{container}'
67     tag: '{tag}'
68
69 - functest-run-containers: &functest-run-containers
70     name: 'functest-run-containers'
71     <<: *functest-containers
72     test: '{test}'
73     dashboard_url: '{dashboard_url}'
74
75 - functest-build-containers: &functest-build-containers
76     name: 'functest-build-containers'
77     <<: *functest-containers
78     ref_arg: '{ref_arg}'
79     path: '{path}'
80
81 - builder:
82     name: functest-pull-containers
83     builders:
84       - shell: |
85           set +x
86           if [ "{repo}" = "_" ]; then
87             image={container}:{tag}
88           elif [ "{port}" = "None" ]; then
89             image={repo}/{container}:{tag}
90           else
91             image={repo}:{port}/{container}:{tag}
92           fi
93           sudo docker pull $image
94
95 - builder:
96     name: functest-build-containers
97     builders:
98       - shell: |
99           set +x
100           if [ "{repo}" = "_" ]; then
101             image={container}:{tag}
102           elif [ "{port}" = "None" ]; then
103             image={repo}/{container}:{tag}
104           else
105             image={repo}:{port}/{container}:{tag}
106           fi
107           if [ "{ref_arg}" = "None" ]; then
108             build_arg=""
109           else
110             build_arg="--build-arg {ref_arg}={ref}"
111           fi
112           cd {path}
113           sudo docker build $build_arg \
114             --pull=false --no-cache --force-rm=true \
115             -t $image .
116
117 - builder:
118     name: functest-run-containers
119     builders:
120       - shell: |
121           set +x
122           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
123           if [ "{repo}" = "_" ]; then
124             image={container}:{tag}
125           elif [ "{port}" = "None" ]; then
126             image={repo}/{container}:{tag}
127           else
128             image={repo}:{port}/{container}:{tag}
129           fi
130           if [ "{tag}" = "latest" ]; then
131             py=3.7
132           elif [ "{tag}" = "jerma" ]; then
133             py=3.7
134           elif [ "{tag}" = "iruya" ]; then
135             py=3.6
136           else
137             py=2.7
138           fi
139           sudo docker run --rm \
140             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
141             -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
142             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
143             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
144             -e NODE_NAME=$slave \
145             -e BUILD_TAG=$BUILD_TAG \
146             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
147             -e DEBUG=$DEBUG \
148             -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \
149             -e DASHBOARD_URL={dashboard_url} \
150             -e VOLUME_DEVICE_NAME=sdb \
151             -e IMAGE_PROPERTIES=hw_scsi_model:virtio-scsi,hw_disk_bus:scsi \
152             -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \
153             -v /home/opnfv/functest/images:/home/opnfv/functest/images \
154             -v /home/opnfv/functest/tempest_blacklist.yaml:/usr/lib/python$py/\
155           site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/\
156           blacklist.yaml \
157             -v /home/opnfv/functest/.boto:/root/.boto \
158             $image run_tests -t {test} -r -p
159
160 - builder:
161     name: functest-remove-images
162     builders:
163       - shell: |
164           set +x
165           if [ "{repo}" = "_" ]; then
166             image={container}:{tag}
167           elif [ "{port}" = "None" ]; then
168             image={repo}/{container}:{tag}
169           else
170             image={repo}:{port}/{container}:{tag}
171           fi
172           sudo docker rmi $image || true
173
174 - scm:
175     name: functest-scm
176     scm:
177       - git:
178           url: https://gerrit.opnfv.org/gerrit/functest
179           refspec: '+refs/changes/*:refs/changes/*'
180           branches:
181             - '{ref}'
182
183 - job-template:
184     name: 'functest-{repo}-{container}-{tag}-pull'
185     parameters:
186       - functest-slave:
187           slave: '{slave}'
188     builders:
189       - functest-pull-containers:
190           <<: *functest-containers
191
192 - project:
193     name: 'functest-opnfv-functest-healthcheck-pull'
194     <<: *functest-params
195     container: 'functest-healthcheck'
196     jobs:
197       - 'functest-{repo}-{container}-{tag}-pull'
198
199 - project:
200     name: 'functest-opnfv-functest-smoke-pull'
201     <<: *functest-params
202     container: 'functest-smoke'
203     jobs:
204       - 'functest-{repo}-{container}-{tag}-pull'
205
206 - project:
207     name: 'functest-opnfv-functest-smoke-cntt-pull'
208     <<: *functest-params
209     container: 'functest-smoke-cntt'
210     jobs:
211       - 'functest-{repo}-{container}-{tag}-pull'
212
213 - project:
214     name: 'functest-opnfv-functest-benchmarking-pull'
215     <<: *functest-params
216     container: 'functest-benchmarking'
217     jobs:
218       - 'functest-{repo}-{container}-{tag}-pull'
219
220 - project:
221     name: 'functest-opnfv-functest-benchmarking-cntt-pull'
222     <<: *functest-params
223     container: 'functest-benchmarking-cntt'
224     jobs:
225       - 'functest-{repo}-{container}-{tag}-pull'
226
227 - project:
228     name: 'functest-opnfv-functest-vnf-pull'
229     <<: *functest-params
230     container: 'functest-vnf'
231     jobs:
232       - 'functest-{repo}-{container}-{tag}-pull'
233
234 - job-template:
235     name: 'functest-{repo}-{container}-{tag}-rmi'
236     parameters:
237       - functest-slave:
238           slave: '{slave}'
239     builders:
240       - functest-remove-images:
241           <<: *functest-containers
242
243 - project:
244     name: 'functest-opnfv-functest-healthcheck-rmi'
245     <<: *functest-params
246     container: 'functest-healthcheck'
247     jobs:
248       - 'functest-{repo}-{container}-{tag}-rmi'
249
250 - project:
251     name: 'functest-opnfv-functest-smoke-rmi'
252     <<: *functest-params
253     container: 'functest-smoke'
254     jobs:
255       - 'functest-{repo}-{container}-{tag}-rmi'
256
257 - project:
258     name: 'functest-opnfv-functest-smoke-cntt-rmi'
259     <<: *functest-params
260     container: 'functest-smoke-cntt'
261     jobs:
262       - 'functest-{repo}-{container}-{tag}-rmi'
263
264 - project:
265     name: 'functest-opnfv-functest-benchmarking-rmi'
266     <<: *functest-params
267     container: 'functest-benchmarking'
268     jobs:
269       - 'functest-{repo}-{container}-{tag}-rmi'
270
271 - project:
272     name: 'functest-opnfv-functest-benchmarking-cntt-rmi'
273     <<: *functest-params
274     container: 'functest-benchmarking-cntt'
275     jobs:
276       - 'functest-{repo}-{container}-{tag}-rmi'
277
278 - project:
279     name: 'functest-opnfv-functest-vnf-rmi'
280     <<: *functest-params
281     container: 'functest-vnf'
282     jobs:
283       - 'functest-{repo}-{container}-{tag}-rmi'
284
285 - job-template:
286     name: 'functest-{repo}-{container}-{tag}-{test}-run'
287     parameters:
288       - functest-slave:
289           slave: '{slave}'
290       - functest-build_tag:
291           build_tag: ''
292       - functest-DEBUG:
293           DEBUG: 'true'
294       - functest-EXTERNAL_NETWORK:
295           EXTERNAL_NETWORK: public
296     builders:
297       - functest-run-containers:
298           <<: *functest-run-containers
299
300 - project:
301     name: 'functest-opnfv-functest-healthcheck'
302     <<: *functest-params
303     container: 'functest-healthcheck'
304     test:
305       - connection_check
306       - tenantnetwork1
307       - tenantnetwork2
308       - vmready1
309       - vmready2
310       - singlevm1
311       - singlevm2
312       - vping_ssh
313       - vping_userdata
314       - cinder_test
315       - odl
316       - tempest_smoke
317       - tempest_horizon
318     exclude:
319       - tag: hunter
320         test: tempest_horizon
321     jobs:
322       - 'functest-{repo}-{container}-{tag}-{test}-run'
323
324 - project:
325     name: 'functest-opnfv-functest-smoke'
326     <<: *functest-params
327     container: 'functest-smoke'
328     test:
329       - neutron-tempest-plugin-api
330       - tempest_cinder
331       - tempest_keystone
332       - tempest_heat
333       - rally_sanity
334       - refstack_defcore
335       - refstack_compute
336       - refstack_object
337       - refstack_platform
338       - tempest_full
339       - tempest_scenario
340       - tempest_slow
341       - patrole
342       - neutron_trunk
343       - networking-bgpvpn
344       - networking-sfc
345       - barbican
346       - octavia
347     exclude:
348       - tag: jerma
349         test: tempest_heat
350       - tag: iruya
351         test: tempest_heat
352       - tag: hunter
353         test: tempest_heat
354       - tag: latest
355         test: refstack_defcore
356       - tag: jerma
357         test: refstack_defcore
358       - tag: iruya
359         test: refstack_defcore
360       - tag: iruya
361         test: octavia
362       - tag: hunter
363         test: refstack_compute
364       - tag: hunter
365         test: refstack_object
366       - tag: hunter
367         test: refstack_platform
368       - tag: hunter
369         test: octavia
370     jobs:
371       - 'functest-{repo}-{container}-{tag}-{test}-run'
372
373 - project:
374     name: 'functest-opnfv-functest-smoke-cntt'
375     <<: *functest-params
376     container: 'functest-smoke-cntt'
377     test:
378       - neutron-tempest-plugin-api-cntt
379       - tempest_cinder_cntt
380       - tempest_keystone_cntt
381       - rally_sanity_cntt
382       - tempest_full_cntt
383       - tempest_scenario_cntt
384       - tempest_slow_cntt
385     jobs:
386       - 'functest-{repo}-{container}-{tag}-{test}-run'
387
388 - project:
389     name: 'functest-opnfv-functest-benchmarking'
390     <<: *functest-params
391     container: 'functest-benchmarking'
392     test:
393       - rally_full
394       - rally_jobs
395       - vmtp
396       - shaker
397     jobs:
398       - 'functest-{repo}-{container}-{tag}-{test}-run'
399
400 - project:
401     name: 'functest-opnfv-functest-benchmarking-cntt'
402     <<: *functest-params
403     container: 'functest-benchmarking-cntt'
404     test:
405       - rally_full_cntt
406       - rally_jobs_cntt
407     jobs:
408       - 'functest-{repo}-{container}-{tag}-{test}-run'
409
410 - project:
411     name: 'functest-opnfv-functest-vnf'
412     <<: *functest-params
413     container: 'functest-vnf'
414     test:
415       - cloudify
416       - cloudify_ims
417       - heat_ims
418       - vyos_vrouter
419       - juju_epc
420     jobs:
421       - 'functest-{repo}-{container}-{tag}-{test}-run'
422
423 - builder:
424     name: functest-zip
425     builders:
426       - shell: |
427           set +x
428           [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true
429           if [ "{repo}" = "_" ]; then
430             image={container}:{tag}
431           elif [ "{port}" = "None" ]; then
432             image={repo}/{container}:{tag}
433           else
434             image={repo}:{port}/{container}:{tag}
435           fi
436           sudo docker run --rm \
437             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
438             -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
439             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
440             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
441             -e BUILD_TAG=$BUILD_TAG \
442             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
443             -v /home/opnfv/functest/.boto:/root/.boto \
444             $image zip_campaign
445
446 - job-template:
447     name: 'functest-{tag}-zip'
448     parameters:
449       - functest-build_tag:
450           build_tag: ''
451     builders:
452       - functest-zip:
453           <<: *functest-containers
454
455 - project:
456     name: 'functest-{tag}-zip'
457     <<: *functest-params
458     container: 'functest-healthcheck'
459     jobs:
460       - 'functest-{tag}-zip'
461
462 - job-template:
463     name: 'functest-{tag}-daily'
464     project-type: multijob
465     triggers:
466       - timed: '@daily'
467     parameters:
468       - functest-slave:
469           slave: '{slave}'
470       - functest-build_tag:
471           build_tag: ''
472       - functest-DEBUG:
473           DEBUG: 'true'
474       - functest-EXTERNAL_NETWORK:
475           EXTERNAL_NETWORK: public
476     properties:
477       - build-blocker:
478           use-build-blocker: true
479           blocking-level: 'NODE'
480           blocking-jobs:
481             - '^functest-{tag}-(daily|check|gate)$'
482     builders:
483       - multijob:
484           name: remove former images
485           projects:
486             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
487               <<: *functest-jobs
488             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
489               <<: *functest-jobs
490             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
491               <<: *functest-jobs
492             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
493               <<: *functest-jobs
494             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
495               <<: *functest-jobs
496             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
497               <<: *functest-jobs
498       - multijob:
499           name: pull containers
500           projects:
501             - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
502               <<: *functest-jobs
503             - name: 'functest-opnfv-functest-smoke-{tag}-pull'
504               <<: *functest-jobs
505             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
506               <<: *functest-jobs
507             - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
508               <<: *functest-jobs
509             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
510               <<: *functest-jobs
511             - name: 'functest-opnfv-functest-vnf-{tag}-pull'
512               <<: *functest-jobs
513       - multijob:
514           name: opnfv/functest-healthcheck:{tag}
515           projects:
516             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
517               <<: *functest-jobs
518             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
519               <<: *functest-jobs
520             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
521               <<: *functest-jobs
522             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
523               <<: *functest-jobs
524             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
525               <<: *functest-jobs
526             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
527               <<: *functest-jobs
528             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
529               <<: *functest-jobs
530             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
531               <<: *functest-jobs
532             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
533               <<: *functest-jobs
534             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
535               <<: *functest-jobs
536             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
537               <<: *functest-jobs
538             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
539               <<: *functest-jobs
540             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
541               <<: *functest-jobs
542       - multijob:
543           name: opnfv/functest-smoke:{tag}
544           projects:
545             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
546               <<: *functest-jobs
547             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
548               <<: *functest-jobs
549             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
550               <<: *functest-jobs
551             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
552               <<: *functest-jobs
553             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
554               <<: *functest-jobs
555             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
556               <<: *functest-jobs
557             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
558               <<: *functest-jobs
559             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
560               <<: *functest-jobs
561             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
562               <<: *functest-jobs
563             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
564               <<: *functest-jobs
565             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
566               <<: *functest-jobs
567             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
568               <<: *functest-jobs
569             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
570               <<: *functest-jobs
571             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
572               <<: *functest-jobs
573             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
574               <<: *functest-jobs
575             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
576               <<: *functest-jobs
577             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
578               <<: *functest-jobs
579             - name: 'functest-opnfv-functest-smoke-{tag}-octavia-run'
580               <<: *functest-jobs
581       - multijob:
582           name: opnfv/functest-smoke-cntt:{tag}
583           projects:
584             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-neutron-tempest-plugin-api-cntt-run'
585               <<: *functest-jobs
586             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
587               <<: *functest-jobs
588             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
589               <<: *functest-jobs
590             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
591               <<: *functest-jobs
592             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
593               <<: *functest-jobs
594             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
595               <<: *functest-jobs
596             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
597               <<: *functest-jobs
598       - multijob:
599           name: opnfv/functest-benchmarking:{tag}
600           projects:
601             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
602               <<: *functest-jobs
603             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
604               <<: *functest-jobs
605             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
606               <<: *functest-jobs
607             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
608               <<: *functest-jobs
609       - multijob:
610           name: opnfv/functest-benchmarking-cntt:{tag}
611           projects:
612             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
613               <<: *functest-jobs
614             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
615               <<: *functest-jobs
616       - multijob:
617           name: opnfv/functest-vnf:{tag}
618           execution-type: SEQUENTIALLY
619           projects:
620             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
621               <<: *functest-jobs
622             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
623               <<: *functest-jobs
624             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
625               <<: *functest-jobs
626             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
627               <<: *functest-jobs
628             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
629               <<: *functest-jobs
630       - multijob:
631           name: dump all campaign data
632           projects:
633             - name: 'functest-{tag}-zip'
634               <<: *functest-jobs
635
636 - job-template:
637     name: 'functest-{repo}-{container}-{tag}-gate'
638     parameters:
639       - functest-slave:
640           slave: '{slave}'
641     scm:
642       - functest-scm:
643           ref: $GERRIT_REFSPEC
644     builders:
645       - functest-build-containers:
646           <<: *functest-build-containers
647           ref: $GERRIT_REFSPEC
648
649 - job-template:
650     name: 'functest-{repo}-{container}-{tag}-check'
651     parameters:
652       - functest-slave:
653           slave: '{slave}'
654       - functest-branch:
655           branch: '{branch}'
656     scm:
657       - functest-scm:
658           ref: $branch
659     builders:
660       - functest-build-containers:
661           <<: *functest-build-containers
662           ref: $branch
663
664 - project:
665     name: 'functest-_-alpine-3.11-rmi'
666     repo: _
667     port:
668     container: alpine
669     tag: '3.11'
670     slave: master
671     jobs:
672       - 'functest-{repo}-{container}-{tag}-rmi'
673
674 - project:
675     name: 'functest-_-alpine-3.11-pull'
676     repo: _
677     port:
678     container: alpine
679     tag: '3.11'
680     slave: master
681     jobs:
682       - 'functest-{repo}-{container}-{tag}-pull'
683
684 - project:
685     name: functest-opnfv-functest-core-{tag}-build
686     <<: *functest-params
687     container: functest-core
688     ref_arg: BRANCH
689     path: docker/core
690     jobs:
691       - 'functest-{repo}-{container}-{tag}-gate'
692       - 'functest-{repo}-{container}-{tag}-check'
693
694 - project:
695     name: functest-opnfv-functest-tempest-{tag}-build
696     <<: *functest-params
697     container: functest-tempest
698     ref_arg: BRANCH
699     path: docker/tempest
700     jobs:
701       - 'functest-{repo}-{container}-{tag}-gate'
702       - 'functest-{repo}-{container}-{tag}-check'
703     exclude:
704       - tag: latest
705       - tag: jerma
706
707 - project:
708     name: functest-opnfv-functest-healthcheck-{tag}-build
709     <<: *functest-params
710     container: functest-healthcheck
711     ref_arg: BRANCH
712     path: docker/healthcheck
713     jobs:
714       - 'functest-{repo}-{container}-{tag}-gate'
715       - 'functest-{repo}-{container}-{tag}-check'
716
717 - project:
718     name: functest-opnfv-functest-smoke-{tag}-build
719     <<: *functest-params
720     container: functest-smoke
721     ref_arg: BRANCH
722     path: docker/smoke
723     jobs:
724       - 'functest-{repo}-{container}-{tag}-gate'
725       - 'functest-{repo}-{container}-{tag}-check'
726
727 - project:
728     name: functest-opnfv-functest-benchmarking-{tag}-build
729     <<: *functest-params
730     container: functest-benchmarking
731     ref_arg: BRANCH
732     path: docker/benchmarking
733     jobs:
734       - 'functest-{repo}-{container}-{tag}-gate'
735       - 'functest-{repo}-{container}-{tag}-check'
736
737 - project:
738     name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
739     <<: *functest-params
740     container: functest-benchmarking-cntt
741     ref_arg: BRANCH
742     path: docker/benchmarking-cntt
743     jobs:
744       - 'functest-{repo}-{container}-{tag}-gate'
745       - 'functest-{repo}-{container}-{tag}-check'
746
747 - project:
748     name: functest-opnfv-functest-vnf-{tag}-build
749     <<: *functest-params
750     container: functest-vnf
751     ref_arg:
752     path: docker/vnf
753     jobs:
754       - 'functest-{repo}-{container}-{tag}-gate'
755       - 'functest-{repo}-{container}-{tag}-check'
756
757 - project:
758     name: functest-opnfv-functest-smoke-cntt-{tag}-build
759     <<: *functest-params
760     container: functest-smoke-cntt
761     ref_arg: BRANCH
762     path: docker/smoke-cntt
763     jobs:
764       - 'functest-{repo}-{container}-{tag}-gate'
765       - 'functest-{repo}-{container}-{tag}-check'
766
767 - job-template:
768     name: 'functest-{tag}-check'
769     project-type: multijob
770     parameters:
771       - functest-slave:
772           slave: '{slave}'
773       - functest-build_tag:
774           build_tag: ''
775       - functest-branch:
776           branch: '{branch}'
777       - functest-DEBUG:
778           DEBUG: 'true'
779       - functest-EXTERNAL_NETWORK:
780           EXTERNAL_NETWORK: public
781     properties:
782       - build-blocker:
783           use-build-blocker: true
784           blocking-level: 'NODE'
785           blocking-jobs:
786             - '^functest-{tag}-(daily|check|gate)$'
787     builders:
788       - multijob:
789           name: remove former images
790           projects:
791             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
792               <<: *functest-jobs
793             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
794               <<: *functest-jobs
795             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
796               <<: *functest-jobs
797             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
798               <<: *functest-jobs
799             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
800               <<: *functest-jobs
801             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
802               <<: *functest-jobs
803       - multijob:
804           name: remove dependencies
805           projects:
806             - name: 'functest-_-alpine-3.11-rmi'
807               <<: *functest-jobs
808       - multijob:
809           name: pull dependencies
810           projects:
811             - name: 'functest-_-alpine-3.11-pull'
812               <<: *functest-jobs
813       - multijob:
814           name: build opnfv/functest-core
815           projects:
816             - name: 'functest-opnfv-functest-core-{tag}-check'
817               <<: *functest-jobs
818       - multijob:
819           name: build opnfv/functest-tempest
820           projects:
821             - name: 'functest-opnfv-functest-tempest-{tag}-check'
822               <<: *functest-jobs
823       - multijob:
824           name: build containers
825           projects:
826             - name: 'functest-opnfv-functest-healthcheck-{tag}-check'
827               <<: *functest-jobs
828             - name: 'functest-opnfv-functest-smoke-{tag}-check'
829               <<: *functest-jobs
830             - name: 'functest-opnfv-functest-benchmarking-{tag}-check'
831               <<: *functest-jobs
832             - name: 'functest-opnfv-functest-vnf-{tag}-check'
833               <<: *functest-jobs
834       - multijob:
835           name: build cntt containers
836           projects:
837             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-check'
838               <<: *functest-jobs
839             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-check'
840               <<: *functest-jobs
841       - multijob:
842           name: opnfv/functest-healthcheck:{tag}
843           projects:
844             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
845               <<: *functest-jobs
846             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
847               <<: *functest-jobs
848             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
849               <<: *functest-jobs
850             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
851               <<: *functest-jobs
852             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
853               <<: *functest-jobs
854             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
855               <<: *functest-jobs
856             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
857               <<: *functest-jobs
858             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
859               <<: *functest-jobs
860             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
861               <<: *functest-jobs
862             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
863               <<: *functest-jobs
864             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
865               <<: *functest-jobs
866             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
867               <<: *functest-jobs
868             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
869               <<: *functest-jobs
870       - multijob:
871           name: opnfv/functest-smoke:{tag}
872           projects:
873             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
874               <<: *functest-jobs
875             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
876               <<: *functest-jobs
877             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
878               <<: *functest-jobs
879             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
880               <<: *functest-jobs
881             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
882               <<: *functest-jobs
883             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
884               <<: *functest-jobs
885             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
886               <<: *functest-jobs
887             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
888               <<: *functest-jobs
889             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
890               <<: *functest-jobs
891             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
892               <<: *functest-jobs
893             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
894               <<: *functest-jobs
895             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
896               <<: *functest-jobs
897             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
898               <<: *functest-jobs
899             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
900               <<: *functest-jobs
901             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
902               <<: *functest-jobs
903             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
904               <<: *functest-jobs
905             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
906               <<: *functest-jobs
907             - name: 'functest-opnfv-functest-smoke-{tag}-octavia-run'
908               <<: *functest-jobs
909       - multijob:
910           name: opnfv/functest-smoke-cntt:{tag}
911           projects:
912             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-neutron-tempest-plugin-api-cntt-run'
913               <<: *functest-jobs
914             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
915               <<: *functest-jobs
916             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
917               <<: *functest-jobs
918             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
919               <<: *functest-jobs
920             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
921               <<: *functest-jobs
922             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
923               <<: *functest-jobs
924             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
925               <<: *functest-jobs
926       - multijob:
927           name: opnfv/functest-benchmarking:{tag}
928           projects:
929             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
930               <<: *functest-jobs
931             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
932               <<: *functest-jobs
933             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
934               <<: *functest-jobs
935             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
936               <<: *functest-jobs
937       - multijob:
938           name: opnfv/functest-benchmarking-cntt:{tag}
939           projects:
940             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
941               <<: *functest-jobs
942             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
943               <<: *functest-jobs
944       - multijob:
945           name: opnfv/functest-vnf:{tag}
946           execution-type: SEQUENTIALLY
947           projects:
948             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
949               <<: *functest-jobs
950             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
951               <<: *functest-jobs
952             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
953               <<: *functest-jobs
954             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
955               <<: *functest-jobs
956             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
957               <<: *functest-jobs
958
959 - trigger:
960     name: functest-patchset-created
961     triggers:
962       - gerrit:
963           server-name: 'gerrit.opnfv.org'
964           trigger-on:
965             - patchset-created-event
966             - comment-added-contains-event:
967                 comment-contains-value: 'recheck'
968             - comment-added-contains-event:
969                 comment-contains-value: 'reverify'
970           projects:
971             - project-compare-type: 'ANT'
972               project-pattern: 'functest'
973               branches:
974                 - branch-compare-type: 'ANT'
975                   branch-pattern: '**/{branch}'
976           skip-vote:
977             successful: false
978             failed: false
979             unstable: false
980             notbuilt: false
981
982 - job-template:
983     name: 'functest-{tag}-gate'
984     project-type: multijob
985     triggers:
986       - functest-patchset-created:
987           branch: '{branch}'
988     parameters:
989       - functest-slave:
990           slave: '{slave}'
991       - functest-build_tag:
992           build_tag: ''
993       - functest-DEBUG:
994           DEBUG: 'true'
995       - functest-EXTERNAL_NETWORK:
996           EXTERNAL_NETWORK: public
997     properties:
998       - build-blocker:
999           use-build-blocker: true
1000           blocking-level: 'NODE'
1001           blocking-jobs:
1002             - '^functest-{tag}-(daily|check|gate)$'
1003     builders:
1004       - multijob:
1005           name: remove former images
1006           projects:
1007             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
1008               <<: *functest-jobs
1009             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
1010               <<: *functest-jobs
1011             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
1012               <<: *functest-jobs
1013             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
1014               <<: *functest-jobs
1015             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
1016               <<: *functest-jobs
1017             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
1018               <<: *functest-jobs
1019       - multijob:
1020           name: remove dependencies
1021           projects:
1022             - name: 'functest-_-alpine-3.11-rmi'
1023               <<: *functest-jobs
1024       - multijob:
1025           name: pull dependencies
1026           projects:
1027             - name: 'functest-_-alpine-3.11-pull'
1028               <<: *functest-jobs
1029       - multijob:
1030           name: build opnfv/functest-core
1031           projects:
1032             - name: 'functest-opnfv-functest-core-{tag}-gate'
1033               <<: *functest-jobs
1034       - multijob:
1035           name: build opnfv/functest-tempest
1036           projects:
1037             - name: 'functest-opnfv-functest-tempest-{tag}-gate'
1038               <<: *functest-jobs
1039       - multijob:
1040           name: build containers
1041           projects:
1042             - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1043               <<: *functest-jobs
1044             - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1045               <<: *functest-jobs
1046             - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1047               <<: *functest-jobs
1048             - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1049               <<: *functest-jobs
1050       - multijob:
1051           name: build cntt containers
1052           projects:
1053             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1054               <<: *functest-jobs
1055             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1056               <<: *functest-jobs
1057       - multijob:
1058           name: opnfv/functest-healthcheck:{tag}
1059           projects:
1060             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1061               <<: *functest-jobs
1062             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1063               <<: *functest-jobs
1064             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1065               <<: *functest-jobs
1066             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1067               <<: *functest-jobs
1068             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1069               <<: *functest-jobs
1070             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1071               <<: *functest-jobs
1072             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1073               <<: *functest-jobs
1074             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1075               <<: *functest-jobs
1076             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1077               <<: *functest-jobs
1078             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1079               <<: *functest-jobs
1080             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1081               <<: *functest-jobs
1082             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1083               <<: *functest-jobs
1084             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1085               <<: *functest-jobs
1086       - multijob:
1087           name: opnfv/functest-smoke:{tag}
1088           projects:
1089             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
1090               <<: *functest-jobs
1091             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1092               <<: *functest-jobs
1093             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1094               <<: *functest-jobs
1095             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1096               <<: *functest-jobs
1097             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1098               <<: *functest-jobs
1099             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1100               <<: *functest-jobs
1101             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1102               <<: *functest-jobs
1103             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1104               <<: *functest-jobs
1105             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1106               <<: *functest-jobs
1107             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1108               <<: *functest-jobs
1109             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1110               <<: *functest-jobs
1111             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1112               <<: *functest-jobs
1113             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1114               <<: *functest-jobs
1115             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
1116               <<: *functest-jobs
1117             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1118               <<: *functest-jobs
1119             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1120               <<: *functest-jobs
1121             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
1122               <<: *functest-jobs
1123             - name: 'functest-opnfv-functest-smoke-{tag}-octavia-run'
1124               <<: *functest-jobs
1125       - multijob:
1126           name: opnfv/functest-smoke-cntt:{tag}
1127           projects:
1128             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-neutron-tempest-plugin-api-cntt-run'
1129               <<: *functest-jobs
1130             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1131               <<: *functest-jobs
1132             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1133               <<: *functest-jobs
1134             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1135               <<: *functest-jobs
1136             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1137               <<: *functest-jobs
1138             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1139               <<: *functest-jobs
1140             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1141               <<: *functest-jobs
1142       - multijob:
1143           name: opnfv/functest-benchmarking:{tag}
1144           projects:
1145             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1146               <<: *functest-jobs
1147             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1148               <<: *functest-jobs
1149             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1150               <<: *functest-jobs
1151             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1152               <<: *functest-jobs
1153       - multijob:
1154           name: opnfv/functest-benchmarking-cntt:{tag}
1155           projects:
1156             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1157               <<: *functest-jobs
1158             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1159               <<: *functest-jobs
1160       - multijob:
1161           name: opnfv/functest-vnf:{tag}
1162           execution-type: SEQUENTIALLY
1163           projects:
1164             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1165               <<: *functest-jobs
1166             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1167               <<: *functest-jobs
1168             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1169               <<: *functest-jobs
1170             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1171               <<: *functest-jobs
1172             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1173               <<: *functest-jobs
1174
1175 - project:
1176     name: 'functest'
1177     <<: *functest-params
1178     jobs:
1179       - 'functest-{tag}-daily'
1180       - 'functest-{tag}-check'
1181       - 'functest-{tag}-gate'
1182
1183 - view:
1184     name: functest
1185     view-type: list
1186     columns:
1187       - status
1188       - weather
1189       - job
1190       - last-success
1191       - last-failure
1192       - last-duration
1193     regex: ^functest(-ovn)?-[a-z]+-(daily|check|gate)$