6f1cb328f639f58d3bbae833b8102fb597a341bd
[releng.git] / jjb / functest / functest-kubernetes-ng.yaml
1 ---
2 - functest-kubernetes-ng-containers: &functest-kubernetes-ng-containers
3     name: 'functest-kubernetes-ng-containers'
4     repo: '{repo}'
5     port: '{port}'
6     container: '{container}'
7     tag: '{tag}'
8
9 - functest-kubernetes-ng-params: &functest-kubernetes-ng-params
10     name: 'functest-kubernetes-ng-params'
11     repo: 'opnfv'
12     port:
13     tag:
14       - v1.20:
15           buildargs:
16           branch: stable/leguer
17           slave: lf-virtual1
18           dependency: 3.12
19       - v1.19:
20           buildargs:
21           branch: stable/kali
22           slave: lf-virtual1
23           dependency: 3.11
24       - v1.18:
25           branch: stable/kali
26           slave: lf-virtual1
27           dependency: 3.11
28           buildargs: --build-arg K8S_TAG=1.18
29       - v1.17:
30           buildargs:
31           branch: stable/jerma
32           slave: lf-virtual1
33           dependency: 3.10
34       - v1.16:
35           branch: stable/jerma
36           slave: lf-virtual1
37           dependency: 3.10
38           buildargs: --build-arg K8S_TAG=1.16
39       - v1.15:
40           buildargs:
41           branch: stable/iruya
42           slave: lf-virtual1
43           dependency: 3.9
44       - v1.14:
45           branch: stable/iruya
46           slave: lf-virtual1
47           dependency: 3.9
48           buildargs: --build-arg K8S_TAG=1.14
49       - v1.13:
50           buildargs:
51           branch: stable/hunter
52           slave: lf-virtual1
53           dependency: 3.9
54
55 - functest-kubernetes-ng-jobs: &functest-kubernetes-ng-jobs
56     name: 'functest-kubernetes-ng-jobs'
57     current-parameters: true
58
59 - parameter:
60     name: functest-kubernetes-ng-slave
61     parameters:
62       - label:
63           name: slave
64           default: '{slave}'
65
66
67 - functest-kubernetes-ng-build-containers: &functest-kubernetes-ng-build-containers
68     name: 'functest-kubernetes-ng-build-containers'
69     <<: *functest-kubernetes-ng-containers
70     ref_arg: '{ref_arg}'
71     path: '{path}'
72     buildargs: '{buildargs}'
73
74 - builder:
75     name: functest-kubernetes-ng-build-containers
76     builders:
77       - shell: |
78           set +x
79           if [ "{repo}" = "_" ]; then
80             image={container}:{tag}
81           elif [ "{port}" = "None" ]; then
82             image={repo}/{container}:{tag}
83           else
84             image={repo}:{port}/{container}:{tag}
85           fi
86           build_args=""
87           if [ "{buildargs}" != "None" ]; then
88             build_args="{buildargs} "
89           fi
90           if [ "{ref_arg}" != "None" ]; then
91             build_args="--build-arg {ref_arg}={ref}"
92           fi
93           cd {path}
94           sudo docker build $build_args \
95             --pull=false --no-cache --force-rm=true \
96             -t $image .
97
98 - scm:
99     name: functest-kubernetes-ng-scm
100     scm:
101       - git:
102           url: 'https://gerrit.opnfv.org/gerrit/functest-kubernetes'
103           refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
104           branches:
105             - '{ref}'
106
107 - functest-kubernetes-ng-dep: &functest-kubernetes-ng-dep
108     name: 'functest-kubernetes-ng-containers'
109     repo: '{repo}'
110     port: '{port}'
111     tag: '{tag}'
112     dependency: '{dependency}'
113
114 - builder:
115     name: functest-kubernetes-ng-pull-dep-images
116     builders:
117       - shell: |
118           set +x
119           if [ "_" = "_" ]; then
120             image=alpine:{dependency}
121           elif [ "_" = "None" ]; then
122             image=_/alpine:{dependency}
123           else
124             image=_:/alpine{dependency}
125           fi
126           sudo docker pull $image || true
127
128 - builder:
129     name: functest-kubernetes-ng-remove-dep-images
130     builders:
131       - shell: |
132           set +x
133           if [ "_" = "_" ]; then
134             image=alpine:{dependency}
135           elif [ "_" = "None" ]; then
136             image=_/alpine:{dependency}
137           else
138             image=_:/alpine{dependency}
139           fi
140           sudo docker rmi $image || true
141
142 - job-template:
143     name: 'functest-kubernetes-ng-{repo}-{tag}-dep-pull'
144     parameters:
145       - functest-kubernetes-ng-slave:
146           slave: '{slave}'
147     builders:
148       - functest-kubernetes-ng-pull-dep-images:
149           <<: *functest-kubernetes-ng-dep
150
151 - project:
152     name: 'functest-kubernetes-ng-{repo}-{tag}-dep-pull'
153     <<: *functest-kubernetes-ng-params
154     jobs:
155       - 'functest-kubernetes-ng-{repo}-{tag}-dep-pull'
156
157 - job-template:
158     name: 'functest-kubernetes-ng-{repo}-{tag}-dep-rmi'
159     parameters:
160       - functest-kubernetes-ng-slave:
161           slave: '{slave}'
162     builders:
163       - functest-kubernetes-ng-remove-dep-images:
164           <<: *functest-kubernetes-ng-dep
165
166 - project:
167     name: 'functest-kubernetes-ng-{repo}-{tag}-dep-rmi'
168     <<: *functest-kubernetes-ng-params
169     jobs:
170       - 'functest-kubernetes-ng-{repo}-{tag}-dep-rmi'
171
172
173 - builder:
174     name: functest-kubernetes-ng-push-containers
175     builders:
176       - shell: |
177           set +x
178           if [ "{repo}" = "_" ]; then
179             image={container}:{tag}
180           elif [ "{port}" = "None" ]; then
181             image={repo}/{container}:{tag}
182           else
183             image={repo}:{port}/{container}:{tag}
184           fi
185           sudo docker push $image
186
187 - trigger:
188     name: functest-kubernetes-ng-commit
189     triggers:
190       - pollscm:
191           cron: "*/30 * * * *"
192
193 - job-template:
194     name: 'functest-kubernetes-ng-{repo}-{container}-{tag}-build'
195     parameters:
196       - functest-kubernetes-ng-slave:
197           slave: '{slave}'
198     scm:
199       - functest-kubernetes-ng-scm:
200           ref: '{branch}'
201     builders:
202       - functest-kubernetes-ng-build-containers:
203           <<: *functest-kubernetes-ng-build-containers
204           ref: '{branch}'
205           buildargs: '{buildargs}'
206       - functest-kubernetes-ng-push-containers:
207           <<: *functest-kubernetes-ng-build-containers
208           ref: '{branch}'
209
210 - project:
211     name: functest-kubernetes-ng-opnfv-functest-kubernetes-core-{tag}-build
212     <<: *functest-kubernetes-ng-params
213     container: functest-kubernetes-core
214     ref_arg: BRANCH
215     path: docker/core
216     jobs:
217       - 'functest-kubernetes-ng-{repo}-{container}-{tag}-build'
218
219 - project:
220     name: functest-kubernetes-ng-opnfv-functest-kubernetes-healthcheck-{tag}-build
221     <<: *functest-kubernetes-ng-params
222     container: functest-kubernetes-healthcheck
223     ref_arg:
224     path: docker/healthcheck
225     jobs:
226       - 'functest-kubernetes-ng-{repo}-{container}-{tag}-build'
227
228 - project:
229     name: functest-kubernetes-ng-opnfv-functest-kubernetes-cnf-{tag}-build
230     <<: *functest-kubernetes-ng-params
231     container: functest-kubernetes-cnf
232     ref_arg: BRANCH
233     path: docker/cnf
234     jobs:
235       - 'functest-kubernetes-ng-{repo}-{container}-{tag}-build'
236
237 - project:
238     name: functest-kubernetes-ng-opnfv-functest-kubernetes-security-{tag}-build
239     <<: *functest-kubernetes-ng-params
240     container: functest-kubernetes-security
241     ref_arg: BRANCH
242     path: docker/security
243     jobs:
244       - 'functest-kubernetes-ng-{repo}-{container}-{tag}-build'
245
246 - project:
247     name: functest-kubernetes-ng-opnfv-functest-kubernetes-smoke-{tag}-build
248     <<: *functest-kubernetes-ng-params
249     container: functest-kubernetes-smoke
250     ref_arg:
251     path: docker/smoke
252     jobs:
253       - 'functest-kubernetes-ng-{repo}-{container}-{tag}-build'
254
255 - project:
256     name: functest-kubernetes-ng-opnfv-functest-kubernetes-benchmarking-{tag}-build
257     <<: *functest-kubernetes-ng-params
258     container: functest-kubernetes-benchmarking
259     ref_arg:
260     path: docker/benchmarking
261     jobs:
262       - 'functest-kubernetes-ng-{repo}-{container}-{tag}-build'
263
264
265 - job-template:
266     name: 'functest-kubernetes-ng-{tag}-docker'
267     project-type: multijob
268     triggers:
269       - functest-kubernetes-ng-commit
270     scm:
271       - functest-kubernetes-ng-scm:
272           ref: '{branch}'
273     parameters:
274       - functest-kubernetes-ng-slave:
275           slave: '{slave}'
276     properties:
277       - build-blocker:
278           use-build-blocker: true
279           blocking-level: 'NODE'
280           blocking-jobs:
281             - '^functest-kubernetes-ng-{tag}-(daily|docker|review)$'
282     builders:
283       - multijob:
284           name: remove dependency
285           projects:
286             - name: 'functest-kubernetes-ng-{repo}-{tag}-dep-rmi'
287               <<: *functest-kubernetes-ng-jobs
288       - multijob:
289           name: pull dependency
290           projects:
291             - name: 'functest-kubernetes-ng-{repo}-{tag}-dep-pull'
292               <<: *functest-kubernetes-ng-jobs
293       - multijob:
294           name: build opnfv/functest-kubernetes-core
295           projects:
296             - name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-core-{tag}-build'
297               <<: *functest-kubernetes-ng-jobs
298       - multijob:
299           name: build containers
300           projects:
301             - name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-healthcheck-{tag}-build'
302               <<: *functest-kubernetes-ng-jobs
303             - name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-cnf-{tag}-build'
304               <<: *functest-kubernetes-ng-jobs
305             - name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-security-{tag}-build'
306               <<: *functest-kubernetes-ng-jobs
307       - multijob:
308           name: build opnfv/functest-kubernetes-smoke
309           projects:
310             - name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-smoke-{tag}-build'
311               <<: *functest-kubernetes-ng-jobs
312       - multijob:
313           name: build opnfv/functest-kubernetes-benchmarking
314           projects:
315             - name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-benchmarking-{tag}-build'
316               <<: *functest-kubernetes-ng-jobs
317
318 - builder:
319     name: functest-kubernetes-ng-trivy
320     builders:
321       - shell: |
322           sudo apt-get update && sudo apt-get install curl -y
323           curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
324           if [ "{repo}" = "_" ]; then
325             image={container}:{tag}
326           elif [ "{port}" = "None" ]; then
327             image={repo}/{container}:{tag}
328           else
329             image={repo}:{port}/{container}:{tag}
330           fi
331           ./trivy --exit-code 1 $image
332
333 - job-template:
334     name: 'functest-kubernetes-ng-{repo}-{container}-{tag}-trivy'
335     triggers:
336       - timed: '@daily'
337     parameters:
338       - functest-kubernetes-ng-slave:
339           slave: '{slave}'
340     builders:
341       - functest-kubernetes-ng-trivy:
342           <<: *functest-kubernetes-ng-containers
343
344 - project:
345     name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-core-trivy'
346     <<: *functest-kubernetes-ng-params
347     container: 'functest-kubernetes-core'
348     jobs:
349       - 'functest-kubernetes-ng-{repo}-{container}-{tag}-trivy'
350
351 - project:
352     name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-healthcheck-trivy'
353     <<: *functest-kubernetes-ng-params
354     container: 'functest-kubernetes-healthcheck'
355     jobs:
356       - 'functest-kubernetes-ng-{repo}-{container}-{tag}-trivy'
357
358 - project:
359     name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-cnf-trivy'
360     <<: *functest-kubernetes-ng-params
361     container: 'functest-kubernetes-cnf'
362     jobs:
363       - 'functest-kubernetes-ng-{repo}-{container}-{tag}-trivy'
364
365 - project:
366     name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-security-trivy'
367     <<: *functest-kubernetes-ng-params
368     container: 'functest-kubernetes-security'
369     jobs:
370       - 'functest-kubernetes-ng-{repo}-{container}-{tag}-trivy'
371
372 - project:
373     name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-smoke-trivy'
374     <<: *functest-kubernetes-ng-params
375     container: 'functest-kubernetes-smoke'
376     jobs:
377       - 'functest-kubernetes-ng-{repo}-{container}-{tag}-trivy'
378
379 - project:
380     name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-benchmarking-trivy'
381     <<: *functest-kubernetes-ng-params
382     container: 'functest-kubernetes-benchmarking'
383     jobs:
384       - 'functest-kubernetes-ng-{repo}-{container}-{tag}-trivy'
385
386 - project:
387     name: 'functest-kubernetes-ng'
388     <<: *functest-kubernetes-ng-params
389     jobs:
390       - 'functest-kubernetes-ng-{tag}-docker'
391
392 - view:
393     name: functest-kubernetes-ng-docker
394     view-type: list
395     columns:
396       - status
397       - weather
398       - job
399       - last-success
400       - last-failure
401       - last-duration
402     regex: ^functest-kubernetes-ng-[a-z0-9.]+-docker$
403
404 - view:
405     name: functest-kubernetes-ng-trivy
406     view-type: list
407     columns:
408       - status
409       - weather
410       - job
411       - last-success
412       - last-failure
413       - last-duration
414     regex: ^functest-kubernetes-ng-[a-z0-9-.]+-trivy$