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