Pharos Dashboard Container Builds
[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-mq':
153           project: 'pharos-tools'
154           dockerdir: 'dashboard/rabbitmq'
155           <<: *master
156           <<: *pharos_tools_receivers
157       - 'pharos-tools-laas-celery':
158           project: 'pharos-tools'
159           dockerdir: 'dashboard/worker'
160           <<: *master
161           <<: *pharos_tools_receivers
162       - 'qtip':
163           project: 'qtip'
164           dockerdir: '.'
165           dockerfile: 'docker/Dockerfile.local'
166           <<: *master
167           <<: *other-receivers
168       - 'qtip-nettest':
169           project: 'qtip'
170           dockerdir: 'contrib/nettest'
171           <<: *master
172           <<: *other-receivers
173       - 'storperf-master':
174           project: 'storperf'
175           dockerdir: 'docker/storperf-master'
176           arch_tag: 'x86_64'
177           <<: *master
178           <<: *storperf-receivers
179       - 'storperf-graphite':
180           project: 'storperf'
181           dockerdir: 'docker/storperf-graphite'
182           arch_tag: 'x86_64'
183           <<: *master
184           <<: *storperf-receivers
185       - 'storperf-httpfrontend':
186           project: 'storperf'
187           dockerdir: 'docker/storperf-httpfrontend'
188           arch_tag: 'x86_64'
189           <<: *master
190           <<: *storperf-receivers
191       - 'storperf-reporting':
192           project: 'storperf'
193           dockerdir: 'docker/storperf-reporting'
194           arch_tag: 'x86_64'
195           <<: *master
196           <<: *storperf-receivers
197       - 'storperf-swaggerui':
198           project: 'storperf'
199           dockerdir: 'docker/storperf-swaggerui'
200           arch_tag: 'x86_64'
201           <<: *master
202           <<: *storperf-receivers
203       - 'yardstick':
204           project: 'yardstick'
205           <<: *master
206           <<: *yardstick-receivers
207       - 'yardstick-image-k8s':
208           project: 'yardstick'
209           dockerdir: 'docker/k8s'
210           <<: *master
211           <<: *yardstick-receivers
212
213       # projects with jobs for euphrates
214       - 'barometer-collectd':
215           project: 'barometer'
216           dockerdir: 'docker/barometer-collectd'
217           <<: *fraser
218           <<: *other-receivers
219       - 'barometer-grafana':
220           project: 'barometer'
221           dockerdir: 'docker/barometer-grafana'
222           <<: *fraser
223           <<: *other-receivers
224       - 'barometer-influxdb':
225           project: 'barometer'
226           dockerdir: 'docker/barometer-influxdb'
227           <<: *fraser
228           <<: *other-receivers
229       - 'barometer-kafka':
230           project: 'barometer'
231           dockerdir: 'docker/barometer-kafka'
232           <<: *fraser
233           <<: *other-receivers
234       - 'barometer-ves':
235           project: 'barometer'
236           dockerdir: 'docker/barometer-ves'
237           <<: *fraser
238           <<: *other-receivers
239       - 'barometer-snmp':
240           project: 'barometer'
241           dockerdir: 'docker/barometer-snmp'
242           <<: *fraser
243           <<: *other-receivers
244       - 'bottlenecks':
245           project: 'bottlenecks'
246           <<: *euphrates
247           <<: *other-receivers
248       - 'nfvbench':
249           project: 'nfvbench'
250           <<: *fraser
251           <<: *other-receivers
252       - 'qtip':
253           project: 'qtip'
254           dockerdir: '.'
255           dockerfile: 'docker/Dockerfile.local'
256           <<: *fraser
257           <<: *other-receivers
258       - 'storperf-master':
259           project: 'storperf'
260           dockerdir: 'docker/storperf-master'
261           arch_tag: 'x86_64'
262           <<: *fraser
263           <<: *storperf-receivers
264       - 'storperf-graphite':
265           project: 'storperf'
266           dockerdir: 'docker/storperf-graphite'
267           arch_tag: 'x86_64'
268           <<: *fraser
269           <<: *storperf-receivers
270       - 'storperf-httpfrontend':
271           project: 'storperf'
272           dockerdir: 'docker/storperf-httpfrontend'
273           arch_tag: 'x86_64'
274           <<: *fraser
275           <<: *storperf-receivers
276       - 'storperf-reporting':
277           project: 'storperf'
278           dockerdir: 'docker/storperf-reporting'
279           arch_tag: 'x86_64'
280           <<: *fraser
281           <<: *storperf-receivers
282       - 'storperf-swaggerui':
283           project: 'storperf'
284           dockerdir: 'docker/storperf-swaggerui'
285           arch_tag: 'x86_64'
286           <<: *fraser
287           <<: *storperf-receivers
288       - 'yardstick':
289           project: 'yardstick'
290           <<: *fraser
291           <<: *other-receivers
292       # projects with jobs for fraser
293       - 'bottlenecks':
294           project: 'bottlenecks'
295           <<: *fraser
296           <<: *other-receivers
297       - 'clover':
298           project: 'clover'
299           dockerdir: '.'
300           dockerfile: 'docker/Dockerfile'
301           <<: *fraser
302           <<: *other-receivers
303       - 'clover-ns-nginx-lb':
304           project: 'clover'
305           dockerdir: 'samples/services/nginx/docker'
306           dockerfile: 'subservices/lb/Dockerfile'
307           <<: *fraser
308           <<: *other-receivers
309       - 'clover-ns-nginx-proxy':
310           project: 'clover'
311           dockerdir: 'samples/services/nginx/docker'
312           dockerfile: 'subservices/proxy/Dockerfile'
313           <<: *fraser
314           <<: *other-receivers
315       - 'clover-ns-nginx-server':
316           project: 'clover'
317           dockerdir: 'samples/services/nginx/docker'
318           dockerfile: 'subservices/server/Dockerfile'
319           <<: *fraser
320           <<: *other-receivers
321       - 'clover-ns-snort-ids':
322           project: 'clover'
323           dockerdir: 'samples/services/snort_ids/docker'
324           dockerfile: 'Dockerfile'
325           <<: *fraser
326           <<: *other-receivers
327       - 'dovetail':
328           project: 'dovetail'
329           <<: *fraser
330           <<: *other-receivers
331     # yamllint enable rule:key-duplicates
332     jobs:
333       - "{dockerrepo}-docker-build-push-{stream}"
334
335 - project:
336
337     name: opnfv-monitor-docker        # projects which only monitor dedicated file or path
338
339     dockerfile: "Dockerfile"
340     dockerdir: "docker"
341     arch_tag: ""
342
343     project:
344       # projects with jobs for master
345       - 'daisy':
346           dockerrepo: 'daisy'
347           <<: *master
348       - 'escalator':
349           dockerrepo: 'escalator'
350           <<: *master
351
352     jobs:
353       - '{project}-docker-build-push-monitor-{stream}'
354
355 ########################
356 # job templates
357 ########################
358 - job-template:
359     name: '{dockerrepo}-docker-build-push-{stream}'
360
361     disabled: '{obj:disabled}'
362
363     parameters: &parameters
364       - project-parameter:
365           project: '{project}'
366           branch: '{branch}'
367       - 'opnfv-build-ubuntu-defaults'
368       - string:
369           name: PUSH_IMAGE
370           default: "true"
371           description: "To enable/disable pushing the image to Dockerhub."
372       - string:
373           name: DOCKER_REPO_NAME
374           default: "opnfv/{dockerrepo}"
375           description: "Dockerhub repo to be pushed to."
376       - string:
377           name: DOCKER_DIR
378           default: "{dockerdir}"
379           description: "Directory containing files needed by the Dockerfile"
380       - string:
381           name: COMMIT_ID
382           default: ""
383           description: "commit id to make a snapshot docker image"
384       - string:
385           name: GERRIT_REFNAME
386           default: ""
387           description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1"
388       - string:
389           name: DOCKERFILE
390           default: "{dockerfile}"
391           description: "Dockerfile to use for creating the image."
392       - string:
393           name: ARCH_TAG
394           default: "{arch_tag}"
395           description: "If set, this value will be added to the docker image tag as a prefix"
396
397     properties:
398       - throttle:
399           max-per-node: 1
400           option: 'project'
401
402     scm:
403       - git-scm
404
405     builders: &builders
406       - shell:
407           !include-raw-escape: ./opnfv-docker.sh
408
409     triggers:
410       - pollscm:
411           cron: "*/30 * * * *"
412       - gerrit-trigger-tag-created:
413           project: '{project}'
414
415     publishers:
416       - email:
417           recipients: '{receivers}'
418       - email-jenkins-admins-on-failure
419
420 - job-template:
421     name: '{project}-docker-build-push-monitor-{stream}'
422     disabled: '{obj:disabled}'
423     parameters: *parameters
424
425     scm:
426       - git-scm
427
428     builders: *builders
429
430     # trigger only matching the file name
431     triggers:
432       - gerrit:
433           trigger-on:
434             - change-merged-event
435             - comment-added-contains-event:
436                 comment-contains-value: 'remerge'
437           projects:
438             - project-compare-type: 'ANT'
439               project-pattern: '{project}'
440               branches:
441                 - branch-compare-type: 'ANT'
442                   branch-pattern: '**/{branch}'
443               file-paths:
444                 - compare-type: ANT
445                   pattern: 'docker/**'