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