Publish first Airship testing job
[releng.git] / jjb / airship / airship.yaml
1 ---
2 - airship-jobs: &airship-jobs
3     name: 'airship-jobs'
4     current-parameters: true
5
6 - airship-params: &airship-params
7     name: 'airship-params'
8     repo: 'opnfv'
9     port:
10     tag:
11       - hunter:
12           branch: stable/hunter
13           slave: intel-pod17
14
15 - parameter:
16     name: airship-slave
17     parameters:
18       - label:
19           name: slave
20           default: '{slave}'
21
22 - parameter:
23     name: airship-branch
24     parameters:
25       - string:
26           name: branch
27           default: '{branch}'
28
29 - airship-containers: &airship-containers
30     name: 'airship-containers'
31     repo: '{repo}'
32     port: '{port}'
33     container: '{container}'
34     tag: '{tag}'
35
36 - airship-run-containers: &airship-run-containers
37     name: 'airship-run-containers'
38     <<: *airship-containers
39     test: '{test}'
40
41 - builder:
42     name: airship-pull-containers
43     builders:
44       - shell: |
45           set +x
46           if [ "{repo}" = "_" ]; then
47             image={container}:{tag}
48           elif [ "{port}" = "None" ]; then
49             image={repo}/{container}:{tag}
50           else
51             image={repo}:{port}/{container}:{tag}
52           fi
53           docker pull $image
54
55 - builder:
56     name: airship-run-containers
57     builders:
58       - shell: |
59           set +ex
60           [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true
61           if [ "{repo}" = "_" ]; then
62             image={container}:{tag}
63           elif [ "{port}" = "None" ]; then
64             image={repo}/{container}:{tag}
65           else
66             image={repo}:{port}/{container}:{tag}
67           fi
68           docker run --rm \
69             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
70             -e DEBUG=True \
71             -e EXTERNAL_NETWORK=public \
72             -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \
73             -v /home/opnfv/functest/images:/home/opnfv/functest/images \
74             -v /home/opnfv/functest/tempest_conf.yaml:/usr/lib/python2.7/\
75           site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml \
76             $image run_tests -t {test}
77           res=$?
78           gsutil -m cp -r $WORKSPACE/ \
79             gs://artifacts.opnfv.org/airship/$JOB_NAME-$BUILD_ID > /dev/null 2>&1
80           find $WORKSPACE -type f \
81             -printf \
82             "http://artifacts.opnfv.org/airship/$JOB_NAME-$BUILD_ID/%P\n"
83           exit $res
84
85 - builder:
86     name: airship-remove-images
87     builders:
88       - shell: |
89           set +x
90           if [ "{repo}" = "_" ]; then
91             image={container}:{tag}
92           elif [ "{port}" = "None" ]; then
93             image={repo}/{container}:{tag}
94           else
95             image={repo}:{port}/{container}:{tag}
96           fi
97           docker rmi $image || true
98
99
100 - job-template:
101     name: 'airship-{repo}-{container}-{tag}-pull'
102     parameters:
103       - airship-slave:
104           slave: '{slave}'
105     builders:
106       - airship-pull-containers:
107           <<: *airship-containers
108
109 - project:
110     name: 'airship-opnfv-functest-healthcheck-pull'
111     <<: *airship-params
112     container: 'functest-healthcheck'
113     jobs:
114       - 'airship-{repo}-{container}-{tag}-pull'
115
116 - project:
117     name: 'airship-opnfv-functest-smoke-pull'
118     <<: *airship-params
119     container: 'functest-smoke'
120     jobs:
121       - 'airship-{repo}-{container}-{tag}-pull'
122
123 - project:
124     name: 'airship-opnfv-functest-benchmarking-pull'
125     <<: *airship-params
126     container: 'functest-benchmarking'
127     jobs:
128       - 'airship-{repo}-{container}-{tag}-pull'
129
130 - project:
131     name: 'airship-opnfv-functest-vnf-pull'
132     <<: *airship-params
133     container: 'functest-vnf'
134     jobs:
135       - 'airship-{repo}-{container}-{tag}-pull'
136
137 - project:
138     name: 'airship-opnfv-functest-features-pull'
139     <<: *airship-params
140     container: 'functest-features'
141     jobs:
142       - 'airship-{repo}-{container}-{tag}-pull'
143
144 - job-template:
145     name: 'airship-{repo}-{container}-{tag}-rmi'
146     parameters:
147       - airship-slave:
148           slave: '{slave}'
149     builders:
150       - airship-remove-images:
151           <<: *airship-containers
152
153 - project:
154     name: 'airship-opnfv-functest-healthcheck-rmi'
155     <<: *airship-params
156     container: 'functest-healthcheck'
157     jobs:
158       - 'airship-{repo}-{container}-{tag}-rmi'
159
160 - project:
161     name: 'airship-opnfv-functest-smoke-rmi'
162     <<: *airship-params
163     container: 'functest-smoke'
164     jobs:
165       - 'airship-{repo}-{container}-{tag}-rmi'
166
167 - project:
168     name: 'airship-opnfv-functest-benchmarking-rmi'
169     <<: *airship-params
170     container: 'functest-benchmarking'
171     jobs:
172       - 'airship-{repo}-{container}-{tag}-rmi'
173
174 - project:
175     name: 'airship-opnfv-functest-vnf-rmi'
176     <<: *airship-params
177     container: 'functest-vnf'
178     jobs:
179       - 'airship-{repo}-{container}-{tag}-rmi'
180
181 - project:
182     name: 'airship-opnfv-functest-features-rmi'
183     <<: *airship-params
184     container: 'functest-features'
185     jobs:
186       - 'airship-{repo}-{container}-{tag}-rmi'
187
188 - job-template:
189     name: 'airship-{repo}-{container}-{tag}-{test}-run'
190     parameters:
191       - airship-slave:
192           slave: '{slave}'
193     builders:
194       - airship-run-containers:
195           <<: *airship-run-containers
196
197 - project:
198     name: 'airship-opnfv-functest-healthcheck'
199     <<: *airship-params
200     container: 'functest-healthcheck'
201     test:
202       - connection_check
203       - tenantnetwork1
204       - tenantnetwork2
205       - vmready1
206       - vmready2
207       - singlevm1
208       - singlevm2
209       - vping_ssh
210       - vping_userdata
211       - cinder_test
212       - odl
213       - tempest_smoke
214     jobs:
215       - 'airship-{repo}-{container}-{tag}-{test}-run'
216
217 - project:
218     name: 'airship-opnfv-functest-smoke'
219     <<: *airship-params
220     container: 'functest-smoke'
221     test:
222       - neutron-tempest-plugin-api
223       - rally_sanity
224       - refstack_defcore
225       - tempest_full
226       - tempest_scenario
227       - patrole
228       - neutron_trunk
229       - networking-bgpvpn
230       - networking-sfc
231       - barbican
232     jobs:
233       - 'airship-{repo}-{container}-{tag}-{test}-run'
234
235 - project:
236     name: 'airship-opnfv-functest-benchmarking'
237     <<: *airship-params
238     container: 'functest-benchmarking'
239     test:
240       - rally_full
241       - rally_jobs
242       - vmtp
243       - shaker
244     jobs:
245       - 'airship-{repo}-{container}-{tag}-{test}-run'
246
247 - project:
248     name: 'airship-opnfv-functest-vnf'
249     <<: *airship-params
250     container: 'functest-vnf'
251     test:
252       - cloudify
253       - cloudify_ims
254       - heat_ims
255       - vyos_vrouter
256       - juju_epc
257     jobs:
258       - 'airship-{repo}-{container}-{tag}-{test}-run'
259
260 - project:
261     name: 'airship-opnfv-functest-features'
262     <<: *airship-params
263     container: 'functest-features'
264     test:
265       - doctor-notification
266       - functest-odl-sfc
267       - barometercollectd
268       - vgpu
269       - stor4nfv_os
270     jobs:
271       - 'airship-{repo}-{container}-{tag}-{test}-run'
272
273 - job-template:
274     name: 'airship-{tag}-daily'
275     project-type: multijob
276     triggers:
277       - timed: '@daily'
278     parameters:
279       - airship-slave:
280           slave: '{slave}'
281     properties:
282       - build-blocker:
283           use-build-blocker: true
284           blocking-level: 'NODE'
285           blocking-jobs:
286             - '^airship-{tag}-(daily|check|gate)$'
287     builders:
288       - multijob:
289           name: remove former images
290           projects:
291             - name: 'airship-opnfv-functest-healthcheck-{tag}-rmi'
292               <<: *airship-jobs
293             - name: 'airship-opnfv-functest-smoke-{tag}-rmi'
294               <<: *airship-jobs
295             - name: 'airship-opnfv-functest-benchmarking-{tag}-rmi'
296               <<: *airship-jobs
297             - name: 'airship-opnfv-functest-vnf-{tag}-rmi'
298               <<: *airship-jobs
299             - name: 'airship-opnfv-functest-features-{tag}-rmi'
300               <<: *airship-jobs
301       - multijob:
302           name: pull containers
303           projects:
304             - name: 'airship-opnfv-functest-healthcheck-{tag}-pull'
305               <<: *airship-jobs
306             - name: 'airship-opnfv-functest-smoke-{tag}-pull'
307               <<: *airship-jobs
308             - name: 'airship-opnfv-functest-benchmarking-{tag}-pull'
309               <<: *airship-jobs
310             - name: 'airship-opnfv-functest-vnf-{tag}-pull'
311               <<: *airship-jobs
312             - name: 'airship-opnfv-functest-features-{tag}-pull'
313               <<: *airship-jobs
314       - multijob:
315           name: opnfv/functest-healthcheck:{tag}
316           projects:
317             - name: 'airship-opnfv-functest-healthcheck-{tag}-connection_check-run'
318               <<: *airship-jobs
319             - name: 'airship-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
320               <<: *airship-jobs
321             - name: 'airship-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
322               <<: *airship-jobs
323             - name: 'airship-opnfv-functest-healthcheck-{tag}-vmready1-run'
324               <<: *airship-jobs
325             - name: 'airship-opnfv-functest-healthcheck-{tag}-vmready2-run'
326               <<: *airship-jobs
327             - name: 'airship-opnfv-functest-healthcheck-{tag}-singlevm1-run'
328               <<: *airship-jobs
329             - name: 'airship-opnfv-functest-healthcheck-{tag}-singlevm2-run'
330               <<: *airship-jobs
331             - name: 'airship-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
332               <<: *airship-jobs
333             - name: 'airship-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
334               <<: *airship-jobs
335             - name: 'airship-opnfv-functest-healthcheck-{tag}-cinder_test-run'
336               <<: *airship-jobs
337             - name: 'airship-opnfv-functest-healthcheck-{tag}-odl-run'
338               <<: *airship-jobs
339             - name: 'airship-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
340               <<: *airship-jobs
341       - multijob:
342           name: opnfv/functest-smoke:{tag}
343           projects:
344             - name: 'airship-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
345               <<: *airship-jobs
346             - name: 'airship-opnfv-functest-smoke-{tag}-rally_sanity-run'
347               <<: *airship-jobs
348             - name: 'airship-opnfv-functest-smoke-{tag}-refstack_defcore-run'
349               <<: *airship-jobs
350             - name: 'airship-opnfv-functest-smoke-{tag}-tempest_full-run'
351               <<: *airship-jobs
352             - name: 'airship-opnfv-functest-smoke-{tag}-tempest_scenario-run'
353               <<: *airship-jobs
354             - name: 'airship-opnfv-functest-smoke-{tag}-patrole-run'
355               <<: *airship-jobs
356             - name: 'airship-opnfv-functest-smoke-{tag}-neutron_trunk-run'
357               <<: *airship-jobs
358             - name: 'airship-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
359               <<: *airship-jobs
360             - name: 'airship-opnfv-functest-smoke-{tag}-networking-sfc-run'
361               <<: *airship-jobs
362             - name: 'airship-opnfv-functest-smoke-{tag}-barbican-run'
363               <<: *airship-jobs
364       - multijob:
365           name: opnfv/functest-benchmarking:{tag}
366           projects:
367             - name: 'airship-opnfv-functest-benchmarking-{tag}-rally_full-run'
368               <<: *airship-jobs
369             - name: 'airship-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
370               <<: *airship-jobs
371             - name: 'airship-opnfv-functest-benchmarking-{tag}-vmtp-run'
372               <<: *airship-jobs
373             - name: 'airship-opnfv-functest-benchmarking-{tag}-shaker-run'
374               <<: *airship-jobs
375       - multijob:
376           name: opnfv/functest-vnf:{tag}
377           execution-type: SEQUENTIALLY
378           projects:
379             - name: 'airship-opnfv-functest-vnf-{tag}-cloudify-run'
380               <<: *airship-jobs
381             - name: 'airship-opnfv-functest-vnf-{tag}-cloudify_ims-run'
382               <<: *airship-jobs
383             - name: 'airship-opnfv-functest-vnf-{tag}-heat_ims-run'
384               <<: *airship-jobs
385             - name: 'airship-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
386               <<: *airship-jobs
387             - name: 'airship-opnfv-functest-vnf-{tag}-juju_epc-run'
388               <<: *airship-jobs
389       - multijob:
390           name: opnfv/functest-features:{tag}
391           projects:
392             - name: 'airship-opnfv-functest-features-{tag}-doctor-notification-run'
393               <<: *airship-jobs
394             - name: 'airship-opnfv-functest-features-{tag}-functest-odl-sfc-run'
395               <<: *airship-jobs
396             - name: 'airship-opnfv-functest-features-{tag}-barometercollectd-run'
397               <<: *airship-jobs
398             - name: 'airship-opnfv-functest-features-{tag}-vgpu-run'
399               <<: *airship-jobs
400             - name: 'airship-opnfv-functest-features-{tag}-stor4nfv_os-run'
401               <<: *airship-jobs
402
403
404 - project:
405     name: 'airship'
406     <<: *airship-params
407     jobs:
408       - 'airship-{tag}-daily'
409
410 - view:
411     name: airship
412     view-type: list
413     columns:
414       - status
415       - weather
416       - job
417       - last-success
418       - last-failure
419       - last-duration
420     regex: ^airship-[a-z]+-(daily|check|gate)$