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