Merge "Add triggers to verify Functest"
[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       - master:
11           branch: master
12
13 - job-template:
14     name: '{repo}-functest-{container}-{tag}-pull'
15     parameters:
16       - functest-virtual-defaults
17     builders:
18       - shell: sudo docker pull {repo}/functest-{container}:{tag}
19
20 - project:
21     name: repo-functest-container-tag-pull
22     <<: *functest-defaultparameters
23     container:
24       - healthcheck
25       - smoke
26       - benchmarking
27       - components
28       - vnf
29       - features
30     jobs:
31       - '{repo}-functest-{container}-{tag}-pull'
32
33 - functest-pulljobs: &functest-pulljobs
34     name: 'functest-pulljobs'
35     projects:
36       - name: '{repo}-functest-healthcheck-{tag}-pull'
37       - name: '{repo}-functest-smoke-{tag}-pull'
38       - name: '{repo}-functest-benchmarking-{tag}-pull'
39       - name: '{repo}-functest-components-{tag}-pull'
40       - name: '{repo}-functest-vnf-{tag}-pull'
41       - name: '{repo}-functest-features-{tag}-pull'
42
43 - job-template:
44     name: '{repo}-functest-{container}-{test}-{tag}-run'
45     parameters:
46       - functest-virtual-defaults
47     builders:
48       - shell: |
49           sudo docker run --rm \
50             -e EXTERNAL_NETWORK=public1 \
51             -v /home/opnfv/functest/results/$JOB_NAME-$BUILD_ID:\
52           /home/opnfv/functest/results \
53             -v /home/opnfv/functest/openstack.creds:\
54           /home/opnfv/functest/conf/env_file \
55             -v /home/opnfv/functest/images:/home/opnfv/functest/images \
56             -v /home/opnfv/functest/tempest_blacklist.yaml:\
57           /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/\
58           tempest/custom_tests/blacklist.yaml \
59             -v /home/opnfv/functest/rally_blacklist.yaml:\
60           /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/\
61           rally/blacklist.yaml \
62             {repo}/functest-{container}:{tag} run_tests -t {test}
63
64 - project:
65     name: repo-functest-healthcheck-test-tag-run
66     <<: *functest-defaultparameters
67     container: healthcheck
68     test:
69       - connection_check
70       - tenantnetwork1
71       - tenantnetwork2
72       - vmready1
73       - vmready2
74       - singlevm1
75       - singlevm2
76       - vping_ssh
77       - vping_userdata
78       - cinder_test
79       - odl
80       - api_check
81       - snaps_health_check
82     jobs:
83       - '{repo}-functest-{container}-{test}-{tag}-run'
84
85 - functest-healthcheckjobs: &functest-healthcheckjobs
86     name: 'functest-healthcheckjobs'
87     projects:
88       - name: '{repo}-functest-healthcheck-connection_check-{tag}-run'
89       - name: '{repo}-functest-healthcheck-tenantnetwork1-{tag}-run'
90       - name: '{repo}-functest-healthcheck-tenantnetwork2-{tag}-run'
91       - name: '{repo}-functest-healthcheck-vmready1-{tag}-run'
92       - name: '{repo}-functest-healthcheck-vmready2-{tag}-run'
93       - name: '{repo}-functest-healthcheck-singlevm1-{tag}-run'
94       - name: '{repo}-functest-healthcheck-singlevm2-{tag}-run'
95       - name: '{repo}-functest-healthcheck-vping_ssh-{tag}-run'
96       - name: '{repo}-functest-healthcheck-vping_userdata-{tag}-run'
97       - name: '{repo}-functest-healthcheck-cinder_test-{tag}-run'
98       - name: '{repo}-functest-healthcheck-odl-{tag}-run'
99       - name: '{repo}-functest-healthcheck-api_check-{tag}-run'
100       - name: '{repo}-functest-healthcheck-snaps_health_check-{tag}-run'
101
102 - project:
103     name: repo-functest-smoke-test-tag-run
104     <<: *functest-defaultparameters
105     container: smoke
106     test:
107       - tempest_smoke
108       - neutron-tempest-plugin-api
109       - rally_sanity
110       - rally_jobs
111       - refstack_defcore
112       - patrole
113       - snaps_smoke
114       - neutron_trunk
115       - networking-bgpvpn
116       - networking-sfc
117       - barbican
118     jobs:
119       - '{repo}-functest-{container}-{test}-{tag}-run'
120
121 - functest-smokejobs: &functest-smokejobs
122     name: 'functest-smokejobs'
123     projects:
124       - name: '{repo}-functest-smoke-tempest_smoke-{tag}-run'
125       - name: '{repo}-functest-smoke-neutron-tempest-plugin-api-{tag}-run'
126       - name: '{repo}-functest-smoke-rally_sanity-{tag}-run'
127       - name: '{repo}-functest-smoke-rally_jobs-{tag}-run'
128       - name: '{repo}-functest-smoke-refstack_defcore-{tag}-run'
129       - name: '{repo}-functest-smoke-patrole-{tag}-run'
130       - name: '{repo}-functest-smoke-snaps_smoke-{tag}-run'
131       - name: '{repo}-functest-smoke-neutron_trunk-{tag}-run'
132       - name: '{repo}-functest-smoke-networking-bgpvpn-{tag}-run'
133       - name: '{repo}-functest-smoke-networking-sfc-{tag}-run'
134       - name: '{repo}-functest-smoke-barbican-{tag}-run'
135
136 - project:
137     name: repo-functest-benchmarking-test-tag-run'
138     <<: *functest-defaultparameters
139     container: benchmarking
140     test:
141       - vmtp
142       - shaker
143     jobs:
144       - '{repo}-functest-{container}-{test}-{tag}-run'
145
146 - functest-benchmarkingjobs: &functest-benchmarkingjobs
147     name: 'functest-benchmarkingjobs'
148     projects:
149       - name: '{repo}-functest-benchmarking-vmtp-{tag}-run'
150       - name: '{repo}-functest-benchmarking-shaker-{tag}-run'
151
152 - project:
153     name: repo-functest-components-test-tag-run
154     <<: *functest-defaultparameters
155     container: components
156     test:
157       - tempest_full
158       - tempest_scenario
159       - rally_full
160     jobs:
161       - '{repo}-functest-{container}-{test}-{tag}-run'
162
163 - functest-componentsjobs: &functest-componentsjobs
164     name: 'functest-componentsjobs'
165     projects:
166       - name: '{repo}-functest-components-tempest_full-{tag}-run'
167       - name: '{repo}-functest-components-tempest_scenario-{tag}-run'
168       # - name: '{repo}-functest-components-rally_full-{tag}-run'
169
170 - project:
171     name: repo-functest-vnf-{test}-{tag}-run
172     <<: *functest-defaultparameters
173     container: vnf
174     test:
175       - cloudify
176       - cloudify_ims
177       - heat_ims
178       - vyos_vrouter
179       - juju_epc
180     jobs:
181       - '{repo}-functest-{container}-{test}-{tag}-run'
182
183 - functest-vnfjobs: &functest-vnfjobs
184     name: 'functest-vnfjobs'
185     projects:
186       - name: '{repo}-functest-vnf-cloudify-{tag}-run'
187       - name: '{repo}-functest-vnf-cloudify_ims-{tag}-run'
188       - name: '{repo}-functest-vnf-heat_ims-{tag}-run'
189       - name: '{repo}-functest-vnf-vyos_vrouter-{tag}-run'
190       - name: '{repo}-functest-vnf-juju_epc-{tag}-run'
191
192 - project:
193     name: repo-functest-features-test-tag-run
194     <<: *functest-defaultparameters
195     container: features
196     test:
197       - doctor-notification
198       - bgpvpn
199       - functest-odl-sfc
200       - barometercollectd
201       - vgpu
202       - stor4nfv_os
203     jobs:
204       - '{repo}-functest-{container}-{test}-{tag}-run'
205
206 - functest-featuresjobs: &functest-featuresjobs
207     name: 'functest-featuresjobs'
208     projects:
209       - name: '{repo}-functest-features-doctor-notification-{tag}-run'
210       - name: '{repo}-functest-features-bgpvpn-{tag}-run'
211       - name: '{repo}-functest-features-functest-odl-sfc-{tag}-run'
212       - name: '{repo}-functest-features-barometercollectd-{tag}-run'
213       - name: '{repo}-functest-features-vgpu-{tag}-run'
214       - name: '{repo}-functest-features-stor4nfv_os-{tag}-run'
215
216 - job-template:
217     name: '{repo}-functest-{tag}-daily'
218     <<: *functest-defaultparameters
219     project-type: multijob
220     parameters:
221       - functest-virtual-defaults
222     builders:
223       - multijob:
224           name: pull containers
225           <<: *functest-pulljobs
226       - multijob:
227           name: healthcheck
228           <<: *functest-healthcheckjobs
229       - multijob:
230           name: smoke
231           <<: *functest-smokejobs
232       - multijob:
233           name: benchmarking
234           <<: *functest-benchmarkingjobs
235       - multijob:
236           name: components
237           <<: *functest-componentsjobs
238       - multijob:
239           name: vnf
240           <<: *functest-vnfjobs
241       - multijob:
242           name: features
243           <<: *functest-featuresjobs
244
245 - project:
246     name: repo-functest-tag-daily
247     <<: *functest-defaultparameters
248     jobs:
249       - '{repo}-functest-{tag}-daily'
250
251 - functest-buildparameters: &functest-buildparameters
252     name: 'functest-buildparameters'
253     parameters:
254       - functest-virtual-defaults
255       - string:
256           name: BRANCH
257           default: '{branch}'
258
259 - job-template:
260     name: '{repo}-functest-{container}-{tag}-build'
261     <<: *functest-buildparameters
262     scm:
263       - git:
264           url: https://gerrit.opnfv.org/gerrit/functest
265           refspec: '+refs/changes/*:refs/changes/*'
266           branches:
267             - $GERRIT_REFSPEC
268     builders:
269       - shell: |
270           case "{container}" in
271           "components")
272               args="" ;;
273           *)
274               args="--build-arg BRANCH=$GERRIT_REFSPEC" ;;
275           esac
276           cd docker/{container}
277           sudo docker build \
278             ${{args}} --pull=false --no-cache --force-rm=true \
279             -t {repo}/functest-{container}:{tag} .
280
281 - project:
282     name: repo-functest-container-tag-build
283     <<: *functest-defaultparameters
284     container:
285       - core
286       - tempest
287       - healthcheck
288       - smoke
289       - benchmarking
290       - components
291       - vnf
292       - features
293     jobs:
294       - '{repo}-functest-{container}-{tag}-build'
295
296 - functest-projectparameters: &functest-projectparameters
297     name: 'functest-projectparameters'
298     current-parameters: true
299
300 - job-template:
301     name: '{repo}-functest-{tag}-gate'
302     project-type: multijob
303     <<: *functest-buildparameters
304     triggers:
305       - gerrit-trigger-patchset-created:
306           project: 'functest'
307           branch: '{branch}'
308           files: '**'
309     builders:
310       - multijob:
311           name: build functest-core
312           projects:
313             - name: '{repo}-functest-core-{tag}-build'
314               <<: *functest-projectparameters
315       - multijob:
316           name: build functest-tempest
317           projects:
318             - name: '{repo}-functest-tempest-{tag}-build'
319               <<: *functest-projectparameters
320       - multijob:
321           name: build all remaining contrainers
322           projects:
323             - name: '{repo}-functest-healthcheck-{tag}-build'
324               <<: *functest-projectparameters
325             - name: '{repo}-functest-smoke-{tag}-build'
326               <<: *functest-projectparameters
327             - name: '{repo}-functest-benchmarking-{tag}-build'
328               <<: *functest-projectparameters
329             - name: '{repo}-functest-components-{tag}-build'
330               <<: *functest-projectparameters
331             - name: '{repo}-functest-vnf-{tag}-build'
332               <<: *functest-projectparameters
333             - name: '{repo}-functest-features-{tag}-build'
334               <<: *functest-projectparameters
335       - multijob:
336           name: healthcheck
337           <<: *functest-healthcheckjobs
338       - multijob:
339           name: smoke
340           <<: *functest-smokejobs
341       - multijob:
342           name: benchmarking
343           <<: *functest-benchmarkingjobs
344       - multijob:
345           name: components
346           <<: *functest-componentsjobs
347       # - multijob:
348       #     name: vnf
349       #     <<: *functest-vnfjobs
350       - multijob:
351           name: features
352           <<: *functest-featuresjobs
353
354 - project:
355     name: repo-functest-tag-gate
356     <<: *functest-defaultparameters
357     jobs:
358       - '{repo}-functest-{tag}-gate'