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