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