Remove KVMFORNFV Jobs
[releng.git] / jjb / functest / functest-kubernetes-docker.yaml
1 ---
2 ##############################################
3 # job configuration for docker build and push
4 ##############################################
5 - project:
6
7     name: functest-kubernetes-docker
8
9     project: functest-kubernetes
10
11     stream:
12       - master:
13           branch: '{stream}'
14           disabled: false
15       - kali:
16           branch: 'stable/{stream}'
17           disabled: false
18       - jerma:
19           branch: 'stable/{stream}'
20           disabled: false
21       - iruya:
22           branch: 'stable/{stream}'
23           disabled: false
24       - hunter:
25           branch: 'stable/{stream}'
26           disabled: false
27
28     arch_tag:
29       - 'amd64':
30           slave_label: 'lf-build2'
31       - 'arm64':
32           slave_label: 'opnfv-build-ubuntu-arm'
33
34     # yamllint disable rule:key-duplicates
35     image:
36       - 'core'
37       - 'healthcheck'
38       - 'smoke'
39       - 'cnf'
40       - 'security'
41
42     exclude:
43       - stream: 'jerma'
44         image: 'cnf'
45       - stream: 'jerma'
46         image: 'security'
47       - stream: 'iruya'
48         image: 'cnf'
49       - stream: 'iruya'
50         image: 'security'
51       - stream: 'hunter'
52         image: 'cnf'
53       - stream: 'hunter'
54         image: 'security'
55
56     # settings for jobs run in multijob phases
57     build-job-settings: &build-job-settings
58       current-parameters: false
59       git-revision: true
60       node-parameters: false
61       predefined-parameters: |
62         PUSH_IMAGE=$PUSH_IMAGE
63         COMMIT_ID=$COMMIT_ID
64         GERRIT_REFNAME=$GERRIT_REFNAME
65         DOCKERFILE=$DOCKERFILE
66       kill-phase-on: FAILURE
67       abort-all-jobs: false
68
69     manifest-job-settings: &manifest-job-settings
70       current-parameters: false
71       git-revision: true
72       node-parameters: false
73       predefined-parameters:
74         GERRIT_REFNAME=$GERRIT_REFNAME
75       kill-phase-on: FAILURE
76       abort-all-jobs: false
77
78     # yamllint enable rule:key-duplicates
79     jobs:
80       - "functest-kubernetes-docker-{stream}"
81       - "functest-kubernetes-{image}-docker-build-{arch_tag}-{stream}"
82       - "functest-kubernetes-{image}-docker-manifest-{stream}"
83
84 ########################
85 # job templates
86 ########################
87 - job-template:
88     name: 'functest-kubernetes-docker-{stream}'
89
90     project-type: multijob
91
92     disabled: '{obj:disabled}'
93
94     parameters:
95       - functest-kubernetes-job-parameters:
96           project: '{project}'
97           branch: '{branch}'
98           slave_label: 'lf-build2'
99           arch_tag: 'amd64'
100
101     properties:
102       - throttle:
103           max-per-node: 1
104           option: 'project'
105
106     scm:
107       - git-scm
108
109     triggers:
110       - pollscm:
111           cron: "*/30 * * * *"
112       - gerrit-trigger-tag-created:
113           project: '{project}'
114
115     builders:
116       - multijob:
117           name: 'build functest-kubernetes-core images'
118           execution-type: PARALLEL
119           projects:
120             - name: 'functest-kubernetes-core-docker-build-amd64-{stream}'
121               <<: *build-job-settings
122             - name: 'functest-kubernetes-core-docker-build-arm64-{stream}'
123               <<: *build-job-settings
124       - multijob:
125           name: 'publish functest-kubernetes-core manifests'
126           execution-type: PARALLEL
127           projects:
128             - name: 'functest-kubernetes-core-docker-manifest-{stream}'
129               <<: *manifest-job-settings
130       - multijob:
131           name: 'build functest-kubernetes-[healthcheck,cnf,security] images'
132           execution-type: PARALLEL
133           projects:
134             - name: 'functest-kubernetes-healthcheck-docker-build-amd64-{stream}'
135               <<: *build-job-settings
136             - name: 'functest-kubernetes-healthcheck-docker-build-arm64-{stream}'
137               <<: *build-job-settings
138             - name: 'functest-kubernetes-cnf-docker-build-amd64-{stream}'
139               <<: *build-job-settings
140             - name: 'functest-kubernetes-cnf-docker-build-arm64-{stream}'
141               <<: *build-job-settings
142             - name: 'functest-kubernetes-security-docker-build-amd64-{stream}'
143               <<: *build-job-settings
144             - name: 'functest-kubernetes-security-docker-build-arm64-{stream}'
145               <<: *build-job-settings
146       - multijob:
147           name: 'publish functest-kubernetes-[healthcheck,cnf,security] manifests'
148           execution-type: PARALLEL
149           projects:
150             - name: 'functest-kubernetes-healthcheck-docker-manifest-{stream}'
151               <<: *manifest-job-settings
152             - name: 'functest-kubernetes-cnf-docker-manifest-{stream}'
153               <<: *manifest-job-settings
154             - name: 'functest-kubernetes-security-docker-manifest-{stream}'
155               <<: *manifest-job-settings
156       - multijob:
157           name: 'build functest-kubernetes-smoke image'
158           condition: SUCCESSFUL
159           execution-type: PARALLEL
160           projects:
161             - name: 'functest-kubernetes-smoke-docker-build-amd64-{stream}'
162               <<: *build-job-settings
163             - name: 'functest-kubernetes-smoke-docker-build-arm64-{stream}'
164               <<: *build-job-settings
165       - multijob:
166           name: 'publish functest-kubernetes-smoke manifests'
167           condition: SUCCESSFUL
168           execution-type: PARALLEL
169           projects:
170             - name: 'functest-kubernetes-smoke-docker-manifest-{stream}'
171               <<: *manifest-job-settings
172
173     publishers:
174       - 'functest-kubernetes-amd64-recipients'
175       - 'functest-kubernetes-arm64-recipients'
176
177 - job-template:
178     name: 'functest-kubernetes-{image}-docker-build-{arch_tag}-{stream}'
179     disabled: '{obj:disabled}'
180     parameters:
181       - functest-kubernetes-job-parameters:
182           project: '{project}'
183           branch: '{branch}'
184           slave_label: '{slave_label}'
185           arch_tag: '{arch_tag}'
186     scm:
187       - git-scm
188     builders:
189       - shell: |
190           #!/bin/bash -ex
191           case "{arch_tag}" in
192           "arm64")
193               sudo amd64_dirs= arm64_dirs=docker/{image} bash ./build.sh ;;
194           *)
195               sudo amd64_dirs=docker/{image} arm64_dirs= bash ./build.sh ;;
196           esac
197           exit $?
198
199 - job-template:
200     name: 'functest-kubernetes-{image}-docker-manifest-{stream}'
201
202     parameters:
203       - project-parameter:
204           project: '{project}'
205           branch: '{branch}'
206       - label:
207           name: SLAVE_LABEL
208           default: 'lf-build2'
209           description: 'Slave label on Jenkins'
210           all-nodes: false
211           node-eligibility: 'ignore-offline'
212       - string:
213           name: PROJECT
214           default: "{project}"
215           description: "Project name used to enable job conditions"
216       - string:
217           name: GIT_BASE
218           default: https://gerrit.opnfv.org/gerrit/$PROJECT
219           description: 'Git URL to use on this Jenkins Slave'
220       - string:
221           name: REPO
222           default: "opnfv"
223           description: "Repository name for functest-kubernetes images"
224
225
226     disabled: '{obj:disabled}'
227
228     builders:
229       - shell: |
230           #!/bin/bash -ex
231           case "{stream}" in
232           "master")
233               tag="latest" ;;
234           *)
235               tag="{stream}" ;;
236           esac
237           sudo manifest-tool push from-args \
238               --platforms linux/amd64,linux/arm64 \
239               --template $REPO/functest-kubernetes-{image}:ARCH-$tag \
240               --target $REPO/functest-kubernetes-{image}:$tag
241           exit $?
242
243 # parameter macro
244 - parameter:
245     name: functest-kubernetes-job-parameters
246     parameters:
247       - project-parameter:
248           project: '{project}'
249           branch: '{branch}'
250       - label:
251           name: SLAVE_LABEL
252           default: '{slave_label}'
253           description: 'Slave label on Jenkins'
254           all-nodes: false
255           node-eligibility: 'ignore-offline'
256       - string:
257           name: GIT_BASE
258           default: https://gerrit.opnfv.org/gerrit/$PROJECT
259           description: 'Git URL to use on this Jenkins Slave'
260       - string:
261           name: PUSH_IMAGE
262           default: "true"
263           description: "To enable/disable pushing the image to Dockerhub."
264       - string:
265           name: COMMIT_ID
266           default: ""
267           description: "commit id to make a snapshot docker image"
268       - string:
269           name: GERRIT_REFNAME
270           default: ""
271           description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1"
272       - string:
273           name: DOCKERFILE
274           default: "Dockerfile"
275           description: "Dockerfile to use for creating the image."
276       - string:
277           name: ARCH_TAG
278           default: "{arch_tag}"
279           description: "If set, this value will be added to the docker image tag as a prefix"
280       - string:
281           name: PROJECT
282           default: "{project}"
283           description: "Project name used to enable job conditions"
284       - string:
285           name: REPO
286           default: "opnfv"
287           description: "Repository name for functest-kubernetes images"
288
289 # publisher macros
290 - publisher:
291     name: 'functest-kubernetes-arm64-recipients'
292     publishers:
293       - email:
294           recipients: >
295             cristina.pauna@enea.com
296             alexandru.avadanii@enea.com
297             delia.popescu@enea.com
298
299 - publisher:
300     name: 'functest-kubernetes-amd64-recipients'
301     publishers:
302       - email:
303           recipients: >
304             jalausuch@suse.com morgan.richomme@orange.com
305             cedric.ollivier@orange.com feng.xiaowei@zte.com.cn
306             juha.kosonen@nokia.com wangwulin@huawei.com
307             valentin.boucher@kontron.com