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