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