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