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