Leverage on S3 support proposed by Xtesting
[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       - latest:
12           branch: master
13           slave: intel-pod17
14           functest_tag: hunter
15
16 - parameter:
17     name: airship-slave
18     parameters:
19       - label:
20           name: slave
21           default: '{slave}'
22
23 - airship-containers: &airship-containers
24     name: 'airship-containers'
25     repo: '{repo}'
26     port: '{port}'
27     container: '{container}'
28     functest_tag: '{functest_tag}'
29
30 - airship-run-containers: &airship-run-containers
31     name: 'airship-run-containers'
32     <<: *airship-containers
33     test: '{test}'
34
35 - builder:
36     name: airship-pull-containers
37     builders:
38       - shell: |
39           set +x
40           if [ "{repo}" = "_" ]; then
41             image={container}:{functest_tag}
42           elif [ "{port}" = "None" ]; then
43             image={repo}/{container}:{functest_tag}
44           else
45             image={repo}:{port}/{container}:{functest_tag}
46           fi
47           sudo docker pull $image
48
49 - builder:
50     name: airship-run-containers
51     builders:
52       - shell: |
53           set +x
54           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
55           if [ "{repo}" = "_" ]; then
56             image={container}:{functest_tag}
57           elif [ "{port}" = "None" ]; then
58             image={repo}/{container}:{functest_tag}
59           else
60             image={repo}:{port}/{container}:{functest_tag}
61           fi
62           sudo docker run --rm \
63             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
64             -e S3_DST_URL=s3://artifacts.opnfv.org/xtesting/$JOB_NAME-$BUILD_ID \
65             -e HTTP_DST_URL=http://artifacts.opnfv.org/xtesting/$JOB_NAME-$BUILD_ID \
66             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
67             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
68             -e NODE_NAME=$slave \
69             -e INSTALLER_TYPE=airship \
70             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
71             -v /home/opnfv/functest/.boto:/root/.boto \
72             -e DEBUG=True \
73             -e EXTERNAL_NETWORK=public \
74             -e DEPLOY_SCENARIO=os-nosdn-nofeature-ha \
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 -p
80
81 - builder:
82     name: airship-remove-images
83     builders:
84       - shell: |
85           set +x
86           if [ "{repo}" = "_" ]; then
87             image={container}:{functest_tag}
88           elif [ "{port}" = "None" ]; then
89             image={repo}/{container}:{functest_tag}
90           else
91             image={repo}:{port}/{container}:{functest_tag}
92           fi
93           sudo docker rmi $image || true
94
95 - builder:
96     name: airship-deploy
97     builders:
98       - shell: |
99           set +x
100           export TERM_OPTS=" "
101           sudo -H -E -u ubuntu bash -c 'tools/deploy.sh $slave deploy_site'
102
103 - scm:
104     name: airship-scm
105     scm:
106       - git:
107           url: https://gerrit.opnfv.org/gerrit/airship
108           refspec: '+refs/changes/*:refs/changes/*'
109           branches:
110             - '{ref}'
111
112 - parameter:
113     name: airship-branch
114     parameters:
115       - string:
116           name: branch
117           default: '{branch}'
118
119 - job-template:
120     name: 'airship-deploy-daily-{tag}'
121     parameters:
122       - airship-slave:
123           slave: '{slave}'
124       - airship-branch:
125           branch: '{branch}'
126     scm:
127       - airship-scm:
128           ref: $branch
129     builders:
130       - airship-deploy
131
132 - job-template:
133     name: 'airship-deploy-gate-{tag}'
134     parameters:
135       - airship-slave:
136           slave: '{slave}'
137     scm:
138       - airship-scm:
139           ref: $GERRIT_REFSPEC
140     builders:
141       - airship-deploy
142
143 - project:
144     name: 'airship-deploy'
145     <<: *airship-params
146     jobs:
147       - 'airship-deploy-daily-{tag}'
148       - 'airship-deploy-gate-{tag}'
149
150 - job-template:
151     name: 'airship-{repo}-{container}-{tag}-pull'
152     parameters:
153       - airship-slave:
154           slave: '{slave}'
155     builders:
156       - airship-pull-containers:
157           <<: *airship-containers
158
159 - project:
160     name: 'airship-opnfv-functest-healthcheck-pull'
161     <<: *airship-params
162     container: 'functest-healthcheck'
163     jobs:
164       - 'airship-{repo}-{container}-{tag}-pull'
165
166 - project:
167     name: 'airship-opnfv-functest-smoke-pull'
168     <<: *airship-params
169     container: 'functest-smoke'
170     jobs:
171       - 'airship-{repo}-{container}-{tag}-pull'
172
173 - project:
174     name: 'airship-opnfv-functest-benchmarking-pull'
175     <<: *airship-params
176     container: 'functest-benchmarking'
177     jobs:
178       - 'airship-{repo}-{container}-{tag}-pull'
179
180 - project:
181     name: 'airship-opnfv-functest-vnf-pull'
182     <<: *airship-params
183     container: 'functest-vnf'
184     jobs:
185       - 'airship-{repo}-{container}-{tag}-pull'
186
187 - job-template:
188     name: 'airship-{repo}-{container}-{tag}-rmi'
189     parameters:
190       - airship-slave:
191           slave: '{slave}'
192     builders:
193       - airship-remove-images:
194           <<: *airship-containers
195
196 - project:
197     name: 'airship-opnfv-functest-healthcheck-rmi'
198     <<: *airship-params
199     container: 'functest-healthcheck'
200     jobs:
201       - 'airship-{repo}-{container}-{tag}-rmi'
202
203 - project:
204     name: 'airship-opnfv-functest-smoke-rmi'
205     <<: *airship-params
206     container: 'functest-smoke'
207     jobs:
208       - 'airship-{repo}-{container}-{tag}-rmi'
209
210 - project:
211     name: 'airship-opnfv-functest-benchmarking-rmi'
212     <<: *airship-params
213     container: 'functest-benchmarking'
214     jobs:
215       - 'airship-{repo}-{container}-{tag}-rmi'
216
217 - project:
218     name: 'airship-opnfv-functest-vnf-rmi'
219     <<: *airship-params
220     container: 'functest-vnf'
221     jobs:
222       - 'airship-{repo}-{container}-{tag}-rmi'
223
224 - job-template:
225     name: 'airship-{repo}-{container}-{tag}-{test}-run'
226     parameters:
227       - airship-slave:
228           slave: '{slave}'
229     builders:
230       - airship-run-containers:
231           <<: *airship-run-containers
232
233 - project:
234     name: 'airship-opnfv-functest-healthcheck'
235     <<: *airship-params
236     container: 'functest-healthcheck'
237     test:
238       - connection_check
239       - tenantnetwork1
240       - tenantnetwork2
241       - vmready1
242       - vmready2
243       - singlevm1
244       - singlevm2
245       - vping_ssh
246       - vping_userdata
247       - cinder_test
248       - odl
249       - tempest_smoke
250     jobs:
251       - 'airship-{repo}-{container}-{tag}-{test}-run'
252
253 - project:
254     name: 'airship-opnfv-functest-smoke'
255     <<: *airship-params
256     container: 'functest-smoke'
257     test:
258       - neutron-tempest-plugin-api
259       - rally_sanity
260       - refstack_defcore
261       - tempest_full
262       - tempest_scenario
263       - patrole
264       - neutron_trunk
265       - networking-bgpvpn
266       - networking-sfc
267       - barbican
268     jobs:
269       - 'airship-{repo}-{container}-{tag}-{test}-run'
270
271 - project:
272     name: 'airship-opnfv-functest-benchmarking'
273     <<: *airship-params
274     container: 'functest-benchmarking'
275     test:
276       - rally_full
277       - rally_jobs
278       - vmtp
279       - shaker
280     jobs:
281       - 'airship-{repo}-{container}-{tag}-{test}-run'
282
283 - project:
284     name: 'airship-opnfv-functest-vnf'
285     <<: *airship-params
286     container: 'functest-vnf'
287     test:
288       - cloudify
289       - cloudify_ims
290       - heat_ims
291       - vyos_vrouter
292       - juju_epc
293     jobs:
294       - 'airship-{repo}-{container}-{tag}-{test}-run'
295
296 - job-template:
297     name: 'airship-{tag}-daily'
298     project-type: multijob
299     triggers:
300       - timed: '@daily'
301     parameters:
302       - airship-slave:
303           slave: '{slave}'
304       - airship-branch:
305           branch: 'master'
306     properties:
307       - build-blocker:
308           use-build-blocker: true
309           blocking-level: 'NODE'
310           blocking-jobs:
311             - '^airship-{tag}-(daily|gate)$'
312     builders:
313       - multijob:
314           name: deploy
315           projects:
316             - name: 'airship-deploy-daily-{tag}'
317               <<: *airship-jobs
318       - multijob:
319           name: remove former images
320           projects:
321             - name: 'airship-opnfv-functest-healthcheck-{tag}-rmi'
322               <<: *airship-jobs
323             - name: 'airship-opnfv-functest-smoke-{tag}-rmi'
324               <<: *airship-jobs
325             - name: 'airship-opnfv-functest-benchmarking-{tag}-rmi'
326               <<: *airship-jobs
327             - name: 'airship-opnfv-functest-vnf-{tag}-rmi'
328               <<: *airship-jobs
329       - multijob:
330           name: pull containers
331           projects:
332             - name: 'airship-opnfv-functest-healthcheck-{tag}-pull'
333               <<: *airship-jobs
334             - name: 'airship-opnfv-functest-smoke-{tag}-pull'
335               <<: *airship-jobs
336             - name: 'airship-opnfv-functest-benchmarking-{tag}-pull'
337               <<: *airship-jobs
338             - name: 'airship-opnfv-functest-vnf-{tag}-pull'
339               <<: *airship-jobs
340       - multijob:
341           name: opnfv/functest-healthcheck:{functest_tag}
342           condition: ALWAYS
343           projects:
344             - name: 'airship-opnfv-functest-healthcheck-{tag}-connection_check-run'
345               <<: *airship-jobs
346             - name: 'airship-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
347               <<: *airship-jobs
348             - name: 'airship-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
349               <<: *airship-jobs
350             - name: 'airship-opnfv-functest-healthcheck-{tag}-vmready1-run'
351               <<: *airship-jobs
352             - name: 'airship-opnfv-functest-healthcheck-{tag}-vmready2-run'
353               <<: *airship-jobs
354             - name: 'airship-opnfv-functest-healthcheck-{tag}-singlevm1-run'
355               <<: *airship-jobs
356             - name: 'airship-opnfv-functest-healthcheck-{tag}-singlevm2-run'
357               <<: *airship-jobs
358             - name: 'airship-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
359               <<: *airship-jobs
360             - name: 'airship-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
361               <<: *airship-jobs
362             - name: 'airship-opnfv-functest-healthcheck-{tag}-cinder_test-run'
363               <<: *airship-jobs
364             - name: 'airship-opnfv-functest-healthcheck-{tag}-odl-run'
365               <<: *airship-jobs
366             - name: 'airship-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
367               <<: *airship-jobs
368       - multijob:
369           name: opnfv/functest-smoke:{functest_tag}
370           condition: ALWAYS
371           projects:
372             - name: 'airship-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
373               <<: *airship-jobs
374             - name: 'airship-opnfv-functest-smoke-{tag}-rally_sanity-run'
375               <<: *airship-jobs
376             - name: 'airship-opnfv-functest-smoke-{tag}-refstack_defcore-run'
377               <<: *airship-jobs
378             - name: 'airship-opnfv-functest-smoke-{tag}-tempest_full-run'
379               <<: *airship-jobs
380             - name: 'airship-opnfv-functest-smoke-{tag}-tempest_scenario-run'
381               <<: *airship-jobs
382             - name: 'airship-opnfv-functest-smoke-{tag}-patrole-run'
383               <<: *airship-jobs
384             - name: 'airship-opnfv-functest-smoke-{tag}-neutron_trunk-run'
385               <<: *airship-jobs
386             - name: 'airship-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
387               <<: *airship-jobs
388             - name: 'airship-opnfv-functest-smoke-{tag}-networking-sfc-run'
389               <<: *airship-jobs
390             - name: 'airship-opnfv-functest-smoke-{tag}-barbican-run'
391               <<: *airship-jobs
392       - multijob:
393           name: opnfv/functest-benchmarking:{functest_tag}
394           condition: ALWAYS
395           projects:
396             - name: 'airship-opnfv-functest-benchmarking-{tag}-rally_full-run'
397               <<: *airship-jobs
398             - name: 'airship-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
399               <<: *airship-jobs
400             - name: 'airship-opnfv-functest-benchmarking-{tag}-vmtp-run'
401               <<: *airship-jobs
402             - name: 'airship-opnfv-functest-benchmarking-{tag}-shaker-run'
403               <<: *airship-jobs
404       - multijob:
405           name: opnfv/functest-vnf:{functest_tag}
406           condition: ALWAYS
407           execution-type: SEQUENTIALLY
408           projects:
409             - name: 'airship-opnfv-functest-vnf-{tag}-cloudify-run'
410               <<: *airship-jobs
411             - name: 'airship-opnfv-functest-vnf-{tag}-cloudify_ims-run'
412               <<: *airship-jobs
413             - name: 'airship-opnfv-functest-vnf-{tag}-heat_ims-run'
414               <<: *airship-jobs
415             - name: 'airship-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
416               <<: *airship-jobs
417             - name: 'airship-opnfv-functest-vnf-{tag}-juju_epc-run'
418               <<: *airship-jobs
419
420 - trigger:
421     name: airship-patchset-created
422     triggers:
423       - gerrit:
424           server-name: 'gerrit.opnfv.org'
425           trigger-on:
426             - patchset-created-event
427             - comment-added-contains-event:
428                 comment-contains-value: 'recheck'
429             - comment-added-contains-event:
430                 comment-contains-value: 'reverify'
431           projects:
432             - project-compare-type: 'ANT'
433               project-pattern: 'airship'
434               branches:
435                 - branch-compare-type: 'ANT'
436                   branch-pattern: '**/{branch}'
437           skip-vote:
438             successful: false
439             failed: false
440             unstable: false
441             notbuilt: false
442
443 - job-template:
444     name: 'airship-{tag}-gate'
445     project-type: multijob
446     triggers:
447       - airship-patchset-created:
448           branch: '{branch}'
449     parameters:
450       - airship-slave:
451           slave: '{slave}'
452     properties:
453       - build-blocker:
454           use-build-blocker: true
455           blocking-level: 'NODE'
456           blocking-jobs:
457             - '^airship-{tag}-(daily|gate)$'
458     builders:
459       - multijob:
460           name: deploy
461           projects:
462             - name: 'airship-deploy-gate-{tag}'
463               <<: *airship-jobs
464       - multijob:
465           name: remove former images
466           projects:
467             - name: 'airship-opnfv-functest-healthcheck-{tag}-rmi'
468               <<: *airship-jobs
469             - name: 'airship-opnfv-functest-smoke-{tag}-rmi'
470               <<: *airship-jobs
471             - name: 'airship-opnfv-functest-benchmarking-{tag}-rmi'
472               <<: *airship-jobs
473             - name: 'airship-opnfv-functest-vnf-{tag}-rmi'
474               <<: *airship-jobs
475       - multijob:
476           name: pull containers
477           projects:
478             - name: 'airship-opnfv-functest-healthcheck-{tag}-pull'
479               <<: *airship-jobs
480             - name: 'airship-opnfv-functest-smoke-{tag}-pull'
481               <<: *airship-jobs
482             - name: 'airship-opnfv-functest-benchmarking-{tag}-pull'
483               <<: *airship-jobs
484             - name: 'airship-opnfv-functest-vnf-{tag}-pull'
485               <<: *airship-jobs
486       - multijob:
487           name: opnfv/functest-healthcheck:{functest_tag}
488           projects:
489             - name: 'airship-opnfv-functest-healthcheck-{tag}-connection_check-run'
490               <<: *airship-jobs
491             - name: 'airship-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
492               <<: *airship-jobs
493             - name: 'airship-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
494               <<: *airship-jobs
495             - name: 'airship-opnfv-functest-healthcheck-{tag}-vmready1-run'
496               <<: *airship-jobs
497             - name: 'airship-opnfv-functest-healthcheck-{tag}-vmready2-run'
498               <<: *airship-jobs
499             - name: 'airship-opnfv-functest-healthcheck-{tag}-singlevm1-run'
500               <<: *airship-jobs
501             - name: 'airship-opnfv-functest-healthcheck-{tag}-singlevm2-run'
502               <<: *airship-jobs
503             - name: 'airship-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
504               <<: *airship-jobs
505             - name: 'airship-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
506               <<: *airship-jobs
507             - name: 'airship-opnfv-functest-healthcheck-{tag}-cinder_test-run'
508               <<: *airship-jobs
509             - name: 'airship-opnfv-functest-healthcheck-{tag}-odl-run'
510               <<: *airship-jobs
511       - multijob:
512           name: opnfv/functest-smoke:{functest_tag}
513           projects:
514             - name: 'airship-opnfv-functest-smoke-{tag}-tempest_scenario-run'
515               <<: *airship-jobs
516             - name: 'airship-opnfv-functest-smoke-{tag}-neutron_trunk-run'
517               <<: *airship-jobs
518             - name: 'airship-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
519               <<: *airship-jobs
520             - name: 'airship-opnfv-functest-smoke-{tag}-networking-sfc-run'
521               <<: *airship-jobs
522             - name: 'airship-opnfv-functest-smoke-{tag}-barbican-run'
523               <<: *airship-jobs
524       - multijob:
525           name: opnfv/functest-benchmarking:{functest_tag}
526           projects:
527             - name: 'airship-opnfv-functest-benchmarking-{tag}-vmtp-run'
528               <<: *airship-jobs
529             - name: 'airship-opnfv-functest-benchmarking-{tag}-shaker-run'
530               <<: *airship-jobs
531       - multijob:
532           name: opnfv/functest-vnf:{functest_tag}
533           condition: ALWAYS
534           execution-type: SEQUENTIALLY
535           projects:
536             - name: 'airship-opnfv-functest-vnf-{tag}-cloudify-run'
537               <<: *airship-jobs
538             - name: 'airship-opnfv-functest-vnf-{tag}-cloudify_ims-run'
539               <<: *airship-jobs
540             - name: 'airship-opnfv-functest-vnf-{tag}-heat_ims-run'
541               <<: *airship-jobs
542             - name: 'airship-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
543               <<: *airship-jobs
544             - name: 'airship-opnfv-functest-vnf-{tag}-juju_epc-run'
545               <<: *airship-jobs
546
547 - project:
548     name: 'airship'
549     <<: *airship-params
550     jobs:
551       - 'airship-{tag}-daily'
552       - 'airship-{tag}-gate'
553
554 - view:
555     name: airship
556     view-type: list
557     columns:
558       - status
559       - weather
560       - job
561       - last-success
562       - last-failure
563       - last-duration
564     regex: ^airship-[a-z]+-(daily|check|gate)$