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