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