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