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