Set docker_args as expected by functest-virtual
[releng.git] / jjb / functest / functest.yaml
1 ---
2 - functest-jobs: &functest-jobs
3     name: 'functest-jobs'
4     current-parameters: true
5
6 - functest-params: &functest-params
7     name: 'functest-params'
8     repo: 'opnfv'
9     port:
10     tag:
11       - latest:
12           branch: master
13       - hunter:
14           branch: stable/hunter
15       - gambia:
16           branch: stable/gambia
17
18 - parameter:
19     name: functest-slave
20     parameters:
21       - label:
22           name: slave
23           default: functest-virtual
24
25 - parameter:
26     name: functest-branch
27     parameters:
28       - string:
29           name: branch
30           default: '{branch}'
31
32 - functest-containers: &functest-containers
33     name: 'functest-containers'
34     repo: '{repo}'
35     port: '{port}'
36     container: '{container}'
37     tag: '{tag}'
38
39 - functest-run-containers: &functest-run-containers
40     name: 'functest-build-containers'
41     <<: *functest-containers
42     test: '{test}'
43
44 - functest-build-containers: &functest-build-containers
45     name: 'functest-build-containers'
46     <<: *functest-containers
47     ref_arg: '{ref_arg}'
48     path: '{path}'
49
50 - builder:
51     name: functest-pull-containers
52     builders:
53       - shell: |
54           set +x
55           if [ "{repo}" = "_" ]; then
56             image={container}:{tag}
57           elif [ "{port}" = "None" ]; then
58             image={repo}/{container}:{tag}
59           else
60             image={repo}:{port}/{container}:{tag}
61           fi
62           sudo docker pull $image
63
64 - builder:
65     name: functest-build-containers
66     builders:
67       - shell: |
68           set +x
69           if [ "{repo}" = "_" ]; then
70             image={container}:{tag}
71           elif [ "{port}" = "None" ]; then
72             image={repo}/{container}:{tag}
73           else
74             image={repo}:{port}/{container}:{tag}
75           fi
76           if [ "{ref_arg}" = "None" ]; then
77             build_arg=""
78           else
79             build_arg="--build-arg {ref_arg}={ref}"
80           fi
81           cd {path}
82           sudo docker build $build_arg \
83             --pull=false --no-cache --force-rm=true \
84             -t $image .
85
86 - builder:
87     name: functest-run-containers
88     builders:
89       - shell: |
90           set +ex
91           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
92           if [ "{repo}" = "_" ]; then
93             image={container}:{tag}
94           elif [ "{port}" = "None" ]; then
95             image={repo}/{container}:{tag}
96           else
97             image={repo}:{port}/{container}:{tag}
98           fi
99           sudo docker run --rm \
100             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
101             -e EXTERNAL_NETWORK=public1 \
102             -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \
103             -v /home/opnfv/functest/images:/home/opnfv/functest/images \
104             $image run_tests -t {test}
105           res=$?
106           gsutil -m cp -r $WORKSPACE/ \
107             gs://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID > /dev/null 2>&1
108           find $WORKSPACE -type f \
109             -printf \
110             "http://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID/%P\n"
111           exit $res
112
113 - builder:
114     name: functest-remove-images
115     builders:
116       - shell: |
117           set +x
118           if [ "{repo}" = "_" ]; then
119             image={container}:{tag}
120           elif [ "{port}" = "None" ]; then
121             image={repo}/{container}:{tag}
122           else
123             image={repo}:{port}/{container}:{tag}
124           fi
125           sudo docker rmi $image || true
126
127 - scm:
128     name: functest-scm
129     scm:
130       - git:
131           url: https://gerrit.opnfv.org/gerrit/functest
132           refspec: '+refs/changes/*:refs/changes/*'
133           branches:
134             - '{ref}'
135
136 - job-template:
137     name: 'functest-{repo}-{container}-{tag}-pull'
138     parameters:
139       - functest-slave
140     builders:
141       - functest-pull-containers:
142           <<: *functest-containers
143
144 - project:
145     name: 'functest-opnfv-functest-healthcheck-pull'
146     <<: *functest-params
147     container: 'functest-healthcheck'
148     jobs:
149       - 'functest-{repo}-{container}-{tag}-pull'
150
151 - project:
152     name: 'functest-opnfv-functest-smoke-pull'
153     <<: *functest-params
154     container: 'functest-smoke'
155     jobs:
156       - 'functest-{repo}-{container}-{tag}-pull'
157
158 - project:
159     name: 'functest-opnfv-functest-benchmarking-pull'
160     <<: *functest-params
161     container: 'functest-benchmarking'
162     jobs:
163       - 'functest-{repo}-{container}-{tag}-pull'
164
165 - project:
166     name: 'functest-opnfv-functest-components-pull'
167     <<: *functest-params
168     container: 'functest-components'
169     jobs:
170       - 'functest-{repo}-{container}-{tag}-pull'
171
172 - project:
173     name: 'functest-opnfv-functest-vnf-pull'
174     <<: *functest-params
175     container: 'functest-vnf'
176     jobs:
177       - 'functest-{repo}-{container}-{tag}-pull'
178
179 - project:
180     name: 'functest-opnfv-functest-features-pull'
181     <<: *functest-params
182     container: 'functest-features'
183     jobs:
184       - 'functest-{repo}-{container}-{tag}-pull'
185
186 - job-template:
187     name: 'functest-{repo}-{container}-{tag}-rmi'
188     parameters:
189       - functest-slave
190     builders:
191       - functest-remove-images:
192           <<: *functest-containers
193
194 - project:
195     name: 'functest-opnfv-functest-healthcheck-rmi'
196     <<: *functest-params
197     container: 'functest-healthcheck'
198     jobs:
199       - 'functest-{repo}-{container}-{tag}-rmi'
200
201 - project:
202     name: 'functest-opnfv-functest-smoke-rmi'
203     <<: *functest-params
204     container: 'functest-smoke'
205     jobs:
206       - 'functest-{repo}-{container}-{tag}-rmi'
207
208 - project:
209     name: 'functest-opnfv-functest-benchmarking-rmi'
210     <<: *functest-params
211     container: 'functest-benchmarking'
212     jobs:
213       - 'functest-{repo}-{container}-{tag}-rmi'
214
215 - project:
216     name: 'functest-opnfv-functest-components-rmi'
217     <<: *functest-params
218     container: 'functest-components'
219     jobs:
220       - 'functest-{repo}-{container}-{tag}-rmi'
221
222 - project:
223     name: 'functest-opnfv-functest-vnf-rmi'
224     <<: *functest-params
225     container: 'functest-vnf'
226     jobs:
227       - 'functest-{repo}-{container}-{tag}-rmi'
228
229 - project:
230     name: 'functest-opnfv-functest-features-rmi'
231     <<: *functest-params
232     container: 'functest-features'
233     jobs:
234       - 'functest-{repo}-{container}-{tag}-rmi'
235
236 - job-template:
237     name: 'functest-{repo}-{container}-{tag}-{test}-run'
238     parameters:
239       - functest-slave
240     builders:
241       - functest-run-containers:
242           <<: *functest-run-containers
243
244 - project:
245     name: 'functest-opnfv-functest-healthcheck'
246     <<: *functest-params
247     container: 'functest-healthcheck'
248     test:
249       - connection_check
250       - tenantnetwork1
251       - tenantnetwork2
252       - vmready1
253       - vmready2
254       - singlevm1
255       - singlevm2
256       - vping_ssh
257       - vping_userdata
258       - cinder_test
259       - odl
260       - api_check
261       - snaps_health_check
262     jobs:
263       - 'functest-{repo}-{container}-{tag}-{test}-run'
264
265 - project:
266     name: 'functest-opnfv-functest-smoke'
267     <<: *functest-params
268     container: 'functest-smoke'
269     test:
270       - tempest_smoke
271       - neutron-tempest-plugin-api
272       - rally_sanity
273       - rally_jobs
274       - refstack_defcore
275       - patrole
276       - snaps_smoke
277       - neutron_trunk
278       - networking-bgpvpn
279       - networking-sfc
280       - barbican
281     jobs:
282       - 'functest-{repo}-{container}-{tag}-{test}-run'
283
284 - project:
285     name: 'functest-opnfv-functest-benchmarking'
286     <<: *functest-params
287     container: 'functest-benchmarking'
288     test:
289       - vmtp
290       - shaker
291     jobs:
292       - 'functest-{repo}-{container}-{tag}-{test}-run'
293
294 - project:
295     name: 'functest-opnfv-functest-components'
296     <<: *functest-params
297     container: 'functest-components'
298     test:
299       - tempest_full
300       - tempest_scenario
301       - rally_full
302     jobs:
303       - 'functest-{repo}-{container}-{tag}-{test}-run'
304
305 - project:
306     name: 'functest-opnfv-functest-vnf'
307     <<: *functest-params
308     container: 'functest-vnf'
309     test:
310       - cloudify
311       - cloudify_ims
312       - heat_ims
313       - vyos_vrouter
314       - juju_epc
315     jobs:
316       - 'functest-{repo}-{container}-{tag}-{test}-run'
317
318 - project:
319     name: 'functest-opnfv-functest-features'
320     <<: *functest-params
321     container: 'functest-features'
322     test:
323       - doctor-notification
324       - bgpvpn
325       - functest-odl-sfc
326       - barometercollectd
327       - fds
328       - vgpu
329       - stor4nfv_os
330     jobs:
331       - 'functest-{repo}-{container}-{tag}-{test}-run'
332
333 - job-template:
334     name: 'functest-{tag}-daily'
335     project-type: multijob
336     triggers:
337       - timed: '@daily'
338     parameters:
339       - functest-slave
340     properties:
341       - build-blocker:
342           use-build-blocker: true
343           blocking-level: 'NODE'
344           blocking-jobs:
345             - '^functest-[a-z]+-(daily|check|gate)$'
346     builders:
347       - multijob:
348           name: remove former images
349           projects:
350             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
351               <<: *functest-jobs
352             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
353               <<: *functest-jobs
354             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
355               <<: *functest-jobs
356             - name: 'functest-opnfv-functest-components-{tag}-rmi'
357               <<: *functest-jobs
358             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
359               <<: *functest-jobs
360             - name: 'functest-opnfv-functest-features-{tag}-rmi'
361               <<: *functest-jobs
362       - multijob:
363           name: pull containers
364           projects:
365             - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
366               <<: *functest-jobs
367             - name: 'functest-opnfv-functest-smoke-{tag}-pull'
368               <<: *functest-jobs
369             - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
370               <<: *functest-jobs
371             - name: 'functest-opnfv-functest-components-{tag}-pull'
372               <<: *functest-jobs
373             - name: 'functest-opnfv-functest-vnf-{tag}-pull'
374               <<: *functest-jobs
375             - name: 'functest-opnfv-functest-features-{tag}-pull'
376               <<: *functest-jobs
377       - multijob:
378           name: opnfv/functest-healthcheck:{tag}
379           projects:
380             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
381               <<: *functest-jobs
382             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
383               <<: *functest-jobs
384             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
385               <<: *functest-jobs
386             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
387               <<: *functest-jobs
388             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
389               <<: *functest-jobs
390             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
391               <<: *functest-jobs
392             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
393               <<: *functest-jobs
394             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
395               <<: *functest-jobs
396             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
397               <<: *functest-jobs
398             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
399               <<: *functest-jobs
400             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
401               <<: *functest-jobs
402             - name: 'functest-opnfv-functest-healthcheck-{tag}-api_check-run'
403               <<: *functest-jobs
404             - name: 'functest-opnfv-functest-healthcheck-{tag}-snaps_health_check-run'
405               <<: *functest-jobs
406       - multijob:
407           name: opnfv/functest-smoke:{tag}
408           projects:
409             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_smoke-run'
410               <<: *functest-jobs
411             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
412               <<: *functest-jobs
413             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
414               <<: *functest-jobs
415             - name: 'functest-opnfv-functest-smoke-{tag}-rally_jobs-run'
416               <<: *functest-jobs
417             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
418               <<: *functest-jobs
419             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
420               <<: *functest-jobs
421             - name: 'functest-opnfv-functest-smoke-{tag}-snaps_smoke-run'
422               <<: *functest-jobs
423             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
424               <<: *functest-jobs
425             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
426               <<: *functest-jobs
427             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
428               <<: *functest-jobs
429             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
430               <<: *functest-jobs
431       - multijob:
432           name: opnfv/functest-benchmarking:{tag}
433           projects:
434             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
435               <<: *functest-jobs
436             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
437               <<: *functest-jobs
438       - multijob:
439           name: opnfv/functest-components:{tag}
440           projects:
441             - name: 'functest-opnfv-functest-components-{tag}-tempest_full-run'
442               <<: *functest-jobs
443             - name: 'functest-opnfv-functest-components-{tag}-tempest_scenario-run'
444               <<: *functest-jobs
445             - name: 'functest-opnfv-functest-components-{tag}-rally_full-run'
446               <<: *functest-jobs
447       - multijob:
448           name: opnfv/functest-vnf:{tag}
449           projects:
450             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
451               <<: *functest-jobs
452             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
453               <<: *functest-jobs
454             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
455               <<: *functest-jobs
456             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
457               <<: *functest-jobs
458             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
459               <<: *functest-jobs
460       - multijob:
461           name: opnfv/functest-features:{tag}
462           projects:
463             - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
464               <<: *functest-jobs
465             - name: 'functest-opnfv-functest-features-{tag}-bgpvpn-run'
466               <<: *functest-jobs
467             - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
468               <<: *functest-jobs
469             - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
470               <<: *functest-jobs
471             - name: 'functest-opnfv-functest-features-{tag}-fds-run'
472               <<: *functest-jobs
473             - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
474               <<: *functest-jobs
475             - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
476               <<: *functest-jobs
477
478 - job-template:
479     name: 'functest-{repo}-{container}-{tag}-gate'
480     parameters:
481       - functest-slave
482     scm:
483       - functest-scm:
484           ref: $GERRIT_REFSPEC
485     builders:
486       - functest-build-containers:
487           <<: *functest-build-containers
488           ref: $GERRIT_REFSPEC
489
490 - job-template:
491     name: 'functest-{repo}-{container}-{tag}-check'
492     parameters:
493       - functest-slave
494       - functest-branch:
495           branch: '{branch}'
496     scm:
497       - functest-scm:
498           ref: $branch
499     builders:
500       - functest-build-containers:
501           <<: *functest-build-containers
502           ref: $branch
503
504 - project:
505     name: 'functest-_-alpine-3.8-rmi'
506     repo: _
507     port:
508     container: alpine
509     tag: 3.8
510     jobs:
511       - 'functest-{repo}-{container}-{tag}-rmi'
512
513 - project:
514     name: 'functest-_-alpine-3.8-pull'
515     repo: _
516     port:
517     container: alpine
518     tag: 3.8
519     jobs:
520       - 'functest-{repo}-{container}-{tag}-pull'
521
522 - project:
523     name: functest-opnfv-functest-core-{tag}-build
524     <<: *functest-params
525     container: functest-core
526     ref_arg: BRANCH
527     path: docker/core
528     jobs:
529       - 'functest-{repo}-{container}-{tag}-gate'
530       - 'functest-{repo}-{container}-{tag}-check'
531
532 - project:
533     name: functest-opnfv-functest-tempest-{tag}-build
534     <<: *functest-params
535     container: functest-tempest
536     ref_arg: BRANCH
537     path: docker/tempest
538     jobs:
539       - 'functest-{repo}-{container}-{tag}-gate'
540       - 'functest-{repo}-{container}-{tag}-check'
541
542 - project:
543     name: functest-opnfv-functest-healthcheck-{tag}-build
544     <<: *functest-params
545     container: functest-healthcheck
546     ref_arg: BRANCH
547     path: docker/healthcheck
548     jobs:
549       - 'functest-{repo}-{container}-{tag}-gate'
550       - 'functest-{repo}-{container}-{tag}-check'
551
552 - project:
553     name: functest-opnfv-functest-smoke-{tag}-build
554     <<: *functest-params
555     container: functest-smoke
556     ref_arg: BRANCH
557     path: docker/smoke
558     jobs:
559       - 'functest-{repo}-{container}-{tag}-gate'
560       - 'functest-{repo}-{container}-{tag}-check'
561
562 - project:
563     name: functest-opnfv-functest-benchmarking-{tag}-build
564     <<: *functest-params
565     container: functest-benchmarking
566     ref_arg: BRANCH
567     path: docker/benchmarking
568     jobs:
569       - 'functest-{repo}-{container}-{tag}-gate'
570       - 'functest-{repo}-{container}-{tag}-check'
571
572 - project:
573     name: functest-opnfv-functest-components-{tag}-build
574     <<: *functest-params
575     container: functest-components
576     ref_arg:
577     path: docker/components
578     jobs:
579       - 'functest-{repo}-{container}-{tag}-gate'
580       - 'functest-{repo}-{container}-{tag}-check'
581
582 - project:
583     name: functest-opnfv-functest-vnf-{tag}-build
584     <<: *functest-params
585     container: functest-vnf
586     ref_arg:
587     path: docker/vnf
588     jobs:
589       - 'functest-{repo}-{container}-{tag}-gate'
590       - 'functest-{repo}-{container}-{tag}-check'
591
592 - project:
593     name: functest-opnfv-functest-features-{tag}-build
594     <<: *functest-params
595     container: functest-features
596     ref_arg: BRANCH
597     path: docker/features
598     jobs:
599       - 'functest-{repo}-{container}-{tag}-gate'
600       - 'functest-{repo}-{container}-{tag}-check'
601
602 - job-template:
603     name: 'functest-{tag}-check'
604     project-type: multijob
605     parameters:
606       - functest-slave
607       - functest-branch:
608           branch: '{branch}'
609     properties:
610       - build-blocker:
611           use-build-blocker: true
612           blocking-level: 'NODE'
613           blocking-jobs:
614             - '^functest-[a-z]+-(daily|check|gate)$'
615     builders:
616       - multijob:
617           name: remove former images
618           projects:
619             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
620               <<: *functest-jobs
621             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
622               <<: *functest-jobs
623             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
624               <<: *functest-jobs
625             - name: 'functest-opnfv-functest-components-{tag}-rmi'
626               <<: *functest-jobs
627             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
628               <<: *functest-jobs
629             - name: 'functest-opnfv-functest-features-{tag}-rmi'
630               <<: *functest-jobs
631       - multijob:
632           name: remove dependencies
633           projects:
634             - name: 'functest-_-alpine-3.8-rmi'
635               <<: *functest-jobs
636       - multijob:
637           name: pull dependencies
638           projects:
639             - name: 'functest-_-alpine-3.8-pull'
640               <<: *functest-jobs
641       - multijob:
642           name: build opnfv/functest-core
643           projects:
644             - name: 'functest-opnfv-functest-core-{tag}-check'
645               <<: *functest-jobs
646       - multijob:
647           name: build opnfv/functest-tempest
648           projects:
649             - name: 'functest-opnfv-functest-tempest-{tag}-check'
650               <<: *functest-jobs
651       - multijob:
652           name: build containers
653           projects:
654             - name: 'functest-opnfv-functest-healthcheck-{tag}-check'
655               <<: *functest-jobs
656             - name: 'functest-opnfv-functest-smoke-{tag}-check'
657               <<: *functest-jobs
658             - name: 'functest-opnfv-functest-benchmarking-{tag}-check'
659               <<: *functest-jobs
660             - name: 'functest-opnfv-functest-components-{tag}-check'
661               <<: *functest-jobs
662             - name: 'functest-opnfv-functest-vnf-{tag}-check'
663               <<: *functest-jobs
664             - name: 'functest-opnfv-functest-features-{tag}-check'
665               <<: *functest-jobs
666       - multijob:
667           name: opnfv/functest-healthcheck:{tag}
668           projects:
669             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
670               <<: *functest-jobs
671             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
672               <<: *functest-jobs
673             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
674               <<: *functest-jobs
675             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
676               <<: *functest-jobs
677             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
678               <<: *functest-jobs
679             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
680               <<: *functest-jobs
681             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
682               <<: *functest-jobs
683             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
684               <<: *functest-jobs
685             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
686               <<: *functest-jobs
687             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
688               <<: *functest-jobs
689             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
690               <<: *functest-jobs
691             - name: 'functest-opnfv-functest-healthcheck-{tag}-api_check-run'
692               <<: *functest-jobs
693             - name: 'functest-opnfv-functest-healthcheck-{tag}-snaps_health_check-run'
694               <<: *functest-jobs
695       - multijob:
696           name: opnfv/functest-smoke:{tag}
697           projects:
698             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_smoke-run'
699               <<: *functest-jobs
700             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
701               <<: *functest-jobs
702             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
703               <<: *functest-jobs
704             - name: 'functest-opnfv-functest-smoke-{tag}-rally_jobs-run'
705               <<: *functest-jobs
706             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
707               <<: *functest-jobs
708             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
709               <<: *functest-jobs
710             - name: 'functest-opnfv-functest-smoke-{tag}-snaps_smoke-run'
711               <<: *functest-jobs
712             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
713               <<: *functest-jobs
714             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
715               <<: *functest-jobs
716             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
717               <<: *functest-jobs
718             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
719               <<: *functest-jobs
720       - multijob:
721           name: opnfv/functest-benchmarking:{tag}
722           projects:
723             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
724               <<: *functest-jobs
725             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
726               <<: *functest-jobs
727       - multijob:
728           name: opnfv/functest-components:{tag}
729           projects:
730             - name: 'functest-opnfv-functest-components-{tag}-tempest_full-run'
731               <<: *functest-jobs
732             - name: 'functest-opnfv-functest-components-{tag}-tempest_scenario-run'
733               <<: *functest-jobs
734             - name: 'functest-opnfv-functest-components-{tag}-rally_full-run'
735               <<: *functest-jobs
736       - multijob:
737           name: opnfv/functest-vnf:{tag}
738           projects:
739             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
740               <<: *functest-jobs
741             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
742               <<: *functest-jobs
743             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
744               <<: *functest-jobs
745             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
746               <<: *functest-jobs
747             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
748               <<: *functest-jobs
749       - multijob:
750           name: opnfv/functest-features:{tag}
751           projects:
752             - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
753               <<: *functest-jobs
754             - name: 'functest-opnfv-functest-features-{tag}-bgpvpn-run'
755               <<: *functest-jobs
756             - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
757               <<: *functest-jobs
758             - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
759               <<: *functest-jobs
760             - name: 'functest-opnfv-functest-features-{tag}-fds-run'
761               <<: *functest-jobs
762             - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
763               <<: *functest-jobs
764             - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
765               <<: *functest-jobs
766
767 - trigger:
768     name: functest-patchset-created
769     triggers:
770       - gerrit:
771           server-name: 'gerrit.opnfv.org'
772           trigger-on:
773             - patchset-created-event
774             - comment-added-contains-event:
775                 comment-contains-value: 'recheck'
776             - comment-added-contains-event:
777                 comment-contains-value: 'reverify'
778           projects:
779             - project-compare-type: 'ANT'
780               project-pattern: 'functest'
781               branches:
782                 - branch-compare-type: 'ANT'
783                   branch-pattern: '**/{branch}'
784           skip-vote:
785             successful: false
786             failed: false
787             unstable: false
788             notbuilt: false
789
790 - job-template:
791     name: 'functest-{tag}-gate'
792     project-type: multijob
793     triggers:
794       - functest-patchset-created:
795           branch: '{branch}'
796     parameters:
797       - functest-slave
798     properties:
799       - build-blocker:
800           use-build-blocker: true
801           blocking-level: 'NODE'
802           blocking-jobs:
803             - '^functest-[a-z]+-(daily|check|gate)$'
804     builders:
805       - multijob:
806           name: remove former images
807           projects:
808             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
809               <<: *functest-jobs
810             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
811               <<: *functest-jobs
812             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
813               <<: *functest-jobs
814             - name: 'functest-opnfv-functest-components-{tag}-rmi'
815               <<: *functest-jobs
816             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
817               <<: *functest-jobs
818             - name: 'functest-opnfv-functest-features-{tag}-rmi'
819               <<: *functest-jobs
820       - multijob:
821           name: remove dependencies
822           projects:
823             - name: 'functest-_-alpine-3.8-rmi'
824               <<: *functest-jobs
825       - multijob:
826           name: pull dependencies
827           projects:
828             - name: 'functest-_-alpine-3.8-pull'
829               <<: *functest-jobs
830       - multijob:
831           name: build opnfv/functest-core
832           projects:
833             - name: 'functest-opnfv-functest-core-{tag}-gate'
834               <<: *functest-jobs
835       - multijob:
836           name: build opnfv/functest-tempest
837           projects:
838             - name: 'functest-opnfv-functest-tempest-{tag}-gate'
839               <<: *functest-jobs
840       - multijob:
841           name: build containers
842           projects:
843             - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
844               <<: *functest-jobs
845             - name: 'functest-opnfv-functest-smoke-{tag}-gate'
846               <<: *functest-jobs
847             - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
848               <<: *functest-jobs
849             - name: 'functest-opnfv-functest-components-{tag}-gate'
850               <<: *functest-jobs
851             - name: 'functest-opnfv-functest-vnf-{tag}-gate'
852               <<: *functest-jobs
853             - name: 'functest-opnfv-functest-features-{tag}-gate'
854               <<: *functest-jobs
855       - multijob:
856           name: opnfv/functest-healthcheck:{tag}
857           projects:
858             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
859               <<: *functest-jobs
860             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
861               <<: *functest-jobs
862             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
863               <<: *functest-jobs
864             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
865               <<: *functest-jobs
866             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
867               <<: *functest-jobs
868             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
869               <<: *functest-jobs
870             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
871               <<: *functest-jobs
872             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
873               <<: *functest-jobs
874             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
875               <<: *functest-jobs
876             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
877               <<: *functest-jobs
878             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
879               <<: *functest-jobs
880             - name: 'functest-opnfv-functest-healthcheck-{tag}-api_check-run'
881               <<: *functest-jobs
882             - name: 'functest-opnfv-functest-healthcheck-{tag}-snaps_health_check-run'
883               <<: *functest-jobs
884       - multijob:
885           name: opnfv/functest-smoke:{tag}
886           projects:
887             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_smoke-run'
888               <<: *functest-jobs
889             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
890               <<: *functest-jobs
891             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
892               <<: *functest-jobs
893             - name: 'functest-opnfv-functest-smoke-{tag}-rally_jobs-run'
894               <<: *functest-jobs
895             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
896               <<: *functest-jobs
897             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
898               <<: *functest-jobs
899             - name: 'functest-opnfv-functest-smoke-{tag}-snaps_smoke-run'
900               <<: *functest-jobs
901             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
902               <<: *functest-jobs
903             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
904               <<: *functest-jobs
905             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
906               <<: *functest-jobs
907             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
908               <<: *functest-jobs
909       - multijob:
910           name: opnfv/functest-benchmarking:{tag}
911           projects:
912             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
913               <<: *functest-jobs
914             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
915               <<: *functest-jobs
916       - multijob:
917           name: opnfv/functest-components:{tag}
918           projects:
919             - name: 'functest-opnfv-functest-components-{tag}-tempest_full-run'
920               <<: *functest-jobs
921             - name: 'functest-opnfv-functest-components-{tag}-tempest_scenario-run'
922               <<: *functest-jobs
923             - name: 'functest-opnfv-functest-components-{tag}-rally_full-run'
924               <<: *functest-jobs
925       - multijob:
926           name: opnfv/functest-vnf:{tag}
927           projects:
928             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
929               <<: *functest-jobs
930             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
931               <<: *functest-jobs
932             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
933               <<: *functest-jobs
934             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
935               <<: *functest-jobs
936             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
937               <<: *functest-jobs
938       - multijob:
939           name: opnfv/functest-features:{tag}
940           projects:
941             - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
942               <<: *functest-jobs
943             - name: 'functest-opnfv-functest-features-{tag}-bgpvpn-run'
944               <<: *functest-jobs
945             - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
946               <<: *functest-jobs
947             - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
948               <<: *functest-jobs
949             - name: 'functest-opnfv-functest-features-{tag}-fds-run'
950               <<: *functest-jobs
951             - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
952               <<: *functest-jobs
953             - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
954               <<: *functest-jobs
955
956 - project:
957     name: 'functest'
958     <<: *functest-params
959     jobs:
960       - 'functest-{tag}-daily'
961       - 'functest-{tag}-check'
962       - 'functest-{tag}-gate'
963
964 - view:
965     name: functest
966     view-type: list
967     columns:
968       - status
969       - weather
970       - job
971       - last-success
972       - last-failure
973       - last-duration
974     regex: ^functest-[a-z]+-(daily|check|gate)$