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