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