Remove deprecated Functest jobs
[releng.git] / jjb / functest / functest.yaml
1 ---
2 - functest-containers: &functest-containers
3     name: 'functest-containers'
4     repo: '{repo}'
5     port: '{port}'
6     container: '{container}'
7     tag: '{tag}'
8
9 - functest-params: &functest-params
10     name: 'functest-params'
11     repo: 'opnfv'
12     port:
13     tag:
14       - latest:
15           from:
16           build_args:
17           branch: master
18           slave: lf-pod4
19           DASHBOARD_URL: http://172.30.12.83
20           dependency: 3.14
21       - yoga:
22           from:
23           build_args:
24           branch: stable/yoga
25           slave: lf-pod4-3
26           DASHBOARD_URL: http://172.30.12.88
27           dependency: 3.14
28       - xena:
29           from:
30           build_args:
31           branch: stable/xena
32           slave: lf-pod4-2
33           DASHBOARD_URL: http://172.30.12.85
34           dependency: 3.14
35       - wallaby:
36           from:
37           build_args:
38           branch: stable/wallaby
39           slave: lf-virtual6
40           DASHBOARD_URL: http://172.30.13.91
41           dependency: 3.13
42
43 - functest-jobs: &functest-jobs
44     name: 'functest-jobs'
45     current-parameters: true
46
47 - parameter:
48     name: functest-slave
49     parameters:
50       - label:
51           name: slave
52           default: '{slave}'
53
54 - parameter:
55     name: functest-build_tag
56     parameters:
57       - random-string:
58           name: build_tag
59
60 - parameter:
61     name: functest-EXTERNAL_NETWORK
62     parameters:
63       - string:
64           name: EXTERNAL_NETWORK
65           default: public
66
67 - parameter:
68     name: functest-VOLUME_DEVICE_NAME
69     parameters:
70       - string:
71           name: VOLUME_DEVICE_NAME
72           default: sdb
73
74 - parameter:
75     name: functest-IMAGE_PROPERTIES
76     parameters:
77       - string:
78           name: IMAGE_PROPERTIES
79           default: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
80
81 - functest-run-containers: &functest-run-containers
82     name: 'functest-run-containers'
83     <<: *functest-containers
84     test: '{test}'
85     privileged: '{privileged}'
86     volumes: '{volumes}'
87     env: '{env}'
88     network: '{network}'
89     uid: '{uid}'
90     gid: '{gid}'
91     published_ports: '{published_ports}'
92     DASHBOARD_URL: '{DASHBOARD_URL}'
93
94 - builder:
95     name: functest-pull-containers
96     builders:
97       - shell: |
98           set +x
99           if [ "{repo}" = "_" ]; then
100             image={container}:{tag}
101           elif [ "{port}" = "None" ]; then
102             image={repo}/{container}:{tag}
103           else
104             image={repo}:{port}/{container}:{tag}
105           fi
106           sudo docker pull $image
107
108 - builder:
109     name: functest-run-containers
110     builders:
111       - shell: |
112           set +x
113           volumes=;
114           if [ "{volumes}" != "None" ]; then
115             for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \
116               do volumes="-v $i $volumes"; done
117           fi
118           env=;
119           if [ "{env}" != "None" ]; then
120             for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
121               do env="-e $i $env"; done
122           fi
123           published_ports=;
124           if [ "{published_ports}" != "None" ]; then
125             for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \
126               do published_ports="-p $i $published_ports"; done
127           fi
128           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
129           if [ "{repo}" = "_" ]; then
130             image={container}:{tag}
131           elif [ "{port}" = "None" ]; then
132             image={repo}/{container}:{tag}
133           else
134             image={repo}:{port}/{container}:{tag}
135           fi
136           sudo mkdir -p $WORKSPACE/results
137           sudo chown {uid}:{gid} $WORKSPACE/results
138           sudo docker run --rm \
139             --privileged={privileged} \
140             --network={network} \
141             $volumes \
142             $env \
143             $published_ports \
144             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
145             -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
146             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
147             -v /home/opnfv/functest/.boto:/etc/boto.cfg \
148             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
149             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
150             -e NODE_NAME=$slave \
151             -e BUILD_TAG=$BUILD_TAG \
152             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
153             -e DASHBOARD_URL={DASHBOARD_URL} \
154             $image run_tests -t {test} -p -r
155
156 - builder:
157     name: functest-remove-images
158     builders:
159       - shell: |
160           set +x
161           if [ "{repo}" = "_" ]; then
162             image={container}:{tag}
163           elif [ "{port}" = "None" ]; then
164             image={repo}/{container}:{tag}
165           else
166             image={repo}:{port}/{container}:{tag}
167           fi
168           sudo docker rmi $image || true
169
170 - job-template:
171     name: 'functest-{repo}-{container}-{tag}-pull'
172     parameters:
173       - functest-slave:
174           slave: '{slave}'
175     builders:
176       - functest-pull-containers:
177           <<: *functest-containers
178
179 - project:
180     name: 'functest-opnfv-functest-healthcheck-pull'
181     <<: *functest-params
182     container: 'functest-healthcheck'
183     jobs:
184       - 'functest-{repo}-{container}-{tag}-pull'
185
186 - project:
187     name: 'functest-opnfv-functest-smoke-pull'
188     <<: *functest-params
189     container: 'functest-smoke'
190     jobs:
191       - 'functest-{repo}-{container}-{tag}-pull'
192
193 - project:
194     name: 'functest-opnfv-functest-smoke-cntt-pull'
195     <<: *functest-params
196     container: 'functest-smoke-cntt'
197     jobs:
198       - 'functest-{repo}-{container}-{tag}-pull'
199
200 - project:
201     name: 'functest-opnfv-functest-benchmarking-pull'
202     <<: *functest-params
203     container: 'functest-benchmarking'
204     jobs:
205       - 'functest-{repo}-{container}-{tag}-pull'
206
207 - project:
208     name: 'functest-opnfv-functest-benchmarking-cntt-pull'
209     <<: *functest-params
210     container: 'functest-benchmarking-cntt'
211     jobs:
212       - 'functest-{repo}-{container}-{tag}-pull'
213
214 - project:
215     name: 'functest-opnfv-functest-vnf-pull'
216     <<: *functest-params
217     container: 'functest-vnf'
218     jobs:
219       - 'functest-{repo}-{container}-{tag}-pull'
220
221 - job-template:
222     name: 'functest-{repo}-{container}-{tag}-rmi'
223     parameters:
224       - functest-slave:
225           slave: '{slave}'
226     builders:
227       - functest-remove-images:
228           <<: *functest-containers
229
230 - project:
231     name: 'functest-opnfv-functest-healthcheck-rmi'
232     <<: *functest-params
233     container: 'functest-healthcheck'
234     jobs:
235       - 'functest-{repo}-{container}-{tag}-rmi'
236
237 - project:
238     name: 'functest-opnfv-functest-smoke-rmi'
239     <<: *functest-params
240     container: 'functest-smoke'
241     jobs:
242       - 'functest-{repo}-{container}-{tag}-rmi'
243
244 - project:
245     name: 'functest-opnfv-functest-smoke-cntt-rmi'
246     <<: *functest-params
247     container: 'functest-smoke-cntt'
248     jobs:
249       - 'functest-{repo}-{container}-{tag}-rmi'
250
251 - project:
252     name: 'functest-opnfv-functest-benchmarking-rmi'
253     <<: *functest-params
254     container: 'functest-benchmarking'
255     jobs:
256       - 'functest-{repo}-{container}-{tag}-rmi'
257
258 - project:
259     name: 'functest-opnfv-functest-benchmarking-cntt-rmi'
260     <<: *functest-params
261     container: 'functest-benchmarking-cntt'
262     jobs:
263       - 'functest-{repo}-{container}-{tag}-rmi'
264
265 - project:
266     name: 'functest-opnfv-functest-vnf-rmi'
267     <<: *functest-params
268     container: 'functest-vnf'
269     jobs:
270       - 'functest-{repo}-{container}-{tag}-rmi'
271
272 - job-template:
273     name: 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
274     parameters:
275       - functest-slave:
276           slave: '{slave}'
277       - functest-build_tag:
278           build_tag: ''
279       - functest-EXTERNAL_NETWORK:
280           EXTERNAL_NETWORK: public
281       - functest-VOLUME_DEVICE_NAME:
282           VOLUME_DEVICE_NAME: sdb
283       - functest-IMAGE_PROPERTIES:
284           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
285     builders:
286       - functest-run-containers:
287           <<: *functest-run-containers
288
289 - project:
290     name: 'functest-opnfv-functest-healthcheck'
291     <<: *functest-params
292     volumes:
293       - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
294       - /home/opnfv/functest/images:/home/opnfv/functest/images
295     env:
296       - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
297       - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
298       - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
299     published_ports:
300     container: 'functest-healthcheck'
301     test:
302       - connection_check
303       - tenantnetwork1
304       - tenantnetwork2
305       - vmready1
306       - vmready2
307       - singlevm1
308       - singlevm2
309       - vping_ssh
310       - vping_userdata
311       - cinder_test
312       - odl
313       - tempest_smoke
314       - tempest_horizon
315     privileged: 'false'
316     network: bridge
317     uid: 1000
318     gid: 1000
319     jobs:
320       - 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
321
322 - job-template:
323     name: 'functest-opnfv-functest-smoke-{tag}-{test}-run'
324     parameters:
325       - functest-slave:
326           slave: '{slave}'
327       - functest-build_tag:
328           build_tag: ''
329       - functest-EXTERNAL_NETWORK:
330           EXTERNAL_NETWORK: public
331       - functest-VOLUME_DEVICE_NAME:
332           VOLUME_DEVICE_NAME: sdb
333       - functest-IMAGE_PROPERTIES:
334           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
335     builders:
336       - functest-run-containers:
337           <<: *functest-run-containers
338
339 - project:
340     name: 'functest-opnfv-functest-smoke'
341     <<: *functest-params
342     volumes:
343       - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
344       - /home/opnfv/functest/images:/home/opnfv/functest/images
345     env:
346       - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
347       - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
348       - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
349     published_ports:
350     container: 'functest-smoke'
351     test:
352       - tempest_neutron
353       - tempest_cinder
354       - tempest_keystone
355       - tempest_heat
356       - tempest_telemetry
357       - rally_sanity
358       - refstack_compute
359       - refstack_object
360       - refstack_platform
361       - tempest_full
362       - tempest_scenario
363       - tempest_slow
364       - patrole_admin
365       - patrole_member
366       - patrole_reader
367       - tempest_barbican
368       - tempest_octavia
369       - tempest_cyborg
370     privileged: 'false'
371     network: bridge
372     uid: 1000
373     gid: 1000
374     jobs:
375       - 'functest-opnfv-functest-smoke-{tag}-{test}-run'
376
377 - job-template:
378     name: 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
379     parameters:
380       - functest-slave:
381           slave: '{slave}'
382       - functest-build_tag:
383           build_tag: ''
384       - functest-EXTERNAL_NETWORK:
385           EXTERNAL_NETWORK: public
386       - functest-VOLUME_DEVICE_NAME:
387           VOLUME_DEVICE_NAME: sdb
388       - functest-IMAGE_PROPERTIES:
389           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
390     builders:
391       - functest-run-containers:
392           <<: *functest-run-containers
393
394 - project:
395     name: 'functest-opnfv-functest-smoke-cntt'
396     <<: *functest-params
397     volumes:
398       - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
399       - /home/opnfv/functest/images:/home/opnfv/functest/images
400     env:
401       - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
402       - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
403       - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
404     published_ports:
405     container: 'functest-smoke-cntt'
406     test:
407       - tempest_neutron_cntt
408       - tempest_cinder_cntt
409       - tempest_keystone_cntt
410       - tempest_heat_cntt
411       - rally_sanity_cntt
412       - tempest_full_cntt
413       - tempest_scenario_cntt
414       - tempest_slow_cntt
415     privileged: 'false'
416     network: bridge
417     uid: 1000
418     gid: 1000
419     jobs:
420       - 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
421
422 - job-template:
423     name: 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
424     parameters:
425       - functest-slave:
426           slave: '{slave}'
427       - functest-build_tag:
428           build_tag: ''
429       - functest-EXTERNAL_NETWORK:
430           EXTERNAL_NETWORK: public
431       - functest-VOLUME_DEVICE_NAME:
432           VOLUME_DEVICE_NAME: sdb
433       - functest-IMAGE_PROPERTIES:
434           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
435     builders:
436       - functest-run-containers:
437           <<: *functest-run-containers
438
439 - project:
440     name: 'functest-opnfv-functest-benchmarking'
441     <<: *functest-params
442     volumes:
443       - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
444       - /home/opnfv/functest/images:/home/opnfv/functest/images
445     env:
446       - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
447       - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
448       - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
449     published_ports:
450     container: 'functest-benchmarking'
451     test:
452       - rally_full
453       - rally_jobs
454       - vmtp
455       - shaker
456     privileged: 'false'
457     network: bridge
458     uid: 1000
459     gid: 1000
460     jobs:
461       - 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
462
463 - job-template:
464     name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
465     parameters:
466       - functest-slave:
467           slave: '{slave}'
468       - functest-build_tag:
469           build_tag: ''
470       - functest-EXTERNAL_NETWORK:
471           EXTERNAL_NETWORK: public
472       - functest-VOLUME_DEVICE_NAME:
473           VOLUME_DEVICE_NAME: sdb
474       - functest-IMAGE_PROPERTIES:
475           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
476     builders:
477       - functest-run-containers:
478           <<: *functest-run-containers
479
480 - project:
481     name: 'functest-opnfv-functest-benchmarking-cntt'
482     <<: *functest-params
483     volumes:
484       - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
485       - /home/opnfv/functest/images:/home/opnfv/functest/images
486     env:
487       - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
488       - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
489       - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
490     published_ports:
491     container: 'functest-benchmarking-cntt'
492     test:
493       - rally_full_cntt
494       - rally_jobs_cntt
495     privileged: 'false'
496     network: bridge
497     uid: 1000
498     gid: 1000
499     jobs:
500       - 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
501
502 - job-template:
503     name: 'functest-opnfv-functest-vnf-{tag}-{test}-run'
504     parameters:
505       - functest-slave:
506           slave: '{slave}'
507       - functest-build_tag:
508           build_tag: ''
509       - functest-EXTERNAL_NETWORK:
510           EXTERNAL_NETWORK: public
511       - functest-VOLUME_DEVICE_NAME:
512           VOLUME_DEVICE_NAME: sdb
513       - functest-IMAGE_PROPERTIES:
514           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
515     builders:
516       - functest-run-containers:
517           <<: *functest-run-containers
518
519 - project:
520     name: 'functest-opnfv-functest-vnf'
521     <<: *functest-params
522     volumes:
523       - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
524       - /home/opnfv/functest/images:/home/opnfv/functest/images
525     env:
526       - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
527       - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
528       - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
529     published_ports:
530     container: 'functest-vnf'
531     test:
532       - cloudify
533       - cloudify_ims
534       - heat_ims
535       - vyos_vrouter
536       - juju_epc
537     privileged: 'false'
538     network: bridge
539     uid: 1000
540     gid: 1000
541     jobs:
542       - 'functest-opnfv-functest-vnf-{tag}-{test}-run'
543
544 - builder:
545     name: functest-zip
546     builders:
547       - shell: |
548           set +x
549           volumes=;
550           if [ "{volumes}" != "None" ]; then
551             for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \
552               do volumes="-v $i $volumes"; done
553           fi
554           env=;
555           if [ "{env}" != "None" ]; then
556             for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
557               do env="-e $i $env"; done
558           fi
559           published_ports=;
560           if [ "{published_ports}" != "None" ]; then
561             for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \
562               do published_ports="-p $i $published_ports"; done
563           fi
564           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
565           if [ "{repo}" = "_" ]; then
566             image={container}:{tag}
567           elif [ "{port}" = "None" ]; then
568             image={repo}/{container}:{tag}
569           else
570             image={repo}:{port}/{container}:{tag}
571           fi
572           sudo mkdir -p $WORKSPACE/results
573           sudo chown {uid}:{gid} $WORKSPACE/results
574           sudo docker run --rm \
575             $volumes \
576             $env \
577             $published_ports \
578             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
579             -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
580             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
581             -v /home/opnfv/functest/.boto:/etc/boto.cfg \
582             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
583             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
584             -e BUILD_TAG=$BUILD_TAG \
585             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
586             $image zip_campaign
587
588 - job-template:
589     name: 'functest-{tag}-zip'
590     parameters:
591       - functest-slave:
592           slave: '{slave}'
593       - functest-build_tag:
594           build_tag: ''
595       - functest-EXTERNAL_NETWORK:
596           EXTERNAL_NETWORK: public
597       - functest-VOLUME_DEVICE_NAME:
598           VOLUME_DEVICE_NAME: sdb
599       - functest-IMAGE_PROPERTIES:
600           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
601     builders:
602       - functest-zip:
603           <<: *functest-containers
604           volumes: '{volumes}'
605           env: '{env}'
606           uid: '{uid}'
607           gid: '{gid}'
608           published_ports: '{published_ports}'
609
610 - project:
611     name: 'functest-{tag}-zip'
612     <<: *functest-params
613     volumes:
614       - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
615       - /home/opnfv/functest/images:/home/opnfv/functest/images
616     env:
617       - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
618       - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
619       - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
620     published_ports:
621     container: 'functest-healthcheck'
622     uid: 1000
623     gid: 1000
624     jobs:
625       - 'functest-{tag}-zip'
626
627 - job-template:
628     name: 'functest-{tag}-daily'
629     project-type: multijob
630     triggers:
631       - timed: '@weekly'
632     parameters:
633       - functest-slave:
634           slave: '{slave}'
635       - functest-build_tag:
636           build_tag: ''
637       - functest-EXTERNAL_NETWORK:
638           EXTERNAL_NETWORK: public
639       - functest-VOLUME_DEVICE_NAME:
640           VOLUME_DEVICE_NAME: sdb
641       - functest-IMAGE_PROPERTIES:
642           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
643     # PyYAML and yamllint differ here
644     # see https://github.com/yaml/pyyaml/issues/234
645     # yamllint disable rule:indentation
646     properties:
647       - build-blocker:
648           blocking-jobs:
649           - ^functest-(pi-)*{tag}-(daily|docker|review)$
650     # yamllint enable rule:indentation
651     builders:
652       - multijob:
653           name: remove former images
654           projects:
655             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
656               <<: *functest-jobs
657             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
658               <<: *functest-jobs
659             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
660               <<: *functest-jobs
661             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
662               <<: *functest-jobs
663             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
664               <<: *functest-jobs
665             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
666               <<: *functest-jobs
667       - multijob:
668           name: pull containers
669           projects:
670             - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
671               <<: *functest-jobs
672             - name: 'functest-opnfv-functest-smoke-{tag}-pull'
673               <<: *functest-jobs
674             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
675               <<: *functest-jobs
676             - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
677               <<: *functest-jobs
678             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
679               <<: *functest-jobs
680             - name: 'functest-opnfv-functest-vnf-{tag}-pull'
681               <<: *functest-jobs
682       - multijob:
683           name: opnfv/functest-healthcheck:{tag}
684           projects:
685             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
686               <<: *functest-jobs
687             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
688               <<: *functest-jobs
689             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
690               <<: *functest-jobs
691             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
692               <<: *functest-jobs
693             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
694               <<: *functest-jobs
695             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
696               <<: *functest-jobs
697             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
698               <<: *functest-jobs
699             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
700               <<: *functest-jobs
701             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
702               <<: *functest-jobs
703             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
704               <<: *functest-jobs
705             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
706               <<: *functest-jobs
707             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
708               <<: *functest-jobs
709             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
710               <<: *functest-jobs
711       - multijob:
712           name: opnfv/functest-smoke:{tag}
713           projects:
714             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
715               <<: *functest-jobs
716             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
717               <<: *functest-jobs
718             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
719               <<: *functest-jobs
720             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
721               <<: *functest-jobs
722             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
723               <<: *functest-jobs
724             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
725               <<: *functest-jobs
726             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
727               <<: *functest-jobs
728             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
729               <<: *functest-jobs
730             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
731               <<: *functest-jobs
732             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
733               <<: *functest-jobs
734             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
735               <<: *functest-jobs
736             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
737               <<: *functest-jobs
738             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
739               <<: *functest-jobs
740             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
741               <<: *functest-jobs
742             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
743               <<: *functest-jobs
744             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
745               <<: *functest-jobs
746             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
747               <<: *functest-jobs
748             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
749               <<: *functest-jobs
750       - multijob:
751           name: opnfv/functest-smoke-cntt:{tag}
752           projects:
753             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
754               <<: *functest-jobs
755             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
756               <<: *functest-jobs
757             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
758               <<: *functest-jobs
759             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
760               <<: *functest-jobs
761             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
762               <<: *functest-jobs
763             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
764               <<: *functest-jobs
765             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
766               <<: *functest-jobs
767             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
768               <<: *functest-jobs
769       - multijob:
770           name: opnfv/functest-benchmarking:{tag}
771           projects:
772             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
773               <<: *functest-jobs
774             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
775               <<: *functest-jobs
776             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
777               <<: *functest-jobs
778             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
779               <<: *functest-jobs
780       - multijob:
781           name: opnfv/functest-benchmarking-cntt:{tag}
782           projects:
783             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
784               <<: *functest-jobs
785             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
786               <<: *functest-jobs
787       - multijob:
788           name: opnfv/functest-vnf:{tag}
789           projects:
790             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
791               <<: *functest-jobs
792             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
793               <<: *functest-jobs
794             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
795               <<: *functest-jobs
796             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
797               <<: *functest-jobs
798             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
799               <<: *functest-jobs
800       - multijob:
801           name: dump all campaign data
802           projects:
803             - name: 'functest-{tag}-zip'
804               <<: *functest-jobs
805     publishers:
806       - email-ext:
807           failure: false
808           first-failure: true
809           fixed: true
810           recipients: cedric.ollivier@orange.com
811
812 - project:
813     name: 'functest-daily'
814     <<: *functest-params
815     jobs:
816       - 'functest-{tag}-daily'
817
818 - view:
819     name: functest
820     view-type: list
821     columns:
822       - status
823       - weather
824       - job
825       - last-success
826       - last-failure
827       - last-duration
828     regex: ^functest-[a-z0-9.]+-daily$
829
830 - functest-build-containers: &functest-build-containers
831     name: 'functest-build-containers'
832     <<: *functest-containers
833     ref_arg: '{ref_arg}'
834     path: '{path}'
835     build_args: '{build_args}'
836     from: '{from}'
837
838 - builder:
839     name: functest-build-containers
840     builders:
841       - shell: |
842           set +x
843           if [ "{repo}" = "_" ]; then
844             image={container}:{tag}
845           elif [ "{port}" = "None" ]; then
846             image={repo}/{container}:{tag}
847           else
848             image={repo}:{port}/{container}:{tag}
849           fi
850           build_args=""
851           if [ "{build_args}" != "None" ]; then
852             for i in $(echo {build_args} | tr -d '[]' |sed "s/, / /g" ); \
853               do build_args="--build-arg $i $build_args"; done
854           fi
855           if [ "{ref_arg}" != "None" ]; then
856             build_args="$build_args --build-arg {ref_arg}={ref}"
857           fi
858           cd {path}
859           if [ "{from}" != "None" ]; then
860               sed -i {from} Dockerfile
861           fi
862           sudo docker build $build_args \
863             --pull=false --no-cache --force-rm=true \
864             -t $image .
865
866 - scm:
867     name: functest-scm
868     scm:
869       - git:
870           url: 'https://gerrit.opnfv.org/gerrit/functest'
871           refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
872           branches:
873             - '{ref}'
874
875 - functest-dep: &functest-dep
876     name: 'functest-containers'
877     repo: '{repo}'
878     port: '{port}'
879     tag: '{tag}'
880     dependency: '{dependency}'
881
882 - builder:
883     name: functest-pull-dep-images
884     builders:
885       - shell: |
886           set +x
887           if [ "_" = "_" ]; then
888             image=alpine:{dependency}
889           elif [ "None" = "None" ]; then
890             image=_/alpine:{dependency}
891           else
892             image=_:/alpine:{dependency}
893           fi
894           sudo docker pull $image || true
895
896 - builder:
897     name: functest-remove-dep-images
898     builders:
899       - shell: |
900           set +x
901           if [ "_" = "_" ]; then
902             image=alpine:{dependency}
903           elif [ "" = "None" ]; then
904             image=_/alpine:{dependency}
905           else
906             image=_:/alpine:{dependency}
907           fi
908           sudo docker rmi $image || true
909
910 - job-template:
911     name: 'functest-{repo}-{tag}-dep-pull'
912     parameters:
913       - functest-slave:
914           slave: '{slave}'
915     builders:
916       - functest-pull-dep-images:
917           <<: *functest-dep
918
919 - project:
920     name: 'functest-{repo}-{tag}-dep-pull'
921     <<: *functest-params
922     jobs:
923       - 'functest-{repo}-{tag}-dep-pull'
924
925 - job-template:
926     name: 'functest-{repo}-{tag}-dep-rmi'
927     parameters:
928       - functest-slave:
929           slave: '{slave}'
930     builders:
931       - functest-remove-dep-images:
932           <<: *functest-dep
933
934 - project:
935     name: 'functest-{repo}-{tag}-dep-rmi'
936     <<: *functest-params
937     jobs:
938       - 'functest-{repo}-{tag}-dep-rmi'
939
940 - builder:
941     name: functest-tox
942     builders:
943       - shell: |
944           set +x
945           sudo apt-get -o DPkg::Lock::Timeout=300 update && \
946           sudo DEBIAN_FRONTEND=noninteractive apt-get \
947             -o DPkg::Lock::Timeout=300 dist-upgrade -y
948           sudo DEBIAN_FRONTEND=noninteractive \
949           apt-get -o DPkg::Lock::Timeout=300 install software-properties-common gpg -y
950           sudo add-apt-repository -y ppa:deadsnakes/ppa
951           sudo apt-get -o DPkg::Lock::Timeout=300 update && \
952           sudo DEBIAN_FRONTEND=noninteractive apt-get \
953             -o DPkg::Lock::Timeout=300 install \
954             libxml2-dev libxslt-dev libffi-dev libjpeg-dev \
955             python3.10 python3.10-dev python3.10-distutils \
956             python3.9 python3.9-dev python3.9-distutils \
957             python3.8 python3.8-dev python3.8-distutils \
958             python3.7 python3.7-dev python3.6 python3.6-dev \
959             python python-dev python3-pip enchant -y
960           sudo pip3 install tox tox-pip-version
961
962           tox
963
964 - job-template:
965     name: 'functest-{tag}-tox'
966     scm:
967       - functest-scm:
968           ref: $GERRIT_REFSPEC
969     triggers:
970       - functest-patchset-created:
971           branch: '{branch}'
972     parameters:
973       - functest-slave:
974           slave: '{slave}'
975     builders:
976       - functest-tox:
977
978 - project:
979     name: functest-tox
980     <<: *functest-params
981     jobs:
982       - 'functest-{tag}-tox'
983
984 - job-template:
985     name: 'functest-{repo}-{container}-{tag}-gate'
986     parameters:
987       - functest-slave:
988           slave: '{slave}'
989     scm:
990       - functest-scm:
991           ref: $GERRIT_REFSPEC
992     builders:
993       - functest-build-containers:
994           <<: *functest-build-containers
995           ref: $GERRIT_REFSPEC
996           build_args: '{build_args}'
997
998 - project:
999     name: functest-opnfv-functest-core-{tag}-gate
1000     <<: *functest-params
1001     container: functest-core
1002     ref_arg: BRANCH
1003     path: docker/core
1004     jobs:
1005       - 'functest-{repo}-{container}-{tag}-gate'
1006
1007 - project:
1008     name: functest-opnfv-functest-tempest-{tag}-gate
1009     <<: *functest-params
1010     container: functest-tempest
1011     ref_arg: BRANCH
1012     path: docker/tempest
1013     exclude:
1014       - {'tag': 'latest'}
1015       - {'tag': 'xena'}
1016       - {'tag': 'wallaby'}
1017       - {'tag': 'leguer'}
1018       - {'tag': 'kali'}
1019       - {'tag': 'jerma'}
1020     jobs:
1021       - 'functest-{repo}-{container}-{tag}-gate'
1022
1023 - project:
1024     name: functest-opnfv-functest-healthcheck-{tag}-gate
1025     <<: *functest-params
1026     container: functest-healthcheck
1027     ref_arg: BRANCH
1028     path: docker/healthcheck
1029     jobs:
1030       - 'functest-{repo}-{container}-{tag}-gate'
1031
1032 - project:
1033     name: functest-opnfv-functest-smoke-{tag}-gate
1034     <<: *functest-params
1035     container: functest-smoke
1036     ref_arg: BRANCH
1037     path: docker/smoke
1038     jobs:
1039       - 'functest-{repo}-{container}-{tag}-gate'
1040
1041 - project:
1042     name: functest-opnfv-functest-benchmarking-{tag}-gate
1043     <<: *functest-params
1044     container: functest-benchmarking
1045     ref_arg: BRANCH
1046     path: docker/benchmarking
1047     jobs:
1048       - 'functest-{repo}-{container}-{tag}-gate'
1049
1050 - project:
1051     name: functest-opnfv-functest-vnf-{tag}-gate
1052     <<: *functest-params
1053     container: functest-vnf
1054     ref_arg:
1055     path: docker/vnf
1056     jobs:
1057       - 'functest-{repo}-{container}-{tag}-gate'
1058
1059 - project:
1060     name: functest-opnfv-functest-smoke-cntt-{tag}-gate
1061     <<: *functest-params
1062     container: functest-smoke-cntt
1063     ref_arg: BRANCH
1064     path: docker/smoke-cntt
1065     jobs:
1066       - 'functest-{repo}-{container}-{tag}-gate'
1067
1068 - project:
1069     name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
1070     <<: *functest-params
1071     container: functest-benchmarking-cntt
1072     ref_arg: BRANCH
1073     path: docker/benchmarking-cntt
1074     jobs:
1075       - 'functest-{repo}-{container}-{tag}-gate'
1076
1077 - trigger:
1078     name: functest-patchset-created
1079     triggers:
1080       - gerrit:
1081           trigger-on:
1082             - patchset-created-event
1083             - comment-added-contains-event:
1084                 comment-contains-value: 'recheck'
1085             - comment-added-contains-event:
1086                 comment-contains-value: 'reverify'
1087           projects:
1088             - project-compare-type: 'ANT'
1089               project-pattern: 'functest'
1090               branches:
1091                 - branch-compare-type: 'ANT'
1092                   branch-pattern: '**/{branch}'
1093
1094 - job-template:
1095     name: 'functest-{tag}-review'
1096     project-type: multijob
1097     triggers:
1098       - functest-patchset-created:
1099           branch: '{branch}'
1100     parameters:
1101       - functest-slave:
1102           slave: '{slave}'
1103       - functest-build_tag:
1104           build_tag: ''
1105       - functest-EXTERNAL_NETWORK:
1106           EXTERNAL_NETWORK: public
1107       - functest-VOLUME_DEVICE_NAME:
1108           VOLUME_DEVICE_NAME: sdb
1109       - functest-IMAGE_PROPERTIES:
1110           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
1111     # PyYAML and yamllint differ here
1112     # see https://github.com/yaml/pyyaml/issues/234
1113     # yamllint disable rule:indentation
1114     properties:
1115       - build-blocker:
1116           blocking-jobs:
1117           - ^functest-(pi-)*{tag}-(daily|docker|review)$
1118     # yamllint enable rule:indentation
1119     builders:
1120       - multijob:
1121           name: remove former images
1122           projects:
1123             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
1124               <<: *functest-jobs
1125             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
1126               <<: *functest-jobs
1127             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
1128               <<: *functest-jobs
1129             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
1130               <<: *functest-jobs
1131             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
1132               <<: *functest-jobs
1133             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
1134               <<: *functest-jobs
1135       - multijob:
1136           name: remove dependency
1137           projects:
1138             - name: 'functest-{repo}-{tag}-dep-rmi'
1139               <<: *functest-jobs
1140       - multijob:
1141           name: pull dependency
1142           projects:
1143             - name: 'functest-{repo}-{tag}-dep-pull'
1144               <<: *functest-jobs
1145       - multijob:
1146           name: build opnfv/functest-core
1147           projects:
1148             - name: 'functest-opnfv-functest-core-{tag}-gate'
1149               <<: *functest-jobs
1150       - multijob:
1151           name: build opnfv/functest-tempest
1152           projects:
1153             - name: 'functest-opnfv-functest-tempest-{tag}-gate'
1154               <<: *functest-jobs
1155       - multijob:
1156           name: build containers
1157           projects:
1158             - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1159               <<: *functest-jobs
1160             - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1161               <<: *functest-jobs
1162             - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1163               <<: *functest-jobs
1164             - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1165               <<: *functest-jobs
1166       - multijob:
1167           name: build cntt containers
1168           projects:
1169             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1170               <<: *functest-jobs
1171             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1172               <<: *functest-jobs
1173       - multijob:
1174           name: opnfv/functest-healthcheck:{tag}
1175           projects:
1176             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1177               <<: *functest-jobs
1178             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1179               <<: *functest-jobs
1180             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1181               <<: *functest-jobs
1182             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1183               <<: *functest-jobs
1184             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1185               <<: *functest-jobs
1186             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1187               <<: *functest-jobs
1188             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1189               <<: *functest-jobs
1190             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1191               <<: *functest-jobs
1192             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1193               <<: *functest-jobs
1194             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1195               <<: *functest-jobs
1196             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1197               <<: *functest-jobs
1198             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1199               <<: *functest-jobs
1200             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1201               <<: *functest-jobs
1202       - multijob:
1203           name: opnfv/functest-smoke:{tag}
1204           projects:
1205             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1206               <<: *functest-jobs
1207             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1208               <<: *functest-jobs
1209             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1210               <<: *functest-jobs
1211             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1212               <<: *functest-jobs
1213             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1214               <<: *functest-jobs
1215             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1216               <<: *functest-jobs
1217             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1218               <<: *functest-jobs
1219             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1220               <<: *functest-jobs
1221             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1222               <<: *functest-jobs
1223             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1224               <<: *functest-jobs
1225             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1226               <<: *functest-jobs
1227             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1228               <<: *functest-jobs
1229             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1230               <<: *functest-jobs
1231             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1232               <<: *functest-jobs
1233             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1234               <<: *functest-jobs
1235             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1236               <<: *functest-jobs
1237             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1238               <<: *functest-jobs
1239             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1240               <<: *functest-jobs
1241       - multijob:
1242           name: opnfv/functest-smoke-cntt:{tag}
1243           projects:
1244             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1245               <<: *functest-jobs
1246             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1247               <<: *functest-jobs
1248             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1249               <<: *functest-jobs
1250             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1251               <<: *functest-jobs
1252             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1253               <<: *functest-jobs
1254             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1255               <<: *functest-jobs
1256             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1257               <<: *functest-jobs
1258             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1259               <<: *functest-jobs
1260       - multijob:
1261           name: opnfv/functest-benchmarking:{tag}
1262           projects:
1263             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1264               <<: *functest-jobs
1265             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1266               <<: *functest-jobs
1267             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1268               <<: *functest-jobs
1269             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1270               <<: *functest-jobs
1271       - multijob:
1272           name: opnfv/functest-benchmarking-cntt:{tag}
1273           projects:
1274             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1275               <<: *functest-jobs
1276             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1277               <<: *functest-jobs
1278       - multijob:
1279           name: opnfv/functest-vnf:{tag}
1280           projects:
1281             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1282               <<: *functest-jobs
1283             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1284               <<: *functest-jobs
1285             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1286               <<: *functest-jobs
1287             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1288               <<: *functest-jobs
1289             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1290               <<: *functest-jobs
1291     publishers:
1292       - email-ext:
1293           failure: false
1294           first-failure: true
1295           fixed: true
1296           recipients: cedric.ollivier@orange.com
1297
1298 - project:
1299     name: 'functest-review'
1300     <<: *functest-params
1301     jobs:
1302       - 'functest-{tag}-review'
1303
1304 - view:
1305     name: functest-review
1306     view-type: list
1307     columns:
1308       - status
1309       - weather
1310       - job
1311       - last-success
1312       - last-failure
1313       - last-duration
1314     regex: ^functest-[a-z0-9.]+-review$
1315
1316 - view:
1317     name: functest-tox
1318     view-type: list
1319     columns:
1320       - status
1321       - weather
1322       - job
1323       - last-success
1324       - last-failure
1325       - last-duration
1326     regex: ^functest-[a-z0-9.]+-tox$
1327
1328 - builder:
1329     name: functest-push-containers
1330     builders:
1331       - shell: |
1332           set +x
1333           if [ "{repo}" = "_" ]; then
1334             image={container}:{tag}
1335           elif [ "{port}" = "None" ]; then
1336             image={repo}/{container}:{tag}
1337           else
1338             image={repo}:{port}/{container}:{tag}
1339           fi
1340           sudo docker push $image
1341
1342 - trigger:
1343     name: functest-commit
1344     triggers:
1345       - pollscm:
1346           cron: "*/30 * * * *"
1347
1348 - job-template:
1349     name: 'functest-{repo}-{container}-{tag}-build'
1350     parameters:
1351       - functest-slave:
1352           slave: '{slave}'
1353     scm:
1354       - functest-scm:
1355           ref: '{branch}'
1356     builders:
1357       - functest-build-containers:
1358           <<: *functest-build-containers
1359           ref: '{branch}'
1360           build_args: '{build_args}'
1361       - functest-push-containers:
1362           <<: *functest-build-containers
1363           ref: '{branch}'
1364
1365 - project:
1366     name: functest-opnfv-functest-core-{tag}-build
1367     <<: *functest-params
1368     container: functest-core
1369     ref_arg: BRANCH
1370     path: docker/core
1371     jobs:
1372       - 'functest-{repo}-{container}-{tag}-build'
1373
1374 - project:
1375     name: functest-opnfv-functest-tempest-{tag}-build
1376     <<: *functest-params
1377     container: functest-tempest
1378     ref_arg: BRANCH
1379     path: docker/tempest
1380     exclude:
1381       - {'tag': 'latest'}
1382       - {'tag': 'xena'}
1383       - {'tag': 'wallaby'}
1384       - {'tag': 'leguer'}
1385       - {'tag': 'kali'}
1386       - {'tag': 'jerma'}
1387     jobs:
1388       - 'functest-{repo}-{container}-{tag}-build'
1389
1390 - project:
1391     name: functest-opnfv-functest-healthcheck-{tag}-build
1392     <<: *functest-params
1393     container: functest-healthcheck
1394     ref_arg: BRANCH
1395     path: docker/healthcheck
1396     jobs:
1397       - 'functest-{repo}-{container}-{tag}-build'
1398
1399 - project:
1400     name: functest-opnfv-functest-smoke-{tag}-build
1401     <<: *functest-params
1402     container: functest-smoke
1403     ref_arg: BRANCH
1404     path: docker/smoke
1405     jobs:
1406       - 'functest-{repo}-{container}-{tag}-build'
1407
1408 - project:
1409     name: functest-opnfv-functest-benchmarking-{tag}-build
1410     <<: *functest-params
1411     container: functest-benchmarking
1412     ref_arg: BRANCH
1413     path: docker/benchmarking
1414     jobs:
1415       - 'functest-{repo}-{container}-{tag}-build'
1416
1417 - project:
1418     name: functest-opnfv-functest-vnf-{tag}-build
1419     <<: *functest-params
1420     container: functest-vnf
1421     ref_arg:
1422     path: docker/vnf
1423     jobs:
1424       - 'functest-{repo}-{container}-{tag}-build'
1425
1426 - project:
1427     name: functest-opnfv-functest-smoke-cntt-{tag}-build
1428     <<: *functest-params
1429     container: functest-smoke-cntt
1430     ref_arg: BRANCH
1431     path: docker/smoke-cntt
1432     jobs:
1433       - 'functest-{repo}-{container}-{tag}-build'
1434
1435 - project:
1436     name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1437     <<: *functest-params
1438     container: functest-benchmarking-cntt
1439     ref_arg: BRANCH
1440     path: docker/benchmarking-cntt
1441     jobs:
1442       - 'functest-{repo}-{container}-{tag}-build'
1443
1444 - job-template:
1445     name: 'functest-{tag}-docker'
1446     project-type: multijob
1447     triggers:
1448       - functest-commit
1449     scm:
1450       - functest-scm:
1451           ref: '{branch}'
1452     parameters:
1453       - functest-slave:
1454           slave: '{slave}'
1455     # PyYAML and yamllint differ here
1456     # see https://github.com/yaml/pyyaml/issues/234
1457     # yamllint disable rule:indentation
1458     properties:
1459       - build-blocker:
1460           blocking-jobs:
1461           - ^functest-(pi-)*{tag}-(daily|docker|review)$
1462     # yamllint enable rule:indentation
1463     builders:
1464       - multijob:
1465           name: remove dependency
1466           projects:
1467             - name: 'functest-{repo}-{tag}-dep-rmi'
1468               <<: *functest-jobs
1469       - multijob:
1470           name: pull dependency
1471           projects:
1472             - name: 'functest-{repo}-{tag}-dep-pull'
1473               <<: *functest-jobs
1474       - multijob:
1475           name: build opnfv/functest-core
1476           projects:
1477             - name: 'functest-opnfv-functest-core-{tag}-build'
1478               <<: *functest-jobs
1479       - multijob:
1480           name: build opnfv/functest-tempest
1481           projects:
1482             - name: 'functest-opnfv-functest-tempest-{tag}-build'
1483               <<: *functest-jobs
1484       - multijob:
1485           name: build containers
1486           projects:
1487             - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1488               <<: *functest-jobs
1489             - name: 'functest-opnfv-functest-smoke-{tag}-build'
1490               <<: *functest-jobs
1491             - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1492               <<: *functest-jobs
1493             - name: 'functest-opnfv-functest-vnf-{tag}-build'
1494               <<: *functest-jobs
1495       - multijob:
1496           name: build cntt containers
1497           projects:
1498             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1499               <<: *functest-jobs
1500             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1501               <<: *functest-jobs
1502     publishers:
1503       - email-ext:
1504           failure: false
1505           first-failure: true
1506           fixed: true
1507           recipients: cedric.ollivier@orange.com
1508
1509 - builder:
1510     name: functest-trivy
1511     builders:
1512       - shell: |
1513           sudo apt-get -o DPkg::Lock::Timeout=300 update && \
1514           sudo DEBIAN_FRONTEND=noninteractive apt-get \
1515             -o DPkg::Lock::Timeout=300 install curl -y
1516
1517           curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1518           if [ "{repo}" = "_" ]; then
1519             image={container}:{tag}
1520           elif [ "{port}" = "None" ]; then
1521             image={repo}/{container}:{tag}
1522           else
1523             image={repo}:{port}/{container}:{tag}
1524           fi
1525           ./trivy image --exit-code 1 $image
1526
1527 - job-template:
1528     name: 'functest-{repo}-{container}-{tag}-trivy'
1529     triggers:
1530       - timed: '@weekly'
1531     parameters:
1532       - functest-slave:
1533           slave: '{slave}'
1534     builders:
1535       - functest-trivy:
1536           <<: *functest-containers
1537     publishers:
1538       - email-ext:
1539           failure: false
1540           first-failure: true
1541           fixed: true
1542           recipients: cedric.ollivier@orange.com
1543
1544 - project:
1545     name: 'functest-opnfv-functest-core-trivy'
1546     <<: *functest-params
1547     container: 'functest-core'
1548     jobs:
1549       - 'functest-{repo}-{container}-{tag}-trivy'
1550
1551 - project:
1552     name: 'functest-opnfv-functest-tempest-trivy'
1553     <<: *functest-params
1554     container: 'functest-tempest'
1555     jobs:
1556       - 'functest-{repo}-{container}-{tag}-trivy'
1557
1558 - project:
1559     name: 'functest-opnfv-functest-healthcheck-trivy'
1560     <<: *functest-params
1561     container: 'functest-healthcheck'
1562     jobs:
1563       - 'functest-{repo}-{container}-{tag}-trivy'
1564
1565 - project:
1566     name: 'functest-opnfv-functest-smoke-trivy'
1567     <<: *functest-params
1568     container: 'functest-smoke'
1569     jobs:
1570       - 'functest-{repo}-{container}-{tag}-trivy'
1571
1572 - project:
1573     name: 'functest-opnfv-functest-benchmarking-trivy'
1574     <<: *functest-params
1575     container: 'functest-benchmarking'
1576     jobs:
1577       - 'functest-{repo}-{container}-{tag}-trivy'
1578
1579 - project:
1580     name: 'functest-opnfv-functest-vnf-trivy'
1581     <<: *functest-params
1582     container: 'functest-vnf'
1583     jobs:
1584       - 'functest-{repo}-{container}-{tag}-trivy'
1585
1586 - project:
1587     name: 'functest-opnfv-functest-smoke-cntt-trivy'
1588     <<: *functest-params
1589     container: 'functest-smoke-cntt'
1590     jobs:
1591       - 'functest-{repo}-{container}-{tag}-trivy'
1592
1593 - project:
1594     name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1595     <<: *functest-params
1596     container: 'functest-benchmarking-cntt'
1597     jobs:
1598       - 'functest-{repo}-{container}-{tag}-trivy'
1599
1600 - builder:
1601     name: functest-grype
1602     builders:
1603       - shell: |
1604           sudo apt-get -o DPkg::Lock::Timeout=300 update && \
1605           sudo DEBIAN_FRONTEND=noninteractive apt-get \
1606             -o DPkg::Lock::Timeout=300 install curl -y
1607
1608           curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sudo sh -s -- -b .
1609           if [ "{repo}" = "_" ]; then
1610             image={container}:{tag}
1611           elif [ "{port}" = "None" ]; then
1612             image={repo}/{container}:{tag}
1613           else
1614             image={repo}:{port}/{container}:{tag}
1615           fi
1616           ./grype -q $image
1617
1618 - job-template:
1619     name: 'functest-{repo}-{container}-{tag}-grype'
1620     triggers:
1621       - timed: '@weekly'
1622     parameters:
1623       - functest-slave:
1624           slave: '{slave}'
1625     builders:
1626       - functest-grype:
1627           <<: *functest-containers
1628     publishers:
1629       - email-ext:
1630           failure: false
1631           first-failure: true
1632           fixed: true
1633           recipients: cedric.ollivier@orange.com
1634
1635 - project:
1636     name: 'functest-opnfv-functest-core-grype'
1637     <<: *functest-params
1638     container: 'functest-core'
1639     jobs:
1640       - 'functest-{repo}-{container}-{tag}-grype'
1641
1642 - project:
1643     name: 'functest-opnfv-functest-tempest-grype'
1644     <<: *functest-params
1645     container: 'functest-tempest'
1646     jobs:
1647       - 'functest-{repo}-{container}-{tag}-grype'
1648
1649 - project:
1650     name: 'functest-opnfv-functest-healthcheck-grype'
1651     <<: *functest-params
1652     container: 'functest-healthcheck'
1653     jobs:
1654       - 'functest-{repo}-{container}-{tag}-grype'
1655
1656 - project:
1657     name: 'functest-opnfv-functest-smoke-grype'
1658     <<: *functest-params
1659     container: 'functest-smoke'
1660     jobs:
1661       - 'functest-{repo}-{container}-{tag}-grype'
1662
1663 - project:
1664     name: 'functest-opnfv-functest-benchmarking-grype'
1665     <<: *functest-params
1666     container: 'functest-benchmarking'
1667     jobs:
1668       - 'functest-{repo}-{container}-{tag}-grype'
1669
1670 - project:
1671     name: 'functest-opnfv-functest-vnf-grype'
1672     <<: *functest-params
1673     container: 'functest-vnf'
1674     jobs:
1675       - 'functest-{repo}-{container}-{tag}-grype'
1676
1677 - project:
1678     name: 'functest-opnfv-functest-smoke-cntt-grype'
1679     <<: *functest-params
1680     container: 'functest-smoke-cntt'
1681     jobs:
1682       - 'functest-{repo}-{container}-{tag}-grype'
1683
1684 - project:
1685     name: 'functest-opnfv-functest-benchmarking-cntt-grype'
1686     <<: *functest-params
1687     container: 'functest-benchmarking-cntt'
1688     jobs:
1689       - 'functest-{repo}-{container}-{tag}-grype'
1690
1691 - project:
1692     name: 'functest'
1693     <<: *functest-params
1694     jobs:
1695       - 'functest-{tag}-docker'
1696
1697 - view:
1698     name: functest-docker
1699     view-type: list
1700     columns:
1701       - status
1702       - weather
1703       - job
1704       - last-success
1705       - last-failure
1706       - last-duration
1707     regex: ^functest-[a-z0-9.]+-docker$
1708
1709 - view:
1710     name: functest-trivy
1711     view-type: list
1712     columns:
1713       - status
1714       - weather
1715       - job
1716       - last-success
1717       - last-failure
1718       - last-duration
1719     regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$
1720
1721 - view:
1722     name: functest-grype
1723     view-type: list
1724     columns:
1725       - status
1726       - weather
1727       - job
1728       - last-success
1729       - last-failure
1730       - last-duration
1731     regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-grype$