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