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