Clean all containers as first step
[releng.git] / jjb / functest / functest-virtual.yaml
1 ---
2 - functest-defaultparameters: &functest-defaultparameters
3     name: 'functest-defaultparameters'
4     repo: opnfv
5     tag:
6       - gambia:
7           branch: stable/gambia
8       - hunter:
9           branch: stable/hunter
10       - latest:
11           branch: master
12
13 - job:
14     name: alpine-pull
15     parameters:
16       - functest-virtual-defaults
17     builders:
18       - shell: sudo docker pull alpine:3.8
19
20 - job-template:
21     name: '{repo}-functest-{container}-{tag}-pull'
22     parameters:
23       - functest-virtual-defaults
24     builders:
25       - shell: sudo docker pull {repo}/functest-{container}:{tag}
26
27 - project:
28     name: repo-functest-container-tag-pull
29     <<: *functest-defaultparameters
30     container:
31       - core
32       - tempest
33       - healthcheck
34       - smoke
35       - benchmarking
36       - components
37       - vnf
38       - features
39     jobs:
40       - '{repo}-functest-{container}-{tag}-pull'
41
42 - functest-pulljobs: &functest-pulljobs
43     name: 'functest-pulljobs'
44     projects:
45       - name: 'alpine-pull'
46       - name: '{repo}-functest-core-{tag}-pull'
47       - name: '{repo}-functest-tempest-{tag}-pull'
48       - name: '{repo}-functest-healthcheck-{tag}-pull'
49       - name: '{repo}-functest-smoke-{tag}-pull'
50       - name: '{repo}-functest-benchmarking-{tag}-pull'
51       - name: '{repo}-functest-components-{tag}-pull'
52       - name: '{repo}-functest-vnf-{tag}-pull'
53       - name: '{repo}-functest-features-{tag}-pull'
54
55 - job:
56     name: alpine-rmi
57     parameters:
58       - functest-virtual-defaults
59     builders:
60       - shell: sudo docker rmi alpine:3.8 || true
61
62 - job-template:
63     name: '{repo}-functest-{container}-{tag}-rmi'
64     parameters:
65       - functest-virtual-defaults
66     builders:
67       - shell: sudo docker rmi {repo}/functest-{container}:{tag} || true
68
69 - project:
70     name: repo-functest-container-tag-rmi
71     <<: *functest-defaultparameters
72     container:
73       - core
74       - tempest
75       - healthcheck
76       - smoke
77       - benchmarking
78       - components
79       - vnf
80       - features
81     jobs:
82       - '{repo}-functest-{container}-{tag}-rmi'
83
84 - job-template:
85     name: '{repo}-functest-{container}-{test}-{tag}-run'
86     parameters:
87       - functest-virtual-defaults
88     builders:
89       - shell: |
90           sudo docker run --rm \
91             -e EXTERNAL_NETWORK=public1 \
92             -v /home/opnfv/functest/results/$JOB_NAME-$BUILD_ID:\
93           /home/opnfv/functest/results \
94             -v /home/opnfv/functest/openstack.creds:\
95           /home/opnfv/functest/conf/env_file \
96             -v /home/opnfv/functest/images:/home/opnfv/functest/images \
97             -v /home/opnfv/functest/tempest_blacklist.yaml:\
98           /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/\
99           tempest/custom_tests/blacklist.yaml \
100             -v /home/opnfv/functest/rally_blacklist.yaml:\
101           /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/\
102           rally/blacklist.yaml \
103             {repo}/functest-{container}:{tag} run_tests -t {test} || \
104             export RES=$?
105           gsutil -m cp -r /home/opnfv/functest/results/$JOB_NAME-$BUILD_ID \
106             gs://artifacts.opnfv.org/functest/ > /dev/null
107           find /home/opnfv/functest/results/$JOB_NAME-$BUILD_ID -type f \
108             -printf \
109             "http://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID/%P\n"
110           sudo rm -rf /home/opnfv/functest/results/$JOB_NAME-$BUILD_ID
111           exit $RES
112
113 - project:
114     name: repo-functest-healthcheck-test-tag-run
115     <<: *functest-defaultparameters
116     container: healthcheck
117     test:
118       - connection_check
119       - tenantnetwork1
120       - tenantnetwork2
121       - vmready1
122       - vmready2
123       - singlevm1
124       - singlevm2
125       - vping_ssh
126       - vping_userdata
127       - cinder_test
128       - odl
129       - api_check
130       - snaps_health_check
131     jobs:
132       - '{repo}-functest-{container}-{test}-{tag}-run'
133
134 - functest-healthcheckjobs: &functest-healthcheckjobs
135     name: 'functest-healthcheckjobs'
136     projects:
137       - name: '{repo}-functest-healthcheck-connection_check-{tag}-run'
138       - name: '{repo}-functest-healthcheck-tenantnetwork1-{tag}-run'
139       - name: '{repo}-functest-healthcheck-tenantnetwork2-{tag}-run'
140       - name: '{repo}-functest-healthcheck-vmready1-{tag}-run'
141       - name: '{repo}-functest-healthcheck-vmready2-{tag}-run'
142       - name: '{repo}-functest-healthcheck-singlevm1-{tag}-run'
143       - name: '{repo}-functest-healthcheck-singlevm2-{tag}-run'
144       - name: '{repo}-functest-healthcheck-vping_ssh-{tag}-run'
145       - name: '{repo}-functest-healthcheck-vping_userdata-{tag}-run'
146       - name: '{repo}-functest-healthcheck-cinder_test-{tag}-run'
147       - name: '{repo}-functest-healthcheck-odl-{tag}-run'
148       - name: '{repo}-functest-healthcheck-api_check-{tag}-run'
149       - name: '{repo}-functest-healthcheck-snaps_health_check-{tag}-run'
150
151 - project:
152     name: repo-functest-smoke-test-tag-run
153     <<: *functest-defaultparameters
154     container: smoke
155     test:
156       - tempest_smoke
157       - neutron-tempest-plugin-api
158       - rally_sanity
159       - rally_jobs
160       - refstack_defcore
161       - patrole
162       - snaps_smoke
163       - neutron_trunk
164       - networking-bgpvpn
165       - networking-sfc
166       - barbican
167     jobs:
168       - '{repo}-functest-{container}-{test}-{tag}-run'
169
170 - functest-smokejobs: &functest-smokejobs
171     name: 'functest-smokejobs'
172     projects:
173       - name: '{repo}-functest-smoke-tempest_smoke-{tag}-run'
174       - name: '{repo}-functest-smoke-neutron-tempest-plugin-api-{tag}-run'
175       - name: '{repo}-functest-smoke-rally_sanity-{tag}-run'
176       - name: '{repo}-functest-smoke-rally_jobs-{tag}-run'
177       - name: '{repo}-functest-smoke-refstack_defcore-{tag}-run'
178       - name: '{repo}-functest-smoke-patrole-{tag}-run'
179       - name: '{repo}-functest-smoke-snaps_smoke-{tag}-run'
180       - name: '{repo}-functest-smoke-neutron_trunk-{tag}-run'
181       - name: '{repo}-functest-smoke-networking-bgpvpn-{tag}-run'
182       - name: '{repo}-functest-smoke-networking-sfc-{tag}-run'
183       - name: '{repo}-functest-smoke-barbican-{tag}-run'
184
185 - project:
186     name: repo-functest-benchmarking-test-tag-run'
187     <<: *functest-defaultparameters
188     container: benchmarking
189     test:
190       - vmtp
191       - shaker
192     jobs:
193       - '{repo}-functest-{container}-{test}-{tag}-run'
194
195 - functest-benchmarkingjobs: &functest-benchmarkingjobs
196     name: 'functest-benchmarkingjobs'
197     projects:
198       - name: '{repo}-functest-benchmarking-vmtp-{tag}-run'
199       - name: '{repo}-functest-benchmarking-shaker-{tag}-run'
200
201 - project:
202     name: repo-functest-components-test-tag-run
203     <<: *functest-defaultparameters
204     container: components
205     test:
206       - tempest_full
207       - tempest_scenario
208       - rally_full
209     jobs:
210       - '{repo}-functest-{container}-{test}-{tag}-run'
211
212 - functest-componentsjobs: &functest-componentsjobs
213     name: 'functest-componentsjobs'
214     projects:
215       - name: '{repo}-functest-components-tempest_full-{tag}-run'
216       - name: '{repo}-functest-components-tempest_scenario-{tag}-run'
217       # - name: '{repo}-functest-components-rally_full-{tag}-run'
218
219 - project:
220     name: repo-functest-vnf-{test}-{tag}-run
221     <<: *functest-defaultparameters
222     container: vnf
223     test:
224       - cloudify
225       - cloudify_ims
226       - heat_ims
227       - vyos_vrouter
228       - juju_epc
229     jobs:
230       - '{repo}-functest-{container}-{test}-{tag}-run'
231
232 - functest-vnfjobs: &functest-vnfjobs
233     name: 'functest-vnfjobs'
234     projects:
235       - name: '{repo}-functest-vnf-cloudify-{tag}-run'
236       - name: '{repo}-functest-vnf-cloudify_ims-{tag}-run'
237       - name: '{repo}-functest-vnf-heat_ims-{tag}-run'
238       - name: '{repo}-functest-vnf-vyos_vrouter-{tag}-run'
239       - name: '{repo}-functest-vnf-juju_epc-{tag}-run'
240
241 - project:
242     name: repo-functest-features-test-tag-run
243     <<: *functest-defaultparameters
244     container: features
245     test:
246       - doctor-notification
247       - bgpvpn
248       - functest-odl-sfc
249       - barometercollectd
250       - vgpu
251       - stor4nfv_os
252     jobs:
253       - '{repo}-functest-{container}-{test}-{tag}-run'
254
255 - functest-featuresjobs: &functest-featuresjobs
256     name: 'functest-featuresjobs'
257     projects:
258       - name: '{repo}-functest-features-doctor-notification-{tag}-run'
259       - name: '{repo}-functest-features-bgpvpn-{tag}-run'
260       - name: '{repo}-functest-features-functest-odl-sfc-{tag}-run'
261       - name: '{repo}-functest-features-barometercollectd-{tag}-run'
262       - name: '{repo}-functest-features-vgpu-{tag}-run'
263       - name: '{repo}-functest-features-stor4nfv_os-{tag}-run'
264
265 - functest-advjobs: &functest-advjobs
266     name: '&functest-advjobs'
267     projects:
268       - name: '{repo}-functest-smoke-tempest_smoke-{tag}-run'
269       - name: '{repo}-functest-smoke-neutron-tempest-plugin-api-{tag}-run'
270       - name: '{repo}-functest-smoke-rally_sanity-{tag}-run'
271       - name: '{repo}-functest-smoke-rally_jobs-{tag}-run'
272       - name: '{repo}-functest-smoke-refstack_defcore-{tag}-run'
273       - name: '{repo}-functest-smoke-patrole-{tag}-run'
274       - name: '{repo}-functest-smoke-snaps_smoke-{tag}-run'
275       - name: '{repo}-functest-smoke-neutron_trunk-{tag}-run'
276       - name: '{repo}-functest-smoke-networking-bgpvpn-{tag}-run'
277       - name: '{repo}-functest-smoke-networking-sfc-{tag}-run'
278       - name: '{repo}-functest-smoke-barbican-{tag}-run'
279       - name: '{repo}-functest-benchmarking-vmtp-{tag}-run'
280       - name: '{repo}-functest-benchmarking-shaker-{tag}-run'
281       - name: '{repo}-functest-components-tempest_full-{tag}-run'
282       - name: '{repo}-functest-components-tempest_scenario-{tag}-run'
283       # - name: '{repo}-functest-components-rally_full-{tag}-run'
284       - name: '{repo}-functest-vnf-cloudify-{tag}-run'
285       # - name: '{repo}-functest-vnf-cloudify_ims-{tag}-run'
286       # - name: '{repo}-functest-vnf-heat_ims-{tag}-run'
287       # - name: '{repo}-functest-vnf-vyos_vrouter-{tag}-run'
288       # - name: '{repo}-functest-vnf-juju_epc-{tag}-run'
289       - name: '{repo}-functest-features-doctor-notification-{tag}-run'
290       - name: '{repo}-functest-features-bgpvpn-{tag}-run'
291       - name: '{repo}-functest-features-functest-odl-sfc-{tag}-run'
292       - name: '{repo}-functest-features-barometercollectd-{tag}-run'
293       - name: '{repo}-functest-features-vgpu-{tag}-run'
294       - name: '{repo}-functest-features-stor4nfv_os-{tag}-run'
295
296 - functest-advcontainers-rmi: &functest-advcontainers-rmi
297     name: 'functest-advcontainers-rmi'
298     projects:
299       - name: '{repo}-functest-smoke-{tag}-rmi'
300       - name: '{repo}-functest-benchmarking-{tag}-rmi'
301       - name: '{repo}-functest-components-{tag}-rmi'
302       - name: '{repo}-functest-vnf-{tag}-rmi'
303       - name: '{repo}-functest-features-{tag}-rmi'
304
305 - job-template:
306     name: '{repo}-functest-{tag}-daily'
307     <<: *functest-defaultparameters
308     project-type: multijob
309     triggers:
310       - timed: '@daily'
311     properties:
312       - build-blocker:
313           use-build-blocker: true
314           block-level: 'NODE'
315           queue-scanning: 'BUILDABLE'
316           blocking-jobs:
317             - '{repo}-functest-.*-.*'
318     parameters:
319       - functest-virtual-defaults
320     builders:
321       - multijob:
322           name: remove advanced functest containers
323           <<: *functest-advcontainers-rmi
324       - multijob:
325           name: remove functest-tempest
326           projects:
327             - name: '{repo}-functest-tempest-{tag}-rmi'
328       - multijob:
329           name: remove functest-core
330           projects:
331             - name: '{repo}-functest-core-{tag}-rmi'
332       - multijob:
333           name: remove alpine
334           projects:
335             - name: 'alpine-rmi'
336       - multijob:
337           name: pull containers
338           <<: *functest-pulljobs
339       - multijob:
340           name: healthcheck
341           <<: *functest-healthcheckjobs
342       - multijob:
343           name: advanced suites
344           <<: *functest-advjobs
345
346 - project:
347     name: repo-functest-tag-daily
348     <<: *functest-defaultparameters
349     jobs:
350       - '{repo}-functest-{tag}-daily'
351
352 - functest-gateparameters: &functest-gateparameters
353     name: 'functest-gateparameters'
354     parameters:
355       - functest-virtual-defaults
356
357 - functest-checkparameters: &functest-checkparameters
358     name: 'functest-checkparameters'
359     parameters:
360       - functest-virtual-defaults
361       - string:
362           name: BRANCH
363           default: '{branch}'
364
365 - builder:
366     name: build-containers
367     builders:
368       - shell: |
369          case "{container}" in
370          "components")
371              args="" ;;
372          *)
373              args="--build-arg BRANCH={ref}" ;;
374          esac
375          cd docker/{container}
376          sudo docker build \
377            ${{args}} --pull=false --no-cache --force-rm=true \
378            -t {repo}/functest-{container}:{tag} .
379
380 - scm:
381     name: functest-scm
382     scm:
383       - git:
384           url: https://gerrit.opnfv.org/gerrit/functest
385           refspec: '+refs/changes/*:refs/changes/*'
386           branches:
387             - '{ref}'
388
389 - functest-buildparameters: &functest-buildparameters
390     name: 'functest-buildparameters'
391     container: '{container}'
392     repo: '{repo}'
393     tag: '{tag}'
394
395 - job-template:
396     name: '{repo}-functest-{container}-{tag}-gate'
397     <<: *functest-gateparameters
398     scm:
399       - functest-scm:
400           ref: $GERRIT_REFSPEC
401     builders:
402       - build-containers:
403           ref: $GERRIT_REFSPEC
404           <<: *functest-buildparameters
405
406 - job-template:
407     name: '{repo}-functest-{container}-{tag}-check'
408     <<: *functest-checkparameters
409     scm:
410       - functest-scm:
411           ref: $BRANCH
412     builders:
413       - build-containers:
414           ref: $BRANCH
415           <<: *functest-buildparameters
416
417 - project:
418     name: repo-functest-container-tag-build
419     <<: *functest-defaultparameters
420     container:
421       - core
422       - tempest
423       - healthcheck
424       - smoke
425       - benchmarking
426       - components
427       - vnf
428       - features
429     jobs:
430       - '{repo}-functest-{container}-{tag}-gate'
431       - '{repo}-functest-{container}-{tag}-check'
432
433 - functest-projectparameters: &functest-projectparameters
434     name: 'functest-projectparameters'
435     current-parameters: true
436
437 - job-template:
438     name: '{repo}-functest-{tag}-gate'
439     project-type: multijob
440     <<: *functest-gateparameters
441     triggers:
442       - gerrit-trigger-patchset-created:
443           project: 'functest'
444           branch: '{branch}'
445           files: '**'
446     properties:
447       - build-blocker:
448           use-build-blocker: true
449           block-level: 'NODE'
450           queue-scanning: 'BUILDABLE'
451           blocking-jobs:
452             - '{repo}-functest-.*-.*'
453     builders:
454       - multijob:
455           name: remove advanced functest containers
456           <<: *functest-advcontainers-rmi
457       - multijob:
458           name: remove functest-tempest
459           projects:
460             - name: '{repo}-functest-tempest-{tag}-rmi'
461               <<: *functest-projectparameters
462       - multijob:
463           name: remove functest-core
464           projects:
465             - name: '{repo}-functest-core-{tag}-rmi'
466               <<: *functest-projectparameters
467       - multijob:
468           name: remove alpine
469           projects:
470             - name: 'alpine-rmi'
471               <<: *functest-projectparameters
472       - multijob:
473           name: pull alpine
474           projects:
475             - name: 'alpine-pull'
476       - multijob:
477           name: build functest-core
478           projects:
479             - name: '{repo}-functest-core-{tag}-gate'
480               <<: *functest-projectparameters
481       - multijob:
482           name: build functest-tempest
483           projects:
484             - name: '{repo}-functest-tempest-{tag}-gate'
485               <<: *functest-projectparameters
486       - multijob:
487           name: build all remaining contrainers
488           projects:
489             - name: '{repo}-functest-healthcheck-{tag}-gate'
490               <<: *functest-projectparameters
491             - name: '{repo}-functest-smoke-{tag}-gate'
492               <<: *functest-projectparameters
493             - name: '{repo}-functest-benchmarking-{tag}-gate'
494               <<: *functest-projectparameters
495             - name: '{repo}-functest-components-{tag}-gate'
496               <<: *functest-projectparameters
497             - name: '{repo}-functest-vnf-{tag}-gate'
498               <<: *functest-projectparameters
499             - name: '{repo}-functest-features-{tag}-gate'
500               <<: *functest-projectparameters
501       - multijob:
502           name: healthcheck
503           <<: *functest-healthcheckjobs
504       - multijob:
505           name: advanced suites
506           <<: *functest-advjobs
507
508 - job-template:
509     name: '{repo}-functest-{tag}-check'
510     project-type: multijob
511     <<: *functest-checkparameters
512     properties:
513       - build-blocker:
514           use-build-blocker: true
515           block-level: 'NODE'
516           queue-scanning: 'BUILDABLE'
517           blocking-jobs:
518             - '{repo}-functest-.*-.*'
519     builders:
520       - multijob:
521           name: remove advanced functest containers
522           <<: *functest-advcontainers-rmi
523       - multijob:
524           name: remove functest-tempest
525           projects:
526             - name: '{repo}-functest-tempest-{tag}-rmi'
527               <<: *functest-projectparameters
528       - multijob:
529           name: remove functest-core
530           projects:
531             - name: '{repo}-functest-core-{tag}-rmi'
532               <<: *functest-projectparameters
533       - multijob:
534           name: remove alpine
535           projects:
536             - name: 'alpine-rmi'
537               <<: *functest-projectparameters
538       - multijob:
539           name: pull alpine
540           projects:
541             - name: 'alpine-pull'
542       - multijob:
543           name: build functest-core
544           projects:
545             - name: '{repo}-functest-core-{tag}-check'
546               <<: *functest-projectparameters
547       - multijob:
548           name: build functest-tempest
549           projects:
550             - name: '{repo}-functest-tempest-{tag}-check'
551               <<: *functest-projectparameters
552       - multijob:
553           name: build all remaining contrainers
554           projects:
555             - name: '{repo}-functest-healthcheck-{tag}-check'
556               <<: *functest-projectparameters
557             - name: '{repo}-functest-smoke-{tag}-check'
558               <<: *functest-projectparameters
559             - name: '{repo}-functest-benchmarking-{tag}-check'
560               <<: *functest-projectparameters
561             - name: '{repo}-functest-components-{tag}-check'
562               <<: *functest-projectparameters
563             - name: '{repo}-functest-vnf-{tag}-check'
564               <<: *functest-projectparameters
565             - name: '{repo}-functest-features-{tag}-check'
566               <<: *functest-projectparameters
567       - multijob:
568           name: healthcheck
569           <<: *functest-healthcheckjobs
570       - multijob:
571           name: advanced suites
572           <<: *functest-advjobs
573
574 - project:
575     name: repo-functest-tag-build
576     <<: *functest-defaultparameters
577     jobs:
578       - '{repo}-functest-{tag}-gate'
579       - '{repo}-functest-{tag}-check'