barometer: Add job definition for collectd-master docker image build
[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     danube: &danube
15       stream: danube
16       branch: 'stable/{stream}'
17       disabled: false
18     euphrates: &euphrates
19       stream: euphrates
20       branch: 'stable/{stream}'
21       disabled: false
22     fraser: &fraser
23       stream: fraser
24       branch: 'stable/{stream}'
25       disabled: false
26     gambia: &gambia
27       stream: gambia
28       branch: 'stable/{stream}'
29       disabled: false
30     pharos-tools-receivers: &pharos_tools_receivers
31       receivers: >
32           pberberian@iol.unh.edu
33           sbergeron@iol.unh.edu
34     storperf-receivers: &storperf-receivers
35       receivers: >
36           mark.beierl@emc.com
37     yardstick-receivers: &yardstick-receivers
38       receivers: >
39           limingjiang@huawei.com
40           rexlee8776@gmail.com
41           emma.l.foley@intel.com
42     other-receivers: &other-receivers
43       receivers: ''
44
45     dockerfile: "Dockerfile"
46     dockerdir: "docker"
47     arch_tag: ""
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-master':
65           project: 'barometer'
66           dockerdir: '.'
67           dockerfile: 'docker/barometer-collectd-master/Dockerfile'
68           <<: *master
69           <<: *other-receivers
70       - 'barometer-dma':
71           project: 'barometer'
72           dockerdir: 'docker/barometer-dma'
73           <<: *master
74           <<: *other-receivers
75       - 'barometer-grafana':
76           project: 'barometer'
77           dockerdir: 'docker/barometer-grafana'
78           <<: *master
79           <<: *other-receivers
80       - 'barometer-influxdb':
81           project: 'barometer'
82           dockerdir: 'docker/barometer-influxdb'
83           <<: *master
84           <<: *other-receivers
85       - 'barometer-kafka':
86           project: 'barometer'
87           dockerdir: 'docker/barometer-kafka'
88           <<: *master
89           <<: *other-receivers
90       - 'barometer-ves':
91           project: 'barometer'
92           dockerdir: 'docker/barometer-ves'
93           <<: *master
94           <<: *other-receivers
95       - 'barometer-snmp':
96           project: 'barometer'
97           dockerdir: 'docker/barometer-snmp'
98           <<: *master
99           <<: *other-receivers
100       - 'bottlenecks':
101           project: 'bottlenecks'
102           <<: *master
103           <<: *other-receivers
104       - 'clover':
105           project: 'clover'
106           dockerdir: '.'
107           dockerfile: 'docker/Dockerfile'
108           <<: *master
109           <<: *other-receivers
110       - 'clover-ns-nginx-lb':
111           project: 'clover'
112           dockerdir: 'samples/services/nginx/docker'
113           dockerfile: 'subservices/lb/Dockerfile'
114           <<: *master
115           <<: *other-receivers
116       - 'clover-ns-nginx-proxy':
117           project: 'clover'
118           dockerdir: 'samples/services/nginx/docker'
119           dockerfile: 'subservices/proxy/Dockerfile'
120           <<: *master
121           <<: *other-receivers
122       - 'clover-ns-nginx-server':
123           project: 'clover'
124           dockerdir: 'samples/services/nginx/docker'
125           dockerfile: 'subservices/server/Dockerfile'
126           <<: *master
127           <<: *other-receivers
128       - 'clover-ns-snort-ids':
129           project: 'clover'
130           dockerdir: 'samples/services/snort_ids/docker'
131           dockerfile: 'Dockerfile'
132           <<: *master
133           <<: *other-receivers
134       - 'clover-controller':
135           project: 'clover'
136           dockerdir: 'clover/controller'
137           dockerfile: 'docker/Dockerfile'
138           <<: *master
139           <<: *other-receivers
140       - 'clover-collector':
141           project: 'clover'
142           dockerdir: 'clover/collector'
143           dockerfile: 'docker/Dockerfile'
144           <<: *master
145           <<: *other-receivers
146       - 'clover-jmeter-master':
147           project: 'clover'
148           dockerdir: 'clover/tools/jmeter'
149           dockerfile: 'jmeter-master/Dockerfile'
150           <<: *master
151           <<: *other-receivers
152       - 'clover-jmeter-slave':
153           project: 'clover'
154           dockerdir: 'clover/tools/jmeter'
155           dockerfile: 'jmeter-slave/Dockerfile'
156           <<: *master
157           <<: *other-receivers
158       - 'clover-sample-app':
159           project: 'clover'
160           dockerdir: 'samples/scenarios/sample_app'
161           dockerfile: 'Dockerfile'
162           <<: *master
163           <<: *other-receivers
164       - 'clover-ns-modsecurity-crs':
165           project: 'clover'
166           dockerdir: 'samples/services/modsecurity/docker'
167           dockerfile: 'Dockerfile'
168           <<: *master
169           <<: *other-receivers
170       - 'clover-spark':
171           project: 'clover'
172           dockerdir: 'clover/spark/docker/clover-spark'
173           dockerfile: 'Dockerfile'
174           <<: *master
175           <<: *other-receivers
176       - 'clover-spark-submit':
177           project: 'clover'
178           dockerdir: 'clover/spark/docker/spark-submit'
179           dockerfile: 'Dockerfile'
180           <<: *master
181           <<: *other-receivers
182       - 'clover-clovisor':
183           project: 'clover'
184           dockerdir: 'clover/clovisor'
185           dockerfile: 'Dockerfile'
186           <<: *master
187           <<: *other-receivers
188       - 'cperf':
189           project: 'cperf'
190           <<: *master
191           <<: *other-receivers
192       - 'dovetail':
193           project: 'dovetail'
194           <<: *master
195           <<: *other-receivers
196       - 'dovetail-webportal-api':
197           project: 'dovetail-webportal'
198           dockerfile: 'Dockerfile.api'
199           <<: *master
200           <<: *other-receivers
201       - 'dovetail-webportal-web':
202           project: 'dovetail-webportal'
203           dockerfile: 'Dockerfile.web'
204           <<: *master
205           <<: *other-receivers
206       - 'nfvbench':
207           project: 'nfvbench'
208           <<: *master
209           <<: *other-receivers
210       - 'pharos-tools-laas-dashboard':
211           project: 'pharos-tools'
212           dockerdir: 'dashboard'
213           dockerfile: 'web/Dockerfile'
214           <<: *master
215           <<: *pharos_tools_receivers
216       - 'pharos-tools-laas-celery':
217           project: 'pharos-tools'
218           dockerdir: 'dashboard'
219           dockerfile: 'worker/Dockerfile'
220           <<: *master
221           <<: *pharos_tools_receivers
222       - 'qtip':
223           project: 'qtip'
224           dockerdir: '.'
225           dockerfile: 'docker/Dockerfile.local'
226           <<: *master
227           <<: *other-receivers
228       - 'qtip-nettest':
229           project: 'qtip'
230           dockerdir: 'contrib/nettest'
231           <<: *master
232           <<: *other-receivers
233       - 'storperf-master':
234           project: 'storperf'
235           dockerdir: 'docker/storperf-master'
236           arch_tag: 'x86_64'
237           <<: *master
238           <<: *storperf-receivers
239       - 'storperf-graphite':
240           project: 'storperf'
241           dockerdir: 'docker/storperf-graphite'
242           arch_tag: 'x86_64'
243           <<: *master
244           <<: *storperf-receivers
245       - 'storperf-httpfrontend':
246           project: 'storperf'
247           dockerdir: 'docker/storperf-httpfrontend'
248           arch_tag: 'x86_64'
249           <<: *master
250           <<: *storperf-receivers
251       - 'storperf-reporting':
252           project: 'storperf'
253           dockerdir: 'docker/storperf-reporting'
254           arch_tag: 'x86_64'
255           <<: *master
256           <<: *storperf-receivers
257       - 'storperf-swaggerui':
258           project: 'storperf'
259           dockerdir: 'docker/storperf-swaggerui'
260           arch_tag: 'x86_64'
261           <<: *master
262           <<: *storperf-receivers
263       - 'yardstick':
264           project: 'yardstick'
265           <<: *master
266           <<: *yardstick-receivers
267       - 'yardstick-ubuntu-18.04':
268           project: 'yardstick'
269           dockerfile: 'Dockerfile_ubuntu18'
270           <<: *master
271           <<: *yardstick-receivers
272       - 'yardstick-image-k8s':
273           project: 'yardstick'
274           dockerdir: 'docker/k8s'
275           <<: *master
276           <<: *yardstick-receivers
277
278       # projects with jobs for euphrates
279       - 'barometer-dma':
280           project: 'barometer'
281           dockerdir: 'docker/barometer-dma'
282           <<: *gambia
283           <<: *other-receivers
284       - 'barometer-collectd':
285           project: 'barometer'
286           dockerdir: 'docker/barometer-collectd'
287           <<: *gambia
288           <<: *other-receivers
289       - 'barometer-collectd-master':
290           project: 'barometer'
291           dockerdir: '.'
292           dockerfile: 'docker/barometer-collectd-master/Dockerfile'
293           <<: *gambia
294           <<: *other-receivers
295       - 'barometer-grafana':
296           project: 'barometer'
297           dockerdir: 'docker/barometer-grafana'
298           <<: *gambia
299           <<: *other-receivers
300       - 'barometer-influxdb':
301           project: 'barometer'
302           dockerdir: 'docker/barometer-influxdb'
303           <<: *gambia
304           <<: *other-receivers
305       - 'barometer-kafka':
306           project: 'barometer'
307           dockerdir: 'docker/barometer-kafka'
308           <<: *gambia
309           <<: *other-receivers
310       - 'barometer-ves':
311           project: 'barometer'
312           dockerdir: 'docker/barometer-ves'
313           <<: *gambia
314           <<: *other-receivers
315       - 'barometer-snmp':
316           project: 'barometer'
317           dockerdir: 'docker/barometer-snmp'
318           <<: *gambia
319           <<: *other-receivers
320       - 'bottlenecks':
321           project: 'bottlenecks'
322           <<: *gambia
323           <<: *other-receivers
324       - 'nfvbench':
325           project: 'nfvbench'
326           <<: *fraser
327           <<: *other-receivers
328       - 'qtip':
329           project: 'qtip'
330           dockerdir: '.'
331           dockerfile: 'docker/Dockerfile.local'
332           <<: *fraser
333           <<: *other-receivers
334       - 'storperf-master':
335           project: 'storperf'
336           dockerdir: 'docker/storperf-master'
337           arch_tag: 'x86_64'
338           <<: *gambia
339           <<: *storperf-receivers
340       - 'storperf-graphite':
341           project: 'storperf'
342           dockerdir: 'docker/storperf-graphite'
343           arch_tag: 'x86_64'
344           <<: *gambia
345           <<: *storperf-receivers
346       - 'storperf-httpfrontend':
347           project: 'storperf'
348           dockerdir: 'docker/storperf-httpfrontend'
349           arch_tag: 'x86_64'
350           <<: *gambia
351           <<: *storperf-receivers
352       - 'storperf-reporting':
353           project: 'storperf'
354           dockerdir: 'docker/storperf-reporting'
355           arch_tag: 'x86_64'
356           <<: *gambia
357           <<: *storperf-receivers
358       - 'storperf-swaggerui':
359           project: 'storperf'
360           dockerdir: 'docker/storperf-swaggerui'
361           arch_tag: 'x86_64'
362           <<: *gambia
363           <<: *storperf-receivers
364       - 'yardstick':
365           project: 'yardstick'
366           <<: *gambia
367           <<: *yardstick-receivers
368       # projects with jobs for fraser
369       - 'bottlenecks':
370           project: 'bottlenecks'
371           <<: *fraser
372           <<: *other-receivers
373       - 'clover':
374           project: 'clover'
375           dockerdir: '.'
376           dockerfile: 'docker/Dockerfile'
377           <<: *fraser
378           <<: *other-receivers
379       - 'clover-ns-nginx-lb':
380           project: 'clover'
381           dockerdir: 'samples/services/nginx/docker'
382           dockerfile: 'subservices/lb/Dockerfile'
383           <<: *fraser
384           <<: *other-receivers
385       - 'clover-ns-nginx-proxy':
386           project: 'clover'
387           dockerdir: 'samples/services/nginx/docker'
388           dockerfile: 'subservices/proxy/Dockerfile'
389           <<: *fraser
390           <<: *other-receivers
391       - 'clover-ns-nginx-server':
392           project: 'clover'
393           dockerdir: 'samples/services/nginx/docker'
394           dockerfile: 'subservices/server/Dockerfile'
395           <<: *fraser
396           <<: *other-receivers
397       - 'clover-ns-snort-ids':
398           project: 'clover'
399           dockerdir: 'samples/services/snort_ids/docker'
400           dockerfile: 'Dockerfile'
401           <<: *fraser
402           <<: *other-receivers
403       - 'dovetail':
404           project: 'dovetail'
405           <<: *fraser
406           <<: *other-receivers
407     # yamllint enable rule:key-duplicates
408     jobs:
409       - "{dockerrepo}-docker-build-push-{stream}"
410
411 - project:
412
413     name: opnfv-monitor-docker        # projects which only monitor dedicated file or path
414
415     dockerfile: "Dockerfile"
416     dockerdir: "docker"
417     arch_tag: ""
418
419     project:
420       # projects with jobs for master
421       - 'daisy':
422           dockerrepo: 'daisy'
423           <<: *master
424
425     jobs:
426       - '{project}-docker-build-push-monitor-{stream}'
427
428 ########################
429 # job templates
430 ########################
431 - job-template:
432     name: '{dockerrepo}-docker-build-push-{stream}'
433
434     disabled: '{obj:disabled}'
435
436     parameters: &parameters
437       - project-parameter:
438           project: '{project}'
439           branch: '{branch}'
440       - 'opnfv-build-ubuntu-defaults'
441       - string:
442           name: PUSH_IMAGE
443           default: "true"
444           description: "To enable/disable pushing the image to Dockerhub."
445       - string:
446           name: DOCKER_REPO_NAME
447           default: "opnfv/{dockerrepo}"
448           description: "Dockerhub repo to be pushed to."
449       - string:
450           name: DOCKER_DIR
451           default: "{dockerdir}"
452           description: "Directory containing files needed by the Dockerfile"
453       - string:
454           name: COMMIT_ID
455           default: ""
456           description: "commit id to make a snapshot docker image"
457       - string:
458           name: GERRIT_REFNAME
459           default: ""
460           description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1"
461       - string:
462           name: DOCKERFILE
463           default: "{dockerfile}"
464           description: "Dockerfile to use for creating the image."
465       - string:
466           name: ARCH_TAG
467           default: "{arch_tag}"
468           description: "If set, this value will be added to the docker image tag as a prefix"
469
470     properties:
471       - throttle:
472           max-per-node: 1
473           option: 'project'
474
475     scm:
476       - git-scm
477
478     builders: &builders
479       - shell:
480           !include-raw-escape: ./opnfv-docker.sh
481
482     triggers:
483       - pollscm:
484           cron: "*/30 * * * *"
485       - gerrit-trigger-tag-created:
486           project: '{project}'
487
488     publishers:
489       - email:
490           recipients: '{receivers}'
491       - email-jenkins-admins-on-failure
492
493 - job-template:
494     name: '{project}-docker-build-push-monitor-{stream}'
495     disabled: '{obj:disabled}'
496     parameters: *parameters
497
498     scm:
499       - git-scm
500
501     builders: *builders
502
503     # trigger only matching the file name
504     triggers:
505       - gerrit:
506           trigger-on:
507             - change-merged-event
508             - comment-added-contains-event:
509                 comment-contains-value: 'remerge'
510           projects:
511             - project-compare-type: 'ANT'
512               project-pattern: '{project}'
513               branches:
514                 - branch-compare-type: 'ANT'
515                   branch-pattern: '**/{branch}'
516               file-paths:
517                 - compare-type: ANT
518                   pattern: 'docker/**'