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