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