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