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