a4035118cd3067829ed1261c97bc86f56c74edcd
[releng.git] / jjb / releng / opnfv-docker.yaml
1 ---
2 ##############################################
3 # job configuration for docker build and push
4 ##############################################
5
6 - project:
7
8     name: opnfv-docker
9
10     master: &master
11       stream: master
12       branch: '{stream}'
13       disabled: false
14     hunter: &hunter
15       stream: hunter
16       branch: 'stable/{stream}'
17       disabled: false
18     iruya: &iruya
19       stream: iruya
20       branch: 'stable/{stream}'
21       disabled: false
22     jerma: &jerma
23       stream: jerma
24       branch: 'stable/{stream}'
25       disabled: false
26     kali: &kali
27       stream: kali
28       branch: 'stable/{stream}'
29       disabled: false
30     lakelse: &lakelse
31       stream: lakelse
32       branch: 'stable/{stream}'
33       disabled: false
34     laas-receivers: &laas_receivers
35       receivers: >
36           pberberian@iol.unh.edu
37           sbergeron@iol.unh.edu
38     storperf-receivers: &storperf-receivers
39       receivers: >
40           mbeierl@vmware.com
41     samplevnf-receivers: &samplevnf-receivers
42       receivers: >
43           luc.provoost@intel.com
44           yury.kylulin@intel.com
45     vineperf-receivers: &vineperf-receivers
46       receivers: >
47           sridhar.rao@spirent.com
48     cirv-receivers: &cirv-receivers
49       receivers: >
50           sridhar.rao@spirent.com
51           parthyadav3105@gmail.com
52     other-receivers: &other-receivers
53       receivers: ''
54
55     dockerfile: "Dockerfile"
56     dockerdir: "docker"
57     arch_tag: ""
58     extra_build_args: ""
59
60     # This is the dockerhub repo the image will be pushed to as
61     # 'anuket/{dockerrepo}. See: DOCKER_REPO_NAME parameter.
62     # 'project' is the OPNFV repo we expect to contain the Dockerfile
63     # yamllint disable rule:key-duplicates
64     dockerrepo:
65       # projects with jobs for master
66       - 'releng-anteater':
67           project: 'releng-anteater'
68           <<: *master
69           <<: *other-receivers
70       - 'barometer-collectd':
71           project: 'barometer'
72           dockerdir: 'docker/barometer-collectd'
73           <<: *master
74           <<: *other-receivers
75       - 'barometer-collectd-experimental':
76           project: 'barometer'
77           dockerdir: '.'
78           dockerfile: 'docker/barometer-collectd-experimental/Dockerfile'
79           <<: *master
80           <<: *other-receivers
81       - 'barometer-collectd-latest':
82           project: 'barometer'
83           dockerdir: '.'
84           dockerfile: 'docker/barometer-collectd-latest/Dockerfile'
85           <<: *master
86           <<: *other-receivers
87       - 'barometer-dma':
88           project: 'barometer'
89           dockerdir: 'docker/barometer-dma'
90           <<: *master
91           <<: *other-receivers
92       - 'barometer-grafana':
93           project: 'barometer'
94           dockerdir: 'docker/barometer-grafana'
95           <<: *master
96           <<: *other-receivers
97       - 'barometer-influxdb':
98           project: 'barometer'
99           dockerdir: 'docker/barometer-influxdb'
100           <<: *master
101           <<: *other-receivers
102       - 'barometer-kafka':
103           project: 'barometer'
104           dockerdir: 'docker/barometer-kafka'
105           <<: *master
106           <<: *other-receivers
107       - 'barometer-ves':
108           project: 'barometer'
109           dockerdir: 'docker/barometer-ves'
110           <<: *master
111           <<: *other-receivers
112       - 'barometer-snmp':
113           project: 'barometer'
114           dockerdir: 'docker/barometer-snmp'
115           <<: *master
116           <<: *other-receivers
117       - 'dovetail':
118           project: 'dovetail'
119           <<: *master
120           <<: *other-receivers
121       - 'dovetail-webportal-api':
122           project: 'dovetail-webportal'
123           dockerfile: 'Dockerfile.api'
124           <<: *master
125           <<: *other-receivers
126       - 'dovetail-webportal-web':
127           project: 'dovetail-webportal'
128           dockerfile: 'Dockerfile.web'
129           <<: *master
130           <<: *other-receivers
131       - 'dovetail-webportal-web-onap':
132           project: 'dovetail-webportal'
133           dockerfile: 'Dockerfile.web'
134           extra_build_args: 'CONTAINER=onap GUI=onap-ui'
135           <<: *master
136           <<: *other-receivers
137       - 'nfvbench':
138           project: 'nfvbench'
139           <<: *master
140           <<: *other-receivers
141       - 'laas-dashboard':
142           project: 'laas'
143           dockerdir: '.'
144           dockerfile: 'web/Dockerfile'
145           <<: *master
146           <<: *laas_receivers
147       - 'laas-celery':
148           project: 'laas'
149           dockerdir: '.'
150           dockerfile: 'worker/Dockerfile'
151           <<: *master
152           <<: *laas_receivers
153       - 'storperf-master':
154           project: 'storperf'
155           dockerdir: 'docker/storperf-master'
156           arch_tag: 'x86_64'
157           <<: *master
158           <<: *storperf-receivers
159       - 'storperf-graphite':
160           project: 'storperf'
161           dockerdir: 'docker/storperf-graphite'
162           arch_tag: 'x86_64'
163           <<: *master
164           <<: *storperf-receivers
165       - 'storperf-httpfrontend':
166           project: 'storperf'
167           dockerdir: 'docker/storperf-httpfrontend'
168           arch_tag: 'x86_64'
169           <<: *master
170           <<: *storperf-receivers
171       - 'storperf-reporting':
172           project: 'storperf'
173           dockerdir: 'docker/storperf-reporting'
174           arch_tag: 'x86_64'
175           <<: *master
176           <<: *storperf-receivers
177       - 'storperf-swaggerui':
178           project: 'storperf'
179           dockerdir: 'docker/storperf-swaggerui'
180           arch_tag: 'x86_64'
181           <<: *master
182           <<: *storperf-receivers
183       - 'storperf-workloadagent':
184           project: 'storperf'
185           dockerdir: 'docker/storperf-workloadagent'
186           arch_tag: 'x86_64'
187           <<: *master
188           <<: *storperf-receivers
189       - 'rapid':
190           project: 'samplevnf'
191           dockerdir: 'VNFs/DPPD-PROX/helper-scripts/rapid'
192           <<: *master
193           <<: *samplevnf-receivers
194       - 'vineperf':
195           project: 'vineperf'
196           dockerdir: 'tools/docker/vineperf'
197           <<: *master
198           <<: *vineperf-receivers
199       - 'vineperf-prox':
200           project: 'vineperf'
201           dockerdir: 'tools/docker/test-containers/trafficgen-pods/prox'
202           <<: *master
203           <<: *vineperf-receivers
204       - 'vineperf-trex':
205           project: 'vineperf'
206           dockerdir: 'tools/docker/test-containers/trafficgen-pods/trex'
207           <<: *master
208           <<: *vineperf-receivers
209       - 'vineperf-pktgen':
210           project: 'vineperf'
211           dockerdir: 'tools/docker/test-containers/trafficgen-pods/pktgen'
212           <<: *master
213           <<: *vineperf-receivers
214       - 'vineperf-l2l3fwd':
215           project: 'vineperf'
216           dockerdir: 'tools/docker/test-containers/dpdk-forwarding-pods/l2l3fwd'
217           <<: *master
218           <<: *vineperf-receivers
219       - 'vineperf-vpp':
220           project: 'vineperf'
221           dockerdir: 'tools/docker/test-containers/dpdk-forwarding-pods/vpp'
222           <<: *master
223           <<: *vineperf-receivers
224       - 'sdvconfig':
225           project: 'cirv-sdv'
226           dockerdir: 'sdv/docker/sdvconfig'
227           <<: *master
228           <<: *cirv-receivers
229       - 'sdvmodel':
230           project: 'cirv-sdv'
231           dockerdir: 'sdv/docker/sdvmodel'
232           <<: *master
233           <<: *cirv-receivers
234       - 'sdvsecurity':
235           project: 'cirv-sdv'
236           dockerdir: 'sdv/docker/sdvsecurity'
237           <<: *master
238           <<: *cirv-receivers
239       - 'sdvstate':
240           project: 'cirv-sdv'
241           dockerdir: 'sdv/docker/sdvstate'
242           <<: *master
243           <<: *cirv-receivers
244       - 'sdvurls':
245           project: 'cirv-sdv'
246           dockerdir: 'sdv/docker/sdvurls'
247           <<: *master
248           <<: *cirv-receivers
249
250       # projects with jobs for hunter
251       - 'dovetail':
252           project: 'dovetail'
253           <<: *hunter
254           <<: *other-receivers
255
256       # projects with jobs for iruya
257       - 'storperf-master':
258           project: 'storperf'
259           dockerdir: 'docker/storperf-master'
260           arch_tag: 'x86_64'
261           <<: *iruya
262           <<: *storperf-receivers
263       - 'storperf-graphite':
264           project: 'storperf'
265           dockerdir: 'docker/storperf-graphite'
266           arch_tag: 'x86_64'
267           <<: *iruya
268           <<: *storperf-receivers
269       - 'storperf-httpfrontend':
270           project: 'storperf'
271           dockerdir: 'docker/storperf-httpfrontend'
272           arch_tag: 'x86_64'
273           <<: *iruya
274           <<: *storperf-receivers
275       - 'storperf-reporting':
276           project: 'storperf'
277           dockerdir: 'docker/storperf-reporting'
278           arch_tag: 'x86_64'
279           <<: *iruya
280           <<: *storperf-receivers
281       - 'storperf-swaggerui':
282           project: 'storperf'
283           dockerdir: 'docker/storperf-swaggerui'
284           arch_tag: 'x86_64'
285           <<: *iruya
286           <<: *storperf-receivers
287       - 'storperf-workloadagent':
288           project: 'storperf'
289           dockerdir: 'docker/storperf-workloadagent'
290           arch_tag: 'x86_64'
291           <<: *iruya
292           <<: *storperf-receivers
293
294       # projects with jobs for jerma
295       - 'barometer-collectd':
296           project: 'barometer'
297           dockerdir: 'docker/barometer-collectd'
298           <<: *jerma
299           <<: *other-receivers
300       - 'barometer-collectd-experimental':
301           project: 'barometer'
302           dockerdir: '.'
303           dockerfile: 'docker/barometer-collectd-experimental/Dockerfile'
304           <<: *jerma
305           <<: *other-receivers
306       - 'barometer-collectd-latest':
307           project: 'barometer'
308           dockerdir: '.'
309           dockerfile: 'docker/barometer-collectd-latest/Dockerfile'
310           <<: *jerma
311           <<: *other-receivers
312       - 'barometer-dma':
313           project: 'barometer'
314           dockerdir: 'docker/barometer-dma'
315           <<: *jerma
316           <<: *other-receivers
317       - 'barometer-grafana':
318           project: 'barometer'
319           dockerdir: 'docker/barometer-grafana'
320           <<: *jerma
321           <<: *other-receivers
322       - 'barometer-influxdb':
323           project: 'barometer'
324           dockerdir: 'docker/barometer-influxdb'
325           <<: *jerma
326           <<: *other-receivers
327       - 'barometer-kafka':
328           project: 'barometer'
329           dockerdir: 'docker/barometer-kafka'
330           <<: *jerma
331           <<: *other-receivers
332       - 'barometer-ves':
333           project: 'barometer'
334           dockerdir: 'docker/barometer-ves'
335           <<: *jerma
336           <<: *other-receivers
337       - 'barometer-snmp':
338           project: 'barometer'
339           dockerdir: 'docker/barometer-snmp'
340           <<: *jerma
341           <<: *other-receivers
342
343       # projects with jobs for kali
344       - 'barometer-collectd':
345           project: 'barometer'
346           dockerdir: 'docker/barometer-collectd'
347           <<: *kali
348           <<: *other-receivers
349       - 'barometer-collectd-experimental':
350           project: 'barometer'
351           dockerdir: '.'
352           dockerfile: 'docker/barometer-collectd-experimental/Dockerfile'
353           <<: *kali
354           <<: *other-receivers
355       - 'barometer-collectd-latest':
356           project: 'barometer'
357           dockerdir: '.'
358           dockerfile: 'docker/barometer-collectd-latest/Dockerfile'
359           <<: *kali
360           <<: *other-receivers
361       - 'barometer-dma':
362           project: 'barometer'
363           dockerdir: 'docker/barometer-dma'
364           <<: *kali
365           <<: *other-receivers
366       - 'barometer-grafana':
367           project: 'barometer'
368           dockerdir: 'docker/barometer-grafana'
369           <<: *kali
370           <<: *other-receivers
371       - 'barometer-influxdb':
372           project: 'barometer'
373           dockerdir: 'docker/barometer-influxdb'
374           <<: *kali
375           <<: *other-receivers
376       - 'barometer-kafka':
377           project: 'barometer'
378           dockerdir: 'docker/barometer-kafka'
379           <<: *kali
380           <<: *other-receivers
381       - 'barometer-ves':
382           project: 'barometer'
383           dockerdir: 'docker/barometer-ves'
384           <<: *kali
385           <<: *other-receivers
386       - 'barometer-snmp':
387           project: 'barometer'
388           dockerdir: 'docker/barometer-snmp'
389           <<: *kali
390           <<: *other-receivers
391
392       # projects with jobs for lakelse
393       - 'barometer-collectd':
394           project: 'barometer'
395           dockerdir: 'docker/barometer-collectd'
396           <<: *lakelse
397           <<: *other-receivers
398       - 'barometer-collectd-experimental':
399           project: 'barometer'
400           dockerdir: '.'
401           dockerfile: 'docker/barometer-collectd-experimental/Dockerfile'
402           <<: *lakelse
403           <<: *other-receivers
404       - 'barometer-collectd-latest':
405           project: 'barometer'
406           dockerdir: '.'
407           dockerfile: 'docker/barometer-collectd-latest/Dockerfile'
408           <<: *lakelse
409           <<: *other-receivers
410       - 'barometer-dma':
411           project: 'barometer'
412           dockerdir: 'docker/barometer-dma'
413           <<: *lakelse
414           <<: *other-receivers
415       - 'barometer-grafana':
416           project: 'barometer'
417           dockerdir: 'docker/barometer-grafana'
418           <<: *lakelse
419           <<: *other-receivers
420       - 'barometer-influxdb':
421           project: 'barometer'
422           dockerdir: 'docker/barometer-influxdb'
423           <<: *lakelse
424           <<: *other-receivers
425       - 'barometer-kafka':
426           project: 'barometer'
427           dockerdir: 'docker/barometer-kafka'
428           <<: *lakelse
429           <<: *other-receivers
430       - 'barometer-ves':
431           project: 'barometer'
432           dockerdir: 'docker/barometer-ves'
433           <<: *lakelse
434           <<: *other-receivers
435       - 'barometer-snmp':
436           project: 'barometer'
437           dockerdir: 'docker/barometer-snmp'
438           <<: *lakelse
439           <<: *other-receivers
440
441     # yamllint enable rule:key-duplicates
442     jobs:
443       - "{dockerrepo}-docker-build-push-{stream}"
444
445 ########################
446 # job templates
447 ########################
448 - job-template:
449     name: '{dockerrepo}-docker-build-push-{stream}'
450
451     disabled: '{obj:disabled}'
452
453     parameters: &parameters
454       - project-parameter:
455           project: '{project}'
456           branch: '{branch}'
457       - 'opnfv-build-ubuntu-defaults'
458       - string:
459           name: PUSH_IMAGE
460           default: "true"
461           description: "To enable/disable pushing the image to Dockerhub."
462       - string:
463           name: DOCKER_REPO_NAME
464           default: "anuket/{dockerrepo}"
465           description: "Dockerhub repo to be pushed to."
466       - string:
467           name: DOCKER_DIR
468           default: "{dockerdir}"
469           description: "Directory containing files needed by the Dockerfile"
470       - string:
471           name: COMMIT_ID
472           default: ""
473           description: "commit id to make a snapshot docker image"
474       - string:
475           name: GERRIT_REFNAME
476           default: ""
477           description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1"
478       - string:
479           name: DOCKERFILE
480           default: "{dockerfile}"
481           description: "Dockerfile to use for creating the image."
482       - string:
483           name: ARCH_TAG
484           default: "{arch_tag}"
485           description: "If set, this value will be added to the docker image tag as a prefix"
486       - string:
487           name: EXTRA_BUILD_ARGS
488           default: "{extra_build_args}"
489           description: "Whitespace separated key=value pairs. If set, these args will be used to build docker image"
490
491     properties:
492       - throttle:
493           max-per-node: 1
494           option: 'project'
495
496     scm:
497       - git-scm
498
499     builders: &builders
500       - shell:
501           !include-raw-escape: ./opnfv-docker.sh
502
503     triggers:
504       - pollscm:
505           cron: "*/30 * * * *"
506       - gerrit-trigger-tag-created:
507           project: '{project}'
508
509     publishers:
510       - email:
511           recipients: '{receivers}'
512       - email-jenkins-admins-on-failure