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