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