Publish opnfvdocs pieman branch
[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     tag:
12       - latest:
13           from:
14           build_args:
15           branch: master
16           node: lf-pod4
17           DASHBOARD_URL: http://172.30.12.83
18           dependency: 3.14
19       - zed:
20           from:
21           build_args:
22           branch: stable/zed
23           node: lf-virtual9
24           DASHBOARD_URL: http://172.30.13.94
25           dependency: 3.14
26       - yoga:
27           from:
28           build_args:
29           branch: stable/yoga
30           node: lf-pod4-3
31           DASHBOARD_URL: http://172.30.12.88
32           dependency: 3.14
33       - xena:
34           from:
35           build_args:
36           branch: stable/xena
37           node: lf-pod4-2
38           DASHBOARD_URL: http://172.30.12.85
39           dependency: 3.14
40       - wallaby:
41           from:
42           build_args:
43           branch: stable/wallaby
44           node: lf-virtual6
45           DASHBOARD_URL: http://172.30.13.91
46           dependency: 3.13
47
48 - functest-opnfv-functest-healthcheck-params: &functest-opnfv-functest-healthcheck-params
49     name: 'functest-opnfv-functest-healthcheck-params'
50     repo: 'opnfv'
51     container: 'functest-healthcheck'
52     port:
53     tag:
54       - latest:
55           from:
56           build_args:
57           branch: master
58           node: lf-pod4
59           DASHBOARD_URL: http://172.30.12.83
60           dependency: 3.14
61       - zed:
62           from:
63           build_args:
64           branch: stable/zed
65           node: lf-virtual9
66           DASHBOARD_URL: http://172.30.13.94
67           dependency: 3.14
68       - yoga:
69           from:
70           build_args:
71           branch: stable/yoga
72           node: lf-pod4-3
73           DASHBOARD_URL: http://172.30.12.88
74           dependency: 3.14
75       - xena:
76           from:
77           build_args:
78           branch: stable/xena
79           node: lf-pod4-2
80           DASHBOARD_URL: http://172.30.12.85
81           dependency: 3.14
82       - wallaby:
83           from:
84           build_args:
85           branch: stable/wallaby
86           node: lf-virtual6
87           DASHBOARD_URL: http://172.30.13.91
88           dependency: 3.13
89
90 - functest-opnfv-functest-smoke-params: &functest-opnfv-functest-smoke-params
91     name: 'functest-opnfv-functest-smoke-params'
92     repo: 'opnfv'
93     container: 'functest-smoke'
94     port:
95     tag:
96       - latest:
97           from:
98           build_args:
99           branch: master
100           node: lf-pod4
101           DASHBOARD_URL: http://172.30.12.83
102           dependency: 3.14
103       - zed:
104           from:
105           build_args:
106           branch: stable/zed
107           node: lf-virtual9
108           DASHBOARD_URL: http://172.30.13.94
109           dependency: 3.14
110       - yoga:
111           from:
112           build_args:
113           branch: stable/yoga
114           node: lf-pod4-3
115           DASHBOARD_URL: http://172.30.12.88
116           dependency: 3.14
117       - xena:
118           from:
119           build_args:
120           branch: stable/xena
121           node: lf-pod4-2
122           DASHBOARD_URL: http://172.30.12.85
123           dependency: 3.14
124       - wallaby:
125           from:
126           build_args:
127           branch: stable/wallaby
128           node: lf-virtual6
129           DASHBOARD_URL: http://172.30.13.91
130           dependency: 3.13
131
132 - functest-opnfv-functest-smoke-cntt-params: &functest-opnfv-functest-smoke-cntt-params
133     name: 'functest-opnfv-functest-smoke-cntt-params'
134     repo: 'opnfv'
135     container: 'functest-smoke-cntt'
136     port:
137     tag:
138       - latest:
139           from:
140           build_args:
141           branch: master
142           node: lf-pod4
143           DASHBOARD_URL: http://172.30.12.83
144           dependency: 3.14
145       - zed:
146           from:
147           build_args:
148           branch: stable/zed
149           node: lf-virtual9
150           DASHBOARD_URL: http://172.30.13.94
151           dependency: 3.14
152       - yoga:
153           from:
154           build_args:
155           branch: stable/yoga
156           node: lf-pod4-3
157           DASHBOARD_URL: http://172.30.12.88
158           dependency: 3.14
159       - xena:
160           from:
161           build_args:
162           branch: stable/xena
163           node: lf-pod4-2
164           DASHBOARD_URL: http://172.30.12.85
165           dependency: 3.14
166       - wallaby:
167           from:
168           build_args:
169           branch: stable/wallaby
170           node: lf-virtual6
171           DASHBOARD_URL: http://172.30.13.91
172           dependency: 3.13
173
174 - functest-opnfv-functest-benchmarking-params: &functest-opnfv-functest-benchmarking-params
175     name: 'functest-opnfv-functest-benchmarking-params'
176     repo: 'opnfv'
177     container: 'functest-benchmarking'
178     port:
179     tag:
180       - latest:
181           from:
182           build_args:
183           branch: master
184           node: lf-pod4
185           DASHBOARD_URL: http://172.30.12.83
186           dependency: 3.14
187       - zed:
188           from:
189           build_args:
190           branch: stable/zed
191           node: lf-virtual9
192           DASHBOARD_URL: http://172.30.13.94
193           dependency: 3.14
194       - yoga:
195           from:
196           build_args:
197           branch: stable/yoga
198           node: lf-pod4-3
199           DASHBOARD_URL: http://172.30.12.88
200           dependency: 3.14
201       - xena:
202           from:
203           build_args:
204           branch: stable/xena
205           node: lf-pod4-2
206           DASHBOARD_URL: http://172.30.12.85
207           dependency: 3.14
208       - wallaby:
209           from:
210           build_args:
211           branch: stable/wallaby
212           node: lf-virtual6
213           DASHBOARD_URL: http://172.30.13.91
214           dependency: 3.13
215
216 - functest-opnfv-functest-benchmarking-cntt-params: &functest-opnfv-functest-benchmarking-cntt-params
217     name: 'functest-opnfv-functest-benchmarking-cntt-params'
218     repo: 'opnfv'
219     container: 'functest-benchmarking-cntt'
220     port:
221     tag:
222       - latest:
223           from:
224           build_args:
225           branch: master
226           node: lf-pod4
227           DASHBOARD_URL: http://172.30.12.83
228           dependency: 3.14
229       - zed:
230           from:
231           build_args:
232           branch: stable/zed
233           node: lf-virtual9
234           DASHBOARD_URL: http://172.30.13.94
235           dependency: 3.14
236       - yoga:
237           from:
238           build_args:
239           branch: stable/yoga
240           node: lf-pod4-3
241           DASHBOARD_URL: http://172.30.12.88
242           dependency: 3.14
243       - xena:
244           from:
245           build_args:
246           branch: stable/xena
247           node: lf-pod4-2
248           DASHBOARD_URL: http://172.30.12.85
249           dependency: 3.14
250       - wallaby:
251           from:
252           build_args:
253           branch: stable/wallaby
254           node: lf-virtual6
255           DASHBOARD_URL: http://172.30.13.91
256           dependency: 3.13
257
258 - functest-opnfv-functest-vnf-params: &functest-opnfv-functest-vnf-params
259     name: 'functest-opnfv-functest-vnf-params'
260     repo: 'opnfv'
261     container: 'functest-vnf'
262     port:
263     tag:
264       - latest:
265           from:
266           build_args:
267           branch: master
268           node: lf-pod4
269           DASHBOARD_URL: http://172.30.12.83
270           dependency: 3.14
271       - zed:
272           from:
273           build_args:
274           branch: stable/zed
275           node: lf-virtual9
276           DASHBOARD_URL: http://172.30.13.94
277           dependency: 3.14
278       - yoga:
279           from:
280           build_args:
281           branch: stable/yoga
282           node: lf-pod4-3
283           DASHBOARD_URL: http://172.30.12.88
284           dependency: 3.14
285       - xena:
286           from:
287           build_args:
288           branch: stable/xena
289           node: lf-pod4-2
290           DASHBOARD_URL: http://172.30.12.85
291           dependency: 3.14
292       - wallaby:
293           from:
294           build_args:
295           branch: stable/wallaby
296           node: lf-virtual6
297           DASHBOARD_URL: http://172.30.13.91
298           dependency: 3.13
299
300 - functest-jobs: &functest-jobs
301     name: 'functest-jobs'
302     current-parameters: true
303
304 - parameter:
305     name: functest-node
306     parameters:
307       - label:
308           name: node
309           default: '{node}'
310
311 - parameter:
312     name: functest-build_tag
313     parameters:
314       - random-string:
315           name: build_tag
316
317 - parameter:
318     name: functest-EXTERNAL_NETWORK
319     parameters:
320       - string:
321           name: EXTERNAL_NETWORK
322           default: public
323
324 - parameter:
325     name: functest-VOLUME_DEVICE_NAME
326     parameters:
327       - string:
328           name: VOLUME_DEVICE_NAME
329           default: sdb
330
331 - parameter:
332     name: functest-IMAGE_PROPERTIES
333     parameters:
334       - string:
335           name: IMAGE_PROPERTIES
336           default: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
337
338 - functest-run-containers: &functest-run-containers
339     name: 'functest-run-containers'
340     <<: *functest-containers
341     privileged: '{privileged}'
342     volumes: '{volumes}'
343     env: '{env}'
344     network: '{network}'
345     uid: '{uid}'
346     gid: '{gid}'
347     published_ports: '{published_ports}'
348     DASHBOARD_URL: '{DASHBOARD_URL}'
349
350 - builder:
351     name: functest-pull-containers
352     builders:
353       - shell: |
354           set +x
355           if [ "{repo}" = "_" ]; then
356             image={container}:{tag}
357           elif [ "{port}" = "None" ]; then
358             image={repo}/{container}:{tag}
359           else
360             image={repo}:{port}/{container}:{tag}
361           fi
362           sudo docker pull $image
363
364 - builder:
365     name: functest-run-containers
366     builders:
367       - shell: |
368           set +x
369           volumes=;
370           if [ "{volumes}" != "None" ]; then
371             for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \
372               do volumes="-v $i $volumes"; done
373           fi
374           env=;
375           if [ "{env}" != "None" ]; then
376             for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
377               do env="-e $i $env"; done
378           fi
379           published_ports=;
380           if [ "{published_ports}" != "None" ]; then
381             for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \
382               do published_ports="-p $i $published_ports"; done
383           fi
384           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
385           if [ "{repo}" = "_" ]; then
386             image={container}:{tag}
387           elif [ "{port}" = "None" ]; then
388             image={repo}/{container}:{tag}
389           else
390             image={repo}:{port}/{container}:{tag}
391           fi
392           sudo mkdir -p $WORKSPACE/results
393           sudo chown {uid}:{gid} $WORKSPACE/results
394           sudo docker run --rm \
395             --privileged={privileged} \
396             --network={network} \
397             $volumes \
398             $env \
399             $published_ports \
400             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
401             -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
402             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
403             -v /home/opnfv/functest/.boto:/etc/boto.cfg \
404             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
405             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
406             -e NODE_NAME=$node \
407             -e BUILD_TAG=$BUILD_TAG \
408             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
409             -e DASHBOARD_URL={DASHBOARD_URL} \
410             $image run_tests -t {test} -p -r
411
412 - builder:
413     name: functest-remove-images
414     builders:
415       - shell: |
416           set +x
417           if [ "{repo}" = "_" ]; then
418             image={container}:{tag}
419           elif [ "{port}" = "None" ]; then
420             image={repo}/{container}:{tag}
421           else
422             image={repo}:{port}/{container}:{tag}
423           fi
424           sudo docker rmi $image || true
425
426 - job-template:
427     name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
428     parameters:
429       - functest-node:
430           node: '{node}'
431     builders:
432       - functest-pull-containers:
433           <<: *functest-containers
434
435 - project:
436     name: 'functest-opnfv-functest-healthcheck-pull'
437     <<: *functest-opnfv-functest-healthcheck-params
438     jobs:
439       - 'functest-opnfv-functest-healthcheck-{tag}-pull'
440
441 - job-template:
442     name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
443     parameters:
444       - functest-node:
445           node: '{node}'
446     builders:
447       - functest-remove-images:
448           <<: *functest-containers
449
450 - project:
451     name: 'functest-opnfv-functest-healthcheck-rmi'
452     <<: *functest-opnfv-functest-healthcheck-params
453     jobs:
454       - 'functest-opnfv-functest-healthcheck-{tag}-rmi'
455
456 - job-template:
457     name: 'functest-opnfv-functest-smoke-{tag}-pull'
458     parameters:
459       - functest-node:
460           node: '{node}'
461     builders:
462       - functest-pull-containers:
463           <<: *functest-containers
464
465 - project:
466     name: 'functest-opnfv-functest-smoke-pull'
467     <<: *functest-opnfv-functest-smoke-params
468     jobs:
469       - 'functest-opnfv-functest-smoke-{tag}-pull'
470
471 - job-template:
472     name: 'functest-opnfv-functest-smoke-{tag}-rmi'
473     parameters:
474       - functest-node:
475           node: '{node}'
476     builders:
477       - functest-remove-images:
478           <<: *functest-containers
479
480 - project:
481     name: 'functest-opnfv-functest-smoke-rmi'
482     <<: *functest-opnfv-functest-smoke-params
483     jobs:
484       - 'functest-opnfv-functest-smoke-{tag}-rmi'
485
486 - job-template:
487     name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
488     parameters:
489       - functest-node:
490           node: '{node}'
491     builders:
492       - functest-pull-containers:
493           <<: *functest-containers
494
495 - project:
496     name: 'functest-opnfv-functest-smoke-cntt-pull'
497     <<: *functest-opnfv-functest-smoke-cntt-params
498     jobs:
499       - 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
500
501 - job-template:
502     name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
503     parameters:
504       - functest-node:
505           node: '{node}'
506     builders:
507       - functest-remove-images:
508           <<: *functest-containers
509
510 - project:
511     name: 'functest-opnfv-functest-smoke-cntt-rmi'
512     <<: *functest-opnfv-functest-smoke-cntt-params
513     jobs:
514       - 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
515
516 - job-template:
517     name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
518     parameters:
519       - functest-node:
520           node: '{node}'
521     builders:
522       - functest-pull-containers:
523           <<: *functest-containers
524
525 - project:
526     name: 'functest-opnfv-functest-benchmarking-pull'
527     <<: *functest-opnfv-functest-benchmarking-params
528     jobs:
529       - 'functest-opnfv-functest-benchmarking-{tag}-pull'
530
531 - job-template:
532     name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
533     parameters:
534       - functest-node:
535           node: '{node}'
536     builders:
537       - functest-remove-images:
538           <<: *functest-containers
539
540 - project:
541     name: 'functest-opnfv-functest-benchmarking-rmi'
542     <<: *functest-opnfv-functest-benchmarking-params
543     jobs:
544       - 'functest-opnfv-functest-benchmarking-{tag}-rmi'
545
546 - job-template:
547     name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
548     parameters:
549       - functest-node:
550           node: '{node}'
551     builders:
552       - functest-pull-containers:
553           <<: *functest-containers
554
555 - project:
556     name: 'functest-opnfv-functest-benchmarking-cntt-pull'
557     <<: *functest-opnfv-functest-benchmarking-cntt-params
558     jobs:
559       - 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
560
561 - job-template:
562     name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
563     parameters:
564       - functest-node:
565           node: '{node}'
566     builders:
567       - functest-remove-images:
568           <<: *functest-containers
569
570 - project:
571     name: 'functest-opnfv-functest-benchmarking-cntt-rmi'
572     <<: *functest-opnfv-functest-benchmarking-cntt-params
573     jobs:
574       - 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
575
576 - job-template:
577     name: 'functest-opnfv-functest-vnf-{tag}-pull'
578     parameters:
579       - functest-node:
580           node: '{node}'
581     builders:
582       - functest-pull-containers:
583           <<: *functest-containers
584
585 - project:
586     name: 'functest-opnfv-functest-vnf-pull'
587     <<: *functest-opnfv-functest-vnf-params
588     jobs:
589       - 'functest-opnfv-functest-vnf-{tag}-pull'
590
591 - job-template:
592     name: 'functest-opnfv-functest-vnf-{tag}-rmi'
593     parameters:
594       - functest-node:
595           node: '{node}'
596     builders:
597       - functest-remove-images:
598           <<: *functest-containers
599
600 - project:
601     name: 'functest-opnfv-functest-vnf-rmi'
602     <<: *functest-opnfv-functest-vnf-params
603     jobs:
604       - 'functest-opnfv-functest-vnf-{tag}-rmi'
605
606 - job-template:
607     name: 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
608     parameters:
609       - functest-node:
610           node: '{node}'
611       - functest-build_tag:
612           build_tag: ''
613       - functest-EXTERNAL_NETWORK:
614           EXTERNAL_NETWORK: public
615       - functest-VOLUME_DEVICE_NAME:
616           VOLUME_DEVICE_NAME: sdb
617       - functest-IMAGE_PROPERTIES:
618           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
619     builders:
620       - functest-run-containers:
621           <<: *functest-run-containers
622           test: '{test}'
623
624 - project:
625     name: 'functest-opnfv-functest-healthcheck'
626     <<: *functest-opnfv-functest-healthcheck-params
627     volumes:
628       - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
629       - /home/opnfv/functest/images:/home/opnfv/functest/images
630     env:
631       - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
632       - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
633       - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
634     published_ports:
635     container: 'functest-healthcheck'
636     test:
637       - connection_check
638       - tenantnetwork1
639       - tenantnetwork2
640       - vmready1
641       - vmready2
642       - singlevm1
643       - singlevm2
644       - vping_ssh
645       - vping_userdata
646       - cinder_test
647       - odl
648       - tempest_smoke
649       - tempest_horizon
650     privileged: 'false'
651     network: bridge
652     uid: 1000
653     gid: 1000
654     jobs:
655       - 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
656
657 - job-template:
658     name: 'functest-opnfv-functest-smoke-{tag}-{test}-run'
659     parameters:
660       - functest-node:
661           node: '{node}'
662       - functest-build_tag:
663           build_tag: ''
664       - functest-EXTERNAL_NETWORK:
665           EXTERNAL_NETWORK: public
666       - functest-VOLUME_DEVICE_NAME:
667           VOLUME_DEVICE_NAME: sdb
668       - functest-IMAGE_PROPERTIES:
669           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
670     builders:
671       - functest-run-containers:
672           <<: *functest-run-containers
673           test: '{test}'
674
675 - project:
676     name: 'functest-opnfv-functest-smoke'
677     <<: *functest-opnfv-functest-smoke-params
678     volumes:
679       - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
680       - /home/opnfv/functest/images:/home/opnfv/functest/images
681     env:
682       - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
683       - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
684       - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
685     published_ports:
686     container: 'functest-smoke'
687     test:
688       - tempest_neutron
689       - tempest_cinder
690       - tempest_keystone
691       - tempest_heat
692       - tempest_telemetry
693       - rally_sanity
694       - refstack_compute
695       - refstack_object
696       - refstack_platform
697       - tempest_full
698       - tempest_scenario
699       - tempest_slow
700       - patrole_admin
701       - patrole_member
702       - patrole_reader
703       - tempest_barbican
704       - tempest_octavia
705       - tempest_cyborg
706     privileged: 'false'
707     network: bridge
708     uid: 1000
709     gid: 1000
710     jobs:
711       - 'functest-opnfv-functest-smoke-{tag}-{test}-run'
712
713 - job-template:
714     name: 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
715     parameters:
716       - functest-node:
717           node: '{node}'
718       - functest-build_tag:
719           build_tag: ''
720       - functest-EXTERNAL_NETWORK:
721           EXTERNAL_NETWORK: public
722       - functest-VOLUME_DEVICE_NAME:
723           VOLUME_DEVICE_NAME: sdb
724       - functest-IMAGE_PROPERTIES:
725           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
726     builders:
727       - functest-run-containers:
728           <<: *functest-run-containers
729           test: '{test}'
730
731 - project:
732     name: 'functest-opnfv-functest-smoke-cntt'
733     <<: *functest-opnfv-functest-smoke-cntt-params
734     volumes:
735       - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
736       - /home/opnfv/functest/images:/home/opnfv/functest/images
737     env:
738       - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
739       - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
740       - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
741     published_ports:
742     container: 'functest-smoke-cntt'
743     test:
744       - tempest_neutron_cntt
745       - tempest_cinder_cntt
746       - tempest_keystone_cntt
747       - tempest_heat_cntt
748       - rally_sanity_cntt
749       - tempest_full_cntt
750       - tempest_scenario_cntt
751       - tempest_slow_cntt
752     privileged: 'false'
753     network: bridge
754     uid: 1000
755     gid: 1000
756     jobs:
757       - 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
758
759 - job-template:
760     name: 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
761     parameters:
762       - functest-node:
763           node: '{node}'
764       - functest-build_tag:
765           build_tag: ''
766       - functest-EXTERNAL_NETWORK:
767           EXTERNAL_NETWORK: public
768       - functest-VOLUME_DEVICE_NAME:
769           VOLUME_DEVICE_NAME: sdb
770       - functest-IMAGE_PROPERTIES:
771           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
772     builders:
773       - functest-run-containers:
774           <<: *functest-run-containers
775           test: '{test}'
776
777 - project:
778     name: 'functest-opnfv-functest-benchmarking'
779     <<: *functest-opnfv-functest-benchmarking-params
780     volumes:
781       - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
782       - /home/opnfv/functest/images:/home/opnfv/functest/images
783     env:
784       - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
785       - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
786       - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
787     published_ports:
788     container: 'functest-benchmarking'
789     test:
790       - rally_full
791       - rally_jobs
792       - vmtp
793       - shaker
794     privileged: 'false'
795     network: bridge
796     uid: 1000
797     gid: 1000
798     jobs:
799       - 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
800
801 - job-template:
802     name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
803     parameters:
804       - functest-node:
805           node: '{node}'
806       - functest-build_tag:
807           build_tag: ''
808       - functest-EXTERNAL_NETWORK:
809           EXTERNAL_NETWORK: public
810       - functest-VOLUME_DEVICE_NAME:
811           VOLUME_DEVICE_NAME: sdb
812       - functest-IMAGE_PROPERTIES:
813           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
814     builders:
815       - functest-run-containers:
816           <<: *functest-run-containers
817           test: '{test}'
818
819 - project:
820     name: 'functest-opnfv-functest-benchmarking-cntt'
821     <<: *functest-opnfv-functest-benchmarking-cntt-params
822     volumes:
823       - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
824       - /home/opnfv/functest/images:/home/opnfv/functest/images
825     env:
826       - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
827       - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
828       - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
829     published_ports:
830     container: 'functest-benchmarking-cntt'
831     test:
832       - rally_full_cntt
833       - rally_jobs_cntt
834     privileged: 'false'
835     network: bridge
836     uid: 1000
837     gid: 1000
838     jobs:
839       - 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
840
841 - job-template:
842     name: 'functest-opnfv-functest-vnf-{tag}-{test}-run'
843     parameters:
844       - functest-node:
845           node: '{node}'
846       - functest-build_tag:
847           build_tag: ''
848       - functest-EXTERNAL_NETWORK:
849           EXTERNAL_NETWORK: public
850       - functest-VOLUME_DEVICE_NAME:
851           VOLUME_DEVICE_NAME: sdb
852       - functest-IMAGE_PROPERTIES:
853           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
854     builders:
855       - functest-run-containers:
856           <<: *functest-run-containers
857           test: '{test}'
858
859 - project:
860     name: 'functest-opnfv-functest-vnf'
861     <<: *functest-opnfv-functest-vnf-params
862     volumes:
863       - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
864       - /home/opnfv/functest/images:/home/opnfv/functest/images
865     env:
866       - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
867       - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
868       - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
869     published_ports:
870     container: 'functest-vnf'
871     test:
872       - cloudify
873       - cloudify_ims
874       - heat_ims
875       - vyos_vrouter
876       - juju_epc
877     privileged: 'false'
878     network: bridge
879     uid: 1000
880     gid: 1000
881     jobs:
882       - 'functest-opnfv-functest-vnf-{tag}-{test}-run'
883
884 - builder:
885     name: functest-zip
886     builders:
887       - shell: |
888           set +x
889           volumes=;
890           if [ "{volumes}" != "None" ]; then
891             for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \
892               do volumes="-v $i $volumes"; done
893           fi
894           env=;
895           if [ "{env}" != "None" ]; then
896             for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
897               do env="-e $i $env"; done
898           fi
899           published_ports=;
900           if [ "{published_ports}" != "None" ]; then
901             for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \
902               do published_ports="-p $i $published_ports"; done
903           fi
904           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
905           if [ "{repo}" = "_" ]; then
906             image={container}:{tag}
907           elif [ "{port}" = "None" ]; then
908             image={repo}/{container}:{tag}
909           else
910             image={repo}:{port}/{container}:{tag}
911           fi
912           sudo mkdir -p $WORKSPACE/results
913           sudo chown {uid}:{gid} $WORKSPACE/results
914           sudo docker run --rm \
915             --privileged={privileged} \
916             --network={network} \
917             $volumes \
918             $env \
919             $published_ports \
920             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
921             -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
922             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
923             -v /home/opnfv/functest/.boto:/etc/boto.cfg \
924             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
925             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
926             -e NODE_NAME=$node \
927             -e BUILD_TAG=$BUILD_TAG \
928             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
929             -e DASHBOARD_URL={DASHBOARD_URL} \
930             $image zip_campaign
931
932 - job-template:
933     name: 'functest-{tag}-zip'
934     parameters:
935       - functest-node:
936           node: '{node}'
937       - functest-build_tag:
938           build_tag: ''
939       - functest-EXTERNAL_NETWORK:
940           EXTERNAL_NETWORK: public
941       - functest-VOLUME_DEVICE_NAME:
942           VOLUME_DEVICE_NAME: sdb
943       - functest-IMAGE_PROPERTIES:
944           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
945     builders:
946       - functest-zip:
947           <<: *functest-run-containers
948
949 - project:
950     name: 'functest-zip'
951     <<: *functest-opnfv-functest-healthcheck-params
952     volumes:
953       - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
954       - /home/opnfv/functest/images:/home/opnfv/functest/images
955     env:
956       - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
957       - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
958       - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
959     published_ports:
960     container: 'functest-healthcheck'
961     privileged: 'false'
962     network: bridge
963     uid: 1000
964     gid: 1000
965     jobs:
966       - 'functest-{tag}-zip'
967
968 - job-template:
969     name: 'functest-{tag}-daily'
970     project-type: multijob
971     triggers:
972       - timed: '@weekly'
973     parameters:
974       - functest-node:
975           node: '{node}'
976       - functest-build_tag:
977           build_tag: ''
978       - functest-EXTERNAL_NETWORK:
979           EXTERNAL_NETWORK: public
980       - functest-VOLUME_DEVICE_NAME:
981           VOLUME_DEVICE_NAME: sdb
982       - functest-IMAGE_PROPERTIES:
983           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
984     # PyYAML and yamllint differ here
985     # see https://github.com/yaml/pyyaml/issues/234
986     # yamllint disable rule:indentation
987     properties:
988       - build-blocker:
989           blocking-jobs:
990           - ^functest-(pi-)*{tag}-(daily|docker|review)$
991     # yamllint enable rule:indentation
992     builders:
993       - multijob:
994           name: remove former images
995           projects:
996             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
997               <<: *functest-jobs
998             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
999               <<: *functest-jobs
1000             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
1001               <<: *functest-jobs
1002             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
1003               <<: *functest-jobs
1004             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
1005               <<: *functest-jobs
1006             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
1007               <<: *functest-jobs
1008       - multijob:
1009           name: pull containers
1010           projects:
1011             - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
1012               <<: *functest-jobs
1013             - name: 'functest-opnfv-functest-smoke-{tag}-pull'
1014               <<: *functest-jobs
1015             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
1016               <<: *functest-jobs
1017             - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
1018               <<: *functest-jobs
1019             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
1020               <<: *functest-jobs
1021             - name: 'functest-opnfv-functest-vnf-{tag}-pull'
1022               <<: *functest-jobs
1023       - multijob:
1024           name: opnfv/functest-healthcheck:{tag}
1025           projects:
1026             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1027               <<: *functest-jobs
1028             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1029               <<: *functest-jobs
1030             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1031               <<: *functest-jobs
1032             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1033               <<: *functest-jobs
1034             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1035               <<: *functest-jobs
1036             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1037               <<: *functest-jobs
1038             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1039               <<: *functest-jobs
1040             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1041               <<: *functest-jobs
1042             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1043               <<: *functest-jobs
1044             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1045               <<: *functest-jobs
1046             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1047               <<: *functest-jobs
1048             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1049               <<: *functest-jobs
1050             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1051               <<: *functest-jobs
1052       - multijob:
1053           name: opnfv/functest-smoke:{tag}
1054           projects:
1055             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1056               <<: *functest-jobs
1057             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1058               <<: *functest-jobs
1059             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1060               <<: *functest-jobs
1061             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1062               <<: *functest-jobs
1063             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1064               <<: *functest-jobs
1065             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1066               <<: *functest-jobs
1067             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1068               <<: *functest-jobs
1069             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1070               <<: *functest-jobs
1071             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1072               <<: *functest-jobs
1073             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1074               <<: *functest-jobs
1075             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1076               <<: *functest-jobs
1077             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1078               <<: *functest-jobs
1079             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1080               <<: *functest-jobs
1081             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1082               <<: *functest-jobs
1083             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1084               <<: *functest-jobs
1085             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1086               <<: *functest-jobs
1087             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1088               <<: *functest-jobs
1089             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1090               <<: *functest-jobs
1091       - multijob:
1092           name: opnfv/functest-smoke-cntt:{tag}
1093           projects:
1094             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1095               <<: *functest-jobs
1096             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1097               <<: *functest-jobs
1098             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1099               <<: *functest-jobs
1100             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1101               <<: *functest-jobs
1102             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1103               <<: *functest-jobs
1104             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1105               <<: *functest-jobs
1106             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1107               <<: *functest-jobs
1108             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1109               <<: *functest-jobs
1110       - multijob:
1111           name: opnfv/functest-benchmarking:{tag}
1112           projects:
1113             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1114               <<: *functest-jobs
1115             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1116               <<: *functest-jobs
1117             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1118               <<: *functest-jobs
1119             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1120               <<: *functest-jobs
1121       - multijob:
1122           name: opnfv/functest-benchmarking-cntt:{tag}
1123           projects:
1124             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1125               <<: *functest-jobs
1126             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1127               <<: *functest-jobs
1128       - multijob:
1129           name: opnfv/functest-vnf:{tag}
1130           projects:
1131             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1132               <<: *functest-jobs
1133             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1134               <<: *functest-jobs
1135             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1136               <<: *functest-jobs
1137             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1138               <<: *functest-jobs
1139             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1140               <<: *functest-jobs
1141       - multijob:
1142           name: dump all campaign data
1143           projects:
1144             - name: 'functest-{tag}-zip'
1145               <<: *functest-jobs
1146     publishers:
1147       - email-ext:
1148           failure: false
1149           first-failure: true
1150           fixed: true
1151           recipients: cedric.ollivier@orange.com
1152
1153 - project:
1154     name: 'functest-daily'
1155     <<: *functest-params
1156     jobs:
1157       - 'functest-{tag}-daily'
1158
1159 - view:
1160     name: functest
1161     view-type: list
1162     columns:
1163       - status
1164       - weather
1165       - job
1166       - last-success
1167       - last-failure
1168       - last-duration
1169     regex: ^functest-[a-z0-9.-]+-daily$
1170
1171 - functest-build-containers: &functest-build-containers
1172     name: 'functest-build-containers'
1173     <<: *functest-containers
1174     ref_arg: '{ref_arg}'
1175     path: '{path}'
1176     build_args: '{build_args}'
1177     from: '{from}'
1178
1179 - builder:
1180     name: functest-build-containers
1181     builders:
1182       - shell: |
1183           set +x
1184           if [ "{repo}" = "_" ]; then
1185             image={container}:{tag}
1186           elif [ "{port}" = "None" ]; then
1187             image={repo}/{container}:{tag}
1188           else
1189             image={repo}:{port}/{container}:{tag}
1190           fi
1191           build_args=""
1192           if [ "{build_args}" != "None" ]; then
1193             for i in $(echo {build_args} | tr -d '[]' |sed "s/, / /g" ); \
1194               do build_args="--build-arg $i $build_args"; done
1195           fi
1196           if [ "{ref_arg}" != "None" ]; then
1197             build_args="$build_args --build-arg {ref_arg}={ref}"
1198           fi
1199           cd {path}
1200           if [ "{from}" != "None" ]; then
1201               sed -i {from} Dockerfile
1202           fi
1203           sudo docker build $build_args \
1204             --pull=false --no-cache --force-rm=true \
1205             -t $image .
1206
1207 - scm:
1208     name: functest-scm
1209     scm:
1210       - git:
1211           url: 'https://gerrit.opnfv.org/gerrit/functest'
1212           refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
1213           branches:
1214             - '{ref}'
1215
1216 - functest-dep: &functest-dep
1217     name: 'functest-containers'
1218     repo: '{repo}'
1219     container: '{container}'
1220     port: '{port}'
1221     tag: '{dependency}'
1222
1223 - job-template:
1224     name: 'functest-{tag}-dep-pull'
1225     parameters:
1226       - functest-node:
1227           node: '{node}'
1228     builders:
1229       - functest-pull-containers:
1230           <<: *functest-dep
1231
1232 - functest-dep-params: &functest-dep-params
1233     name: 'functest-dep-params'
1234     repo: '_'
1235     container: 'alpine'
1236     port:
1237     tag:
1238       - latest:
1239           dependency: 3.14
1240       - zed:
1241           dependency: 3.14
1242       - yoga:
1243           dependency: 3.14
1244       - xena:
1245           dependency: 3.14
1246       - wallaby:
1247           dependency: 3.13
1248
1249 - project:
1250     name: 'functest-dep-pull'
1251     <<: *functest-dep-params
1252     jobs:
1253       - 'functest-{tag}-dep-pull'
1254
1255 - job-template:
1256     name: 'functest-{tag}-dep-rmi'
1257     parameters:
1258       - functest-node:
1259           node: '{node}'
1260     builders:
1261       - functest-remove-images:
1262           <<: *functest-dep
1263
1264 - project:
1265     name: 'functest-dep-rmi'
1266     <<: *functest-dep-params
1267     jobs:
1268       - 'functest-{tag}-dep-rmi'
1269
1270 - builder:
1271     name: functest-tox
1272     builders:
1273       - shell: |
1274           set +x
1275           sudo apt-get -o DPkg::Lock::Timeout=300 update && \
1276           sudo DEBIAN_FRONTEND=noninteractive apt-get \
1277             -o DPkg::Lock::Timeout=300 dist-upgrade -y
1278           sudo DEBIAN_FRONTEND=noninteractive \
1279           apt-get -o DPkg::Lock::Timeout=300 install software-properties-common gpg -y
1280           sudo add-apt-repository -y ppa:deadsnakes/ppa
1281           sudo apt-get -o DPkg::Lock::Timeout=300 update && \
1282           sudo DEBIAN_FRONTEND=noninteractive apt-get \
1283             -o DPkg::Lock::Timeout=300 install \
1284             libxml2-dev libxslt-dev libffi-dev libjpeg-dev \
1285             python3.10 python3.10-dev python3.10-distutils \
1286             python3.9 python3.9-dev python3.9-distutils \
1287             python3.8 python3.8-dev python3.8-distutils \
1288             python3-pip enchant-2 -y
1289           sudo pip3 install tox
1290
1291           tox
1292
1293 - job-template:
1294     name: 'functest-{tag}-tox'
1295     scm:
1296       - functest-scm:
1297           ref: $GERRIT_REFSPEC
1298     triggers:
1299       - functest-patchset-created:
1300           branch: '{branch}'
1301     parameters:
1302       - functest-node:
1303           node: '{node}'
1304     builders:
1305       - functest-tox:
1306
1307 - project:
1308     name: functest-tox
1309     <<: *functest-params
1310     jobs:
1311       - 'functest-{tag}-tox'
1312
1313 - job-template:
1314     name: 'functest-opnfv-functest-core-{tag}-gate'
1315     parameters:
1316       - functest-node:
1317           node: '{node}'
1318     scm:
1319       - functest-scm:
1320           ref: $GERRIT_REFSPEC
1321     builders:
1322       - functest-build-containers:
1323           <<: *functest-build-containers
1324           ref: $GERRIT_REFSPEC
1325           build_args: '{build_args}'
1326
1327 - project:
1328     name: functest-opnfv-functest-core-gate
1329     <<: *functest-params
1330     repo: opnfv
1331     port:
1332     container: functest-core
1333     ref_arg: BRANCH
1334     path: docker/core
1335     jobs:
1336       - 'functest-opnfv-functest-core-{tag}-gate'
1337
1338 - job-template:
1339     name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1340     parameters:
1341       - functest-node:
1342           node: '{node}'
1343     scm:
1344       - functest-scm:
1345           ref: $GERRIT_REFSPEC
1346     builders:
1347       - functest-build-containers:
1348           <<: *functest-build-containers
1349           ref: $GERRIT_REFSPEC
1350           build_args: '{build_args}'
1351
1352 - project:
1353     name: functest-opnfv-functest-healthcheck-gate
1354     <<: *functest-params
1355     repo: opnfv
1356     port:
1357     container: functest-healthcheck
1358     ref_arg: BRANCH
1359     path: docker/healthcheck
1360     jobs:
1361       - 'functest-opnfv-functest-healthcheck-{tag}-gate'
1362
1363 - job-template:
1364     name: 'functest-opnfv-functest-smoke-{tag}-gate'
1365     parameters:
1366       - functest-node:
1367           node: '{node}'
1368     scm:
1369       - functest-scm:
1370           ref: $GERRIT_REFSPEC
1371     builders:
1372       - functest-build-containers:
1373           <<: *functest-build-containers
1374           ref: $GERRIT_REFSPEC
1375           build_args: '{build_args}'
1376
1377 - project:
1378     name: functest-opnfv-functest-smoke-gate
1379     <<: *functest-params
1380     repo: opnfv
1381     port:
1382     container: functest-smoke
1383     ref_arg: BRANCH
1384     path: docker/smoke
1385     jobs:
1386       - 'functest-opnfv-functest-smoke-{tag}-gate'
1387
1388 - job-template:
1389     name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1390     parameters:
1391       - functest-node:
1392           node: '{node}'
1393     scm:
1394       - functest-scm:
1395           ref: $GERRIT_REFSPEC
1396     builders:
1397       - functest-build-containers:
1398           <<: *functest-build-containers
1399           ref: $GERRIT_REFSPEC
1400           build_args: '{build_args}'
1401
1402 - project:
1403     name: functest-opnfv-functest-benchmarking-gate
1404     <<: *functest-params
1405     repo: opnfv
1406     port:
1407     container: functest-benchmarking
1408     ref_arg: BRANCH
1409     path: docker/benchmarking
1410     jobs:
1411       - 'functest-opnfv-functest-benchmarking-{tag}-gate'
1412
1413 - job-template:
1414     name: 'functest-opnfv-functest-vnf-{tag}-gate'
1415     parameters:
1416       - functest-node:
1417           node: '{node}'
1418     scm:
1419       - functest-scm:
1420           ref: $GERRIT_REFSPEC
1421     builders:
1422       - functest-build-containers:
1423           <<: *functest-build-containers
1424           ref: $GERRIT_REFSPEC
1425           build_args: '{build_args}'
1426
1427 - project:
1428     name: functest-opnfv-functest-vnf-gate
1429     <<: *functest-params
1430     repo: opnfv
1431     port:
1432     container: functest-vnf
1433     ref_arg:
1434     path: docker/vnf
1435     jobs:
1436       - 'functest-opnfv-functest-vnf-{tag}-gate'
1437
1438 - job-template:
1439     name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1440     parameters:
1441       - functest-node:
1442           node: '{node}'
1443     scm:
1444       - functest-scm:
1445           ref: $GERRIT_REFSPEC
1446     builders:
1447       - functest-build-containers:
1448           <<: *functest-build-containers
1449           ref: $GERRIT_REFSPEC
1450           build_args: '{build_args}'
1451
1452 - project:
1453     name: functest-opnfv-functest-smoke-cntt-gate
1454     <<: *functest-params
1455     repo: opnfv
1456     port:
1457     container: functest-smoke-cntt
1458     ref_arg: BRANCH
1459     path: docker/smoke-cntt
1460     jobs:
1461       - 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1462
1463 - job-template:
1464     name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1465     parameters:
1466       - functest-node:
1467           node: '{node}'
1468     scm:
1469       - functest-scm:
1470           ref: $GERRIT_REFSPEC
1471     builders:
1472       - functest-build-containers:
1473           <<: *functest-build-containers
1474           ref: $GERRIT_REFSPEC
1475           build_args: '{build_args}'
1476
1477 - project:
1478     name: functest-opnfv-functest-benchmarking-cntt-gate
1479     <<: *functest-params
1480     repo: opnfv
1481     port:
1482     container: functest-benchmarking-cntt
1483     ref_arg: BRANCH
1484     path: docker/benchmarking-cntt
1485     jobs:
1486       - 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1487
1488 - trigger:
1489     name: functest-patchset-created
1490     triggers:
1491       - gerrit:
1492           trigger-on:
1493             - patchset-created-event
1494             - comment-added-contains-event:
1495                 comment-contains-value: 'recheck'
1496             - comment-added-contains-event:
1497                 comment-contains-value: 'reverify'
1498           projects:
1499             - project-compare-type: 'ANT'
1500               project-pattern: 'functest'
1501               branches:
1502                 - branch-compare-type: 'ANT'
1503                   branch-pattern: '**/{branch}'
1504
1505 - job-template:
1506     name: 'functest-{tag}-review'
1507     project-type: multijob
1508     triggers:
1509       - functest-patchset-created:
1510           branch: '{branch}'
1511     parameters:
1512       - functest-node:
1513           node: '{node}'
1514       - functest-build_tag:
1515           build_tag: ''
1516       - functest-EXTERNAL_NETWORK:
1517           EXTERNAL_NETWORK: public
1518       - functest-VOLUME_DEVICE_NAME:
1519           VOLUME_DEVICE_NAME: sdb
1520       - functest-IMAGE_PROPERTIES:
1521           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
1522     # PyYAML and yamllint differ here
1523     # see https://github.com/yaml/pyyaml/issues/234
1524     # yamllint disable rule:indentation
1525     properties:
1526       - build-blocker:
1527           blocking-jobs:
1528           - ^functest-(pi-)*{tag}-(daily|docker|review)$
1529     # yamllint enable rule:indentation
1530     builders:
1531       - multijob:
1532           name: remove former images
1533           projects:
1534             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
1535               <<: *functest-jobs
1536             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
1537               <<: *functest-jobs
1538             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
1539               <<: *functest-jobs
1540             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
1541               <<: *functest-jobs
1542             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
1543               <<: *functest-jobs
1544             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
1545               <<: *functest-jobs
1546       - multijob:
1547           name: remove dependency
1548           projects:
1549             - name: 'functest-{tag}-dep-rmi'
1550               <<: *functest-jobs
1551       - multijob:
1552           name: pull dependency
1553           projects:
1554             - name: 'functest-{tag}-dep-pull'
1555               <<: *functest-jobs
1556       - multijob:
1557           name: build opnfv/functest-core
1558           projects:
1559             - name: 'functest-opnfv-functest-core-{tag}-gate'
1560               <<: *functest-jobs
1561       - multijob:
1562           name: build containers
1563           projects:
1564             - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1565               <<: *functest-jobs
1566             - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1567               <<: *functest-jobs
1568             - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1569               <<: *functest-jobs
1570             - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1571               <<: *functest-jobs
1572       - multijob:
1573           name: build cntt containers
1574           projects:
1575             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1576               <<: *functest-jobs
1577             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1578               <<: *functest-jobs
1579       - multijob:
1580           name: opnfv/functest-healthcheck:{tag}
1581           projects:
1582             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1583               <<: *functest-jobs
1584             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1585               <<: *functest-jobs
1586             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1587               <<: *functest-jobs
1588             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1589               <<: *functest-jobs
1590             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1591               <<: *functest-jobs
1592             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1593               <<: *functest-jobs
1594             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1595               <<: *functest-jobs
1596             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1597               <<: *functest-jobs
1598             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1599               <<: *functest-jobs
1600             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1601               <<: *functest-jobs
1602             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1603               <<: *functest-jobs
1604             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1605               <<: *functest-jobs
1606             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1607               <<: *functest-jobs
1608       - multijob:
1609           name: opnfv/functest-smoke:{tag}
1610           projects:
1611             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1612               <<: *functest-jobs
1613             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1614               <<: *functest-jobs
1615             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1616               <<: *functest-jobs
1617             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1618               <<: *functest-jobs
1619             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1620               <<: *functest-jobs
1621             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1622               <<: *functest-jobs
1623             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1624               <<: *functest-jobs
1625             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1626               <<: *functest-jobs
1627             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1628               <<: *functest-jobs
1629             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1630               <<: *functest-jobs
1631             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1632               <<: *functest-jobs
1633             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1634               <<: *functest-jobs
1635             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1636               <<: *functest-jobs
1637             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1638               <<: *functest-jobs
1639             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1640               <<: *functest-jobs
1641             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1642               <<: *functest-jobs
1643             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1644               <<: *functest-jobs
1645             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1646               <<: *functest-jobs
1647       - multijob:
1648           name: opnfv/functest-smoke-cntt:{tag}
1649           projects:
1650             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1651               <<: *functest-jobs
1652             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1653               <<: *functest-jobs
1654             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1655               <<: *functest-jobs
1656             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1657               <<: *functest-jobs
1658             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1659               <<: *functest-jobs
1660             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1661               <<: *functest-jobs
1662             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1663               <<: *functest-jobs
1664             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1665               <<: *functest-jobs
1666       - multijob:
1667           name: opnfv/functest-benchmarking:{tag}
1668           projects:
1669             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1670               <<: *functest-jobs
1671             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1672               <<: *functest-jobs
1673             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1674               <<: *functest-jobs
1675             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1676               <<: *functest-jobs
1677       - multijob:
1678           name: opnfv/functest-benchmarking-cntt:{tag}
1679           projects:
1680             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1681               <<: *functest-jobs
1682             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1683               <<: *functest-jobs
1684       - multijob:
1685           name: opnfv/functest-vnf:{tag}
1686           projects:
1687             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1688               <<: *functest-jobs
1689             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1690               <<: *functest-jobs
1691             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1692               <<: *functest-jobs
1693             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1694               <<: *functest-jobs
1695             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1696               <<: *functest-jobs
1697     publishers:
1698       - email-ext:
1699           failure: false
1700           first-failure: true
1701           fixed: true
1702           recipients: cedric.ollivier@orange.com
1703
1704 - project:
1705     name: 'functest-review'
1706     <<: *functest-params
1707     jobs:
1708       - 'functest-{tag}-review'
1709
1710 - view:
1711     name: functest-review
1712     view-type: list
1713     columns:
1714       - status
1715       - weather
1716       - job
1717       - last-success
1718       - last-failure
1719       - last-duration
1720     regex: ^functest-[a-z0-9.-]+-review$
1721
1722 - view:
1723     name: functest-tox
1724     view-type: list
1725     columns:
1726       - status
1727       - weather
1728       - job
1729       - last-success
1730       - last-failure
1731       - last-duration
1732     regex: ^functest-[a-z0-9.-]+-tox$
1733
1734 - builder:
1735     name: functest-push-containers
1736     builders:
1737       - shell: |
1738           set +x
1739           if [ "{repo}" = "_" ]; then
1740             image={container}:{tag}
1741           elif [ "{port}" = "None" ]; then
1742             image={repo}/{container}:{tag}
1743           else
1744             image={repo}:{port}/{container}:{tag}
1745           fi
1746           sudo docker push $image
1747
1748 - trigger:
1749     name: functest-commit
1750     triggers:
1751       - pollscm:
1752           cron: "*/30 * * * *"
1753
1754 - job-template:
1755     name: 'functest-opnfv-functest-core-{tag}-build'
1756     parameters:
1757       - functest-node:
1758           node: '{node}'
1759     scm:
1760       - functest-scm:
1761           ref: '{branch}'
1762     builders:
1763       - functest-build-containers:
1764           <<: *functest-build-containers
1765           ref: '{branch}'
1766           build_args: '{build_args}'
1767       - functest-push-containers:
1768           <<: *functest-build-containers
1769           ref: '{branch}'
1770
1771 - project:
1772     name: functest-opnfv-functest-core-build
1773     <<: *functest-params
1774     repo: opnfv
1775     container: functest-core
1776     port:
1777     ref_arg: BRANCH
1778     path: docker/core
1779     jobs:
1780       - 'functest-opnfv-functest-core-{tag}-build'
1781
1782 - job-template:
1783     name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1784     parameters:
1785       - functest-node:
1786           node: '{node}'
1787     scm:
1788       - functest-scm:
1789           ref: '{branch}'
1790     builders:
1791       - functest-build-containers:
1792           <<: *functest-build-containers
1793           ref: '{branch}'
1794           build_args: '{build_args}'
1795       - functest-push-containers:
1796           <<: *functest-build-containers
1797           ref: '{branch}'
1798
1799 - project:
1800     name: functest-opnfv-functest-healthcheck-build
1801     <<: *functest-params
1802     repo: opnfv
1803     container: functest-healthcheck
1804     port:
1805     ref_arg: BRANCH
1806     path: docker/healthcheck
1807     jobs:
1808       - 'functest-opnfv-functest-healthcheck-{tag}-build'
1809
1810 - job-template:
1811     name: 'functest-opnfv-functest-smoke-{tag}-build'
1812     parameters:
1813       - functest-node:
1814           node: '{node}'
1815     scm:
1816       - functest-scm:
1817           ref: '{branch}'
1818     builders:
1819       - functest-build-containers:
1820           <<: *functest-build-containers
1821           ref: '{branch}'
1822           build_args: '{build_args}'
1823       - functest-push-containers:
1824           <<: *functest-build-containers
1825           ref: '{branch}'
1826
1827 - project:
1828     name: functest-opnfv-functest-smoke-build
1829     <<: *functest-params
1830     repo: opnfv
1831     container: functest-smoke
1832     port:
1833     ref_arg: BRANCH
1834     path: docker/smoke
1835     jobs:
1836       - 'functest-opnfv-functest-smoke-{tag}-build'
1837
1838 - job-template:
1839     name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1840     parameters:
1841       - functest-node:
1842           node: '{node}'
1843     scm:
1844       - functest-scm:
1845           ref: '{branch}'
1846     builders:
1847       - functest-build-containers:
1848           <<: *functest-build-containers
1849           ref: '{branch}'
1850           build_args: '{build_args}'
1851       - functest-push-containers:
1852           <<: *functest-build-containers
1853           ref: '{branch}'
1854
1855 - project:
1856     name: functest-opnfv-functest-benchmarking-build
1857     <<: *functest-params
1858     repo: opnfv
1859     container: functest-benchmarking
1860     port:
1861     ref_arg: BRANCH
1862     path: docker/benchmarking
1863     jobs:
1864       - 'functest-opnfv-functest-benchmarking-{tag}-build'
1865
1866 - job-template:
1867     name: 'functest-opnfv-functest-vnf-{tag}-build'
1868     parameters:
1869       - functest-node:
1870           node: '{node}'
1871     scm:
1872       - functest-scm:
1873           ref: '{branch}'
1874     builders:
1875       - functest-build-containers:
1876           <<: *functest-build-containers
1877           ref: '{branch}'
1878           build_args: '{build_args}'
1879       - functest-push-containers:
1880           <<: *functest-build-containers
1881           ref: '{branch}'
1882
1883 - project:
1884     name: functest-opnfv-functest-vnf-build
1885     <<: *functest-params
1886     repo: opnfv
1887     container: functest-vnf
1888     port:
1889     ref_arg:
1890     path: docker/vnf
1891     jobs:
1892       - 'functest-opnfv-functest-vnf-{tag}-build'
1893
1894 - job-template:
1895     name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1896     parameters:
1897       - functest-node:
1898           node: '{node}'
1899     scm:
1900       - functest-scm:
1901           ref: '{branch}'
1902     builders:
1903       - functest-build-containers:
1904           <<: *functest-build-containers
1905           ref: '{branch}'
1906           build_args: '{build_args}'
1907       - functest-push-containers:
1908           <<: *functest-build-containers
1909           ref: '{branch}'
1910
1911 - project:
1912     name: functest-opnfv-functest-smoke-cntt-build
1913     <<: *functest-params
1914     repo: opnfv
1915     container: functest-smoke-cntt
1916     port:
1917     ref_arg: BRANCH
1918     path: docker/smoke-cntt
1919     jobs:
1920       - 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1921
1922 - job-template:
1923     name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1924     parameters:
1925       - functest-node:
1926           node: '{node}'
1927     scm:
1928       - functest-scm:
1929           ref: '{branch}'
1930     builders:
1931       - functest-build-containers:
1932           <<: *functest-build-containers
1933           ref: '{branch}'
1934           build_args: '{build_args}'
1935       - functest-push-containers:
1936           <<: *functest-build-containers
1937           ref: '{branch}'
1938
1939 - project:
1940     name: functest-opnfv-functest-benchmarking-cntt-build
1941     <<: *functest-params
1942     repo: opnfv
1943     container: functest-benchmarking-cntt
1944     port:
1945     ref_arg: BRANCH
1946     path: docker/benchmarking-cntt
1947     jobs:
1948       - 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1949
1950 - job-template:
1951     name: 'functest-{tag}-docker'
1952     project-type: multijob
1953     triggers:
1954       - functest-commit
1955     scm:
1956       - functest-scm:
1957           ref: '{branch}'
1958     parameters:
1959       - functest-node:
1960           node: '{node}'
1961     # PyYAML and yamllint differ here
1962     # see https://github.com/yaml/pyyaml/issues/234
1963     # yamllint disable rule:indentation
1964     properties:
1965       - build-blocker:
1966           blocking-jobs:
1967           - ^functest-(pi-)*{tag}-(daily|docker|review)$
1968     # yamllint enable rule:indentation
1969     builders:
1970       - multijob:
1971           name: remove dependency
1972           projects:
1973             - name: 'functest-{tag}-dep-rmi'
1974               <<: *functest-jobs
1975       - multijob:
1976           name: pull dependency
1977           projects:
1978             - name: 'functest-{tag}-dep-pull'
1979               <<: *functest-jobs
1980       - multijob:
1981           name: build opnfv/functest-core
1982           projects:
1983             - name: 'functest-opnfv-functest-core-{tag}-build'
1984               <<: *functest-jobs
1985       - multijob:
1986           name: build containers
1987           projects:
1988             - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1989               <<: *functest-jobs
1990             - name: 'functest-opnfv-functest-smoke-{tag}-build'
1991               <<: *functest-jobs
1992             - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1993               <<: *functest-jobs
1994             - name: 'functest-opnfv-functest-vnf-{tag}-build'
1995               <<: *functest-jobs
1996       - multijob:
1997           name: build cntt containers
1998           projects:
1999             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
2000               <<: *functest-jobs
2001             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
2002               <<: *functest-jobs
2003     publishers:
2004       - email-ext:
2005           failure: false
2006           first-failure: true
2007           fixed: true
2008           recipients: cedric.ollivier@orange.com
2009
2010 - project:
2011     name: 'functest-docker'
2012     <<: *functest-params
2013     jobs:
2014       - 'functest-{tag}-docker'
2015
2016 - builder:
2017     name: functest-trivy
2018     builders:
2019       - shell: |
2020           sudo apt-get -o DPkg::Lock::Timeout=300 update && \
2021           sudo DEBIAN_FRONTEND=noninteractive apt-get \
2022             -o DPkg::Lock::Timeout=300 install curl -y
2023
2024           curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
2025           if [ "{repo}" = "_" ]; then
2026             image={container}:{tag}
2027           elif [ "{port}" = "None" ]; then
2028             image={repo}/{container}:{tag}
2029           else
2030             image={repo}:{port}/{container}:{tag}
2031           fi
2032           ./trivy image --exit-code 1 $image
2033
2034 - job-template:
2035     name: 'functest-opnfv-functest-core-{tag}-trivy'
2036     triggers:
2037       - timed: '@weekly'
2038     parameters:
2039       - functest-node:
2040           node: '{node}'
2041     builders:
2042       - functest-trivy:
2043           <<: *functest-containers
2044     publishers:
2045       - email-ext:
2046           failure: false
2047           first-failure: true
2048           fixed: true
2049           recipients: cedric.ollivier@orange.com
2050
2051 - project:
2052     name: 'functest-opnfv-functest-core-trivy'
2053     <<: *functest-params
2054     repo: 'opnfv'
2055     container: 'functest-core'
2056     port:
2057     jobs:
2058       - 'functest-opnfv-functest-core-{tag}-trivy'
2059
2060 - job-template:
2061     name: 'functest-opnfv-functest-healthcheck-{tag}-trivy'
2062     triggers:
2063       - timed: '@weekly'
2064     parameters:
2065       - functest-node:
2066           node: '{node}'
2067     builders:
2068       - functest-trivy:
2069           <<: *functest-containers
2070     publishers:
2071       - email-ext:
2072           failure: false
2073           first-failure: true
2074           fixed: true
2075           recipients: cedric.ollivier@orange.com
2076
2077 - project:
2078     name: 'functest-opnfv-functest-healthcheck-trivy'
2079     <<: *functest-params
2080     repo: 'opnfv'
2081     container: 'functest-healthcheck'
2082     port:
2083     jobs:
2084       - 'functest-opnfv-functest-healthcheck-{tag}-trivy'
2085
2086 - job-template:
2087     name: 'functest-opnfv-functest-smoke-{tag}-trivy'
2088     triggers:
2089       - timed: '@weekly'
2090     parameters:
2091       - functest-node:
2092           node: '{node}'
2093     builders:
2094       - functest-trivy:
2095           <<: *functest-containers
2096     publishers:
2097       - email-ext:
2098           failure: false
2099           first-failure: true
2100           fixed: true
2101           recipients: cedric.ollivier@orange.com
2102
2103 - project:
2104     name: 'functest-opnfv-functest-smoke-trivy'
2105     <<: *functest-params
2106     repo: 'opnfv'
2107     container: 'functest-smoke'
2108     port:
2109     jobs:
2110       - 'functest-opnfv-functest-smoke-{tag}-trivy'
2111
2112 - job-template:
2113     name: 'functest-opnfv-functest-benchmarking-{tag}-trivy'
2114     triggers:
2115       - timed: '@weekly'
2116     parameters:
2117       - functest-node:
2118           node: '{node}'
2119     builders:
2120       - functest-trivy:
2121           <<: *functest-containers
2122     publishers:
2123       - email-ext:
2124           failure: false
2125           first-failure: true
2126           fixed: true
2127           recipients: cedric.ollivier@orange.com
2128
2129 - project:
2130     name: 'functest-opnfv-functest-benchmarking-trivy'
2131     <<: *functest-params
2132     repo: 'opnfv'
2133     container: 'functest-benchmarking'
2134     port:
2135     jobs:
2136       - 'functest-opnfv-functest-benchmarking-{tag}-trivy'
2137
2138 - job-template:
2139     name: 'functest-opnfv-functest-vnf-{tag}-trivy'
2140     triggers:
2141       - timed: '@weekly'
2142     parameters:
2143       - functest-node:
2144           node: '{node}'
2145     builders:
2146       - functest-trivy:
2147           <<: *functest-containers
2148     publishers:
2149       - email-ext:
2150           failure: false
2151           first-failure: true
2152           fixed: true
2153           recipients: cedric.ollivier@orange.com
2154
2155 - project:
2156     name: 'functest-opnfv-functest-vnf-trivy'
2157     <<: *functest-params
2158     repo: 'opnfv'
2159     container: 'functest-vnf'
2160     port:
2161     jobs:
2162       - 'functest-opnfv-functest-vnf-{tag}-trivy'
2163
2164 - job-template:
2165     name: 'functest-opnfv-functest-smoke-cntt-{tag}-trivy'
2166     triggers:
2167       - timed: '@weekly'
2168     parameters:
2169       - functest-node:
2170           node: '{node}'
2171     builders:
2172       - functest-trivy:
2173           <<: *functest-containers
2174     publishers:
2175       - email-ext:
2176           failure: false
2177           first-failure: true
2178           fixed: true
2179           recipients: cedric.ollivier@orange.com
2180
2181 - project:
2182     name: 'functest-opnfv-functest-smoke-cntt-trivy'
2183     <<: *functest-params
2184     repo: 'opnfv'
2185     container: 'functest-smoke-cntt'
2186     port:
2187     jobs:
2188       - 'functest-opnfv-functest-smoke-cntt-{tag}-trivy'
2189
2190 - job-template:
2191     name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-trivy'
2192     triggers:
2193       - timed: '@weekly'
2194     parameters:
2195       - functest-node:
2196           node: '{node}'
2197     builders:
2198       - functest-trivy:
2199           <<: *functest-containers
2200     publishers:
2201       - email-ext:
2202           failure: false
2203           first-failure: true
2204           fixed: true
2205           recipients: cedric.ollivier@orange.com
2206
2207 - project:
2208     name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
2209     <<: *functest-params
2210     repo: 'opnfv'
2211     container: 'functest-benchmarking-cntt'
2212     port:
2213     jobs:
2214       - 'functest-opnfv-functest-benchmarking-cntt-{tag}-trivy'
2215
2216 - builder:
2217     name: functest-grype
2218     builders:
2219       - shell: |
2220           sudo apt-get -o DPkg::Lock::Timeout=300 update && \
2221           sudo DEBIAN_FRONTEND=noninteractive apt-get \
2222             -o DPkg::Lock::Timeout=300 install curl -y
2223
2224           curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sudo sh -s -- -b .
2225           if [ "{repo}" = "_" ]; then
2226             image={container}:{tag}
2227           elif [ "{port}" = "None" ]; then
2228             image={repo}/{container}:{tag}
2229           else
2230             image={repo}:{port}/{container}:{tag}
2231           fi
2232           ./grype -q $image
2233
2234 - job-template:
2235     name: 'functest-opnfv-functest-core-{tag}-grype'
2236     triggers:
2237       - timed: '@weekly'
2238     parameters:
2239       - functest-node:
2240           node: '{node}'
2241     builders:
2242       - functest-grype:
2243           <<: *functest-containers
2244     publishers:
2245       - email-ext:
2246           failure: false
2247           first-failure: true
2248           fixed: true
2249           recipients: cedric.ollivier@orange.com
2250
2251 - project:
2252     name: 'functest-opnfv-functest-core-grype'
2253     <<: *functest-params
2254     repo: 'opnfv'
2255     container: 'functest-core'
2256     port:
2257     jobs:
2258       - 'functest-opnfv-functest-core-{tag}-grype'
2259
2260 - job-template:
2261     name: 'functest-opnfv-functest-healthcheck-{tag}-grype'
2262     triggers:
2263       - timed: '@weekly'
2264     parameters:
2265       - functest-node:
2266           node: '{node}'
2267     builders:
2268       - functest-grype:
2269           <<: *functest-containers
2270     publishers:
2271       - email-ext:
2272           failure: false
2273           first-failure: true
2274           fixed: true
2275           recipients: cedric.ollivier@orange.com
2276
2277 - project:
2278     name: 'functest-opnfv-functest-healthcheck-grype'
2279     <<: *functest-params
2280     repo: 'opnfv'
2281     container: 'functest-healthcheck'
2282     port:
2283     jobs:
2284       - 'functest-opnfv-functest-healthcheck-{tag}-grype'
2285
2286 - job-template:
2287     name: 'functest-opnfv-functest-smoke-{tag}-grype'
2288     triggers:
2289       - timed: '@weekly'
2290     parameters:
2291       - functest-node:
2292           node: '{node}'
2293     builders:
2294       - functest-grype:
2295           <<: *functest-containers
2296     publishers:
2297       - email-ext:
2298           failure: false
2299           first-failure: true
2300           fixed: true
2301           recipients: cedric.ollivier@orange.com
2302
2303 - project:
2304     name: 'functest-opnfv-functest-smoke-grype'
2305     <<: *functest-params
2306     repo: 'opnfv'
2307     container: 'functest-smoke'
2308     port:
2309     jobs:
2310       - 'functest-opnfv-functest-smoke-{tag}-grype'
2311
2312 - job-template:
2313     name: 'functest-opnfv-functest-benchmarking-{tag}-grype'
2314     triggers:
2315       - timed: '@weekly'
2316     parameters:
2317       - functest-node:
2318           node: '{node}'
2319     builders:
2320       - functest-grype:
2321           <<: *functest-containers
2322     publishers:
2323       - email-ext:
2324           failure: false
2325           first-failure: true
2326           fixed: true
2327           recipients: cedric.ollivier@orange.com
2328
2329 - project:
2330     name: 'functest-opnfv-functest-benchmarking-grype'
2331     <<: *functest-params
2332     repo: 'opnfv'
2333     container: 'functest-benchmarking'
2334     port:
2335     jobs:
2336       - 'functest-opnfv-functest-benchmarking-{tag}-grype'
2337
2338 - job-template:
2339     name: 'functest-opnfv-functest-vnf-{tag}-grype'
2340     triggers:
2341       - timed: '@weekly'
2342     parameters:
2343       - functest-node:
2344           node: '{node}'
2345     builders:
2346       - functest-grype:
2347           <<: *functest-containers
2348     publishers:
2349       - email-ext:
2350           failure: false
2351           first-failure: true
2352           fixed: true
2353           recipients: cedric.ollivier@orange.com
2354
2355 - project:
2356     name: 'functest-opnfv-functest-vnf-grype'
2357     <<: *functest-params
2358     repo: 'opnfv'
2359     container: 'functest-vnf'
2360     port:
2361     jobs:
2362       - 'functest-opnfv-functest-vnf-{tag}-grype'
2363
2364 - job-template:
2365     name: 'functest-opnfv-functest-smoke-cntt-{tag}-grype'
2366     triggers:
2367       - timed: '@weekly'
2368     parameters:
2369       - functest-node:
2370           node: '{node}'
2371     builders:
2372       - functest-grype:
2373           <<: *functest-containers
2374     publishers:
2375       - email-ext:
2376           failure: false
2377           first-failure: true
2378           fixed: true
2379           recipients: cedric.ollivier@orange.com
2380
2381 - project:
2382     name: 'functest-opnfv-functest-smoke-cntt-grype'
2383     <<: *functest-params
2384     repo: 'opnfv'
2385     container: 'functest-smoke-cntt'
2386     port:
2387     jobs:
2388       - 'functest-opnfv-functest-smoke-cntt-{tag}-grype'
2389
2390 - job-template:
2391     name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-grype'
2392     triggers:
2393       - timed: '@weekly'
2394     parameters:
2395       - functest-node:
2396           node: '{node}'
2397     builders:
2398       - functest-grype:
2399           <<: *functest-containers
2400     publishers:
2401       - email-ext:
2402           failure: false
2403           first-failure: true
2404           fixed: true
2405           recipients: cedric.ollivier@orange.com
2406
2407 - project:
2408     name: 'functest-opnfv-functest-benchmarking-cntt-grype'
2409     <<: *functest-params
2410     repo: 'opnfv'
2411     container: 'functest-benchmarking-cntt'
2412     port:
2413     jobs:
2414       - 'functest-opnfv-functest-benchmarking-cntt-{tag}-grype'
2415
2416 - builder:
2417     name: functest-sbom
2418     builders:
2419       - shell: |
2420           sudo apt-get -o DPkg::Lock::Timeout=300 update && \
2421           sudo DEBIAN_FRONTEND=noninteractive apt-get \
2422             -o DPkg::Lock::Timeout=300 install curl -y
2423
2424           sudo mkdir -p ~/.docker
2425           curl -sSfL https://raw.githubusercontent.com/docker/sbom-cli-plugin/main/install.sh | sudo sh -s --
2426           if [ "{repo}" = "_" ]; then
2427             image={container}:{tag}
2428           elif [ "{port}" = "None" ]; then
2429             image={repo}/{container}:{tag}
2430           else
2431             image={repo}:{port}/{container}:{tag}
2432           fi
2433           sudo docker sbom $image
2434
2435 - job-template:
2436     name: 'functest-opnfv-functest-core-{tag}-sbom'
2437     triggers:
2438       - timed: '@weekly'
2439     parameters:
2440       - functest-node:
2441           node: '{node}'
2442     builders:
2443       - functest-sbom:
2444           <<: *functest-containers
2445     publishers:
2446       - email-ext:
2447           failure: false
2448           first-failure: true
2449           fixed: true
2450           recipients: cedric.ollivier@orange.com
2451
2452 - project:
2453     name: 'functest-opnfv-functest-core-sbom'
2454     <<: *functest-params
2455     repo: 'opnfv'
2456     container: 'functest-core'
2457     port:
2458     jobs:
2459       - 'functest-opnfv-functest-core-{tag}-sbom'
2460
2461 - job-template:
2462     name: 'functest-opnfv-functest-healthcheck-{tag}-sbom'
2463     triggers:
2464       - timed: '@weekly'
2465     parameters:
2466       - functest-node:
2467           node: '{node}'
2468     builders:
2469       - functest-sbom:
2470           <<: *functest-containers
2471     publishers:
2472       - email-ext:
2473           failure: false
2474           first-failure: true
2475           fixed: true
2476           recipients: cedric.ollivier@orange.com
2477
2478 - project:
2479     name: 'functest-opnfv-functest-healthcheck-sbom'
2480     <<: *functest-params
2481     repo: 'opnfv'
2482     container: 'functest-healthcheck'
2483     port:
2484     jobs:
2485       - 'functest-opnfv-functest-healthcheck-{tag}-sbom'
2486
2487 - job-template:
2488     name: 'functest-opnfv-functest-smoke-{tag}-sbom'
2489     triggers:
2490       - timed: '@weekly'
2491     parameters:
2492       - functest-node:
2493           node: '{node}'
2494     builders:
2495       - functest-sbom:
2496           <<: *functest-containers
2497     publishers:
2498       - email-ext:
2499           failure: false
2500           first-failure: true
2501           fixed: true
2502           recipients: cedric.ollivier@orange.com
2503
2504 - project:
2505     name: 'functest-opnfv-functest-smoke-sbom'
2506     <<: *functest-params
2507     repo: 'opnfv'
2508     container: 'functest-smoke'
2509     port:
2510     jobs:
2511       - 'functest-opnfv-functest-smoke-{tag}-sbom'
2512
2513 - job-template:
2514     name: 'functest-opnfv-functest-benchmarking-{tag}-sbom'
2515     triggers:
2516       - timed: '@weekly'
2517     parameters:
2518       - functest-node:
2519           node: '{node}'
2520     builders:
2521       - functest-sbom:
2522           <<: *functest-containers
2523     publishers:
2524       - email-ext:
2525           failure: false
2526           first-failure: true
2527           fixed: true
2528           recipients: cedric.ollivier@orange.com
2529
2530 - project:
2531     name: 'functest-opnfv-functest-benchmarking-sbom'
2532     <<: *functest-params
2533     repo: 'opnfv'
2534     container: 'functest-benchmarking'
2535     port:
2536     jobs:
2537       - 'functest-opnfv-functest-benchmarking-{tag}-sbom'
2538
2539 - job-template:
2540     name: 'functest-opnfv-functest-vnf-{tag}-sbom'
2541     triggers:
2542       - timed: '@weekly'
2543     parameters:
2544       - functest-node:
2545           node: '{node}'
2546     builders:
2547       - functest-sbom:
2548           <<: *functest-containers
2549     publishers:
2550       - email-ext:
2551           failure: false
2552           first-failure: true
2553           fixed: true
2554           recipients: cedric.ollivier@orange.com
2555
2556 - project:
2557     name: 'functest-opnfv-functest-vnf-sbom'
2558     <<: *functest-params
2559     repo: 'opnfv'
2560     container: 'functest-vnf'
2561     port:
2562     jobs:
2563       - 'functest-opnfv-functest-vnf-{tag}-sbom'
2564
2565 - job-template:
2566     name: 'functest-opnfv-functest-smoke-cntt-{tag}-sbom'
2567     triggers:
2568       - timed: '@weekly'
2569     parameters:
2570       - functest-node:
2571           node: '{node}'
2572     builders:
2573       - functest-sbom:
2574           <<: *functest-containers
2575     publishers:
2576       - email-ext:
2577           failure: false
2578           first-failure: true
2579           fixed: true
2580           recipients: cedric.ollivier@orange.com
2581
2582 - project:
2583     name: 'functest-opnfv-functest-smoke-cntt-sbom'
2584     <<: *functest-params
2585     repo: 'opnfv'
2586     container: 'functest-smoke-cntt'
2587     port:
2588     jobs:
2589       - 'functest-opnfv-functest-smoke-cntt-{tag}-sbom'
2590
2591 - job-template:
2592     name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-sbom'
2593     triggers:
2594       - timed: '@weekly'
2595     parameters:
2596       - functest-node:
2597           node: '{node}'
2598     builders:
2599       - functest-sbom:
2600           <<: *functest-containers
2601     publishers:
2602       - email-ext:
2603           failure: false
2604           first-failure: true
2605           fixed: true
2606           recipients: cedric.ollivier@orange.com
2607
2608 - project:
2609     name: 'functest-opnfv-functest-benchmarking-cntt-sbom'
2610     <<: *functest-params
2611     repo: 'opnfv'
2612     container: 'functest-benchmarking-cntt'
2613     port:
2614     jobs:
2615       - 'functest-opnfv-functest-benchmarking-cntt-{tag}-sbom'
2616
2617 - view:
2618     name: functest-docker
2619     view-type: list
2620     columns:
2621       - status
2622       - weather
2623       - job
2624       - last-success
2625       - last-failure
2626       - last-duration
2627     regex: ^functest-[a-z0-9.-]+-docker$
2628
2629 - view:
2630     name: functest-trivy
2631     view-type: list
2632     columns:
2633       - status
2634       - weather
2635       - job
2636       - last-success
2637       - last-failure
2638       - last-duration
2639     regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$
2640
2641 - view:
2642     name: functest-grype
2643     view-type: list
2644     columns:
2645       - status
2646       - weather
2647       - job
2648       - last-success
2649       - last-failure
2650       - last-duration
2651     regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-grype$
2652
2653 - view:
2654     name: functest-sbom
2655     view-type: list
2656     columns:
2657       - status
2658       - weather
2659       - job
2660       - last-success
2661       - last-failure
2662       - last-duration
2663     regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-sbom$