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