98d2acc54260c63044be78368165b47293d32a71
[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     jerma: &jerma
23       stream: jerma
24       branch: 'stable/{stream}'
25       disabled: false
26     laas-receivers: &laas_receivers
27       receivers: >
28           pberberian@iol.unh.edu
29           sbergeron@iol.unh.edu
30     storperf-receivers: &storperf-receivers
31       receivers: >
32           mbeierl@vmware.com
33     samplevnf-receivers: &samplevnf-receivers
34       receivers: >
35           luc.provoost@intel.com
36           yury.kylulin@intel.com
37     other-receivers: &other-receivers
38       receivers: ''
39
40     dockerfile: "Dockerfile"
41     dockerdir: "docker"
42     arch_tag: ""
43     extra_build_args: ""
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-collectd-experimental':
61           project: 'barometer'
62           dockerdir: '.'
63           dockerfile: 'docker/barometer-collectd-experimental/Dockerfile'
64           <<: *master
65           <<: *other-receivers
66       - 'barometer-collectd-latest':
67           project: 'barometer'
68           dockerdir: '.'
69           dockerfile: 'docker/barometer-collectd-latest/Dockerfile'
70           <<: *master
71           <<: *other-receivers
72       - 'barometer-dma':
73           project: 'barometer'
74           dockerdir: 'docker/barometer-dma'
75           <<: *master
76           <<: *other-receivers
77       - 'barometer-grafana':
78           project: 'barometer'
79           dockerdir: 'docker/barometer-grafana'
80           <<: *master
81           <<: *other-receivers
82       - 'barometer-influxdb':
83           project: 'barometer'
84           dockerdir: 'docker/barometer-influxdb'
85           <<: *master
86           <<: *other-receivers
87       - 'barometer-kafka':
88           project: 'barometer'
89           dockerdir: 'docker/barometer-kafka'
90           <<: *master
91           <<: *other-receivers
92       - 'barometer-ves':
93           project: 'barometer'
94           dockerdir: 'docker/barometer-ves'
95           <<: *master
96           <<: *other-receivers
97       - 'barometer-snmp':
98           project: 'barometer'
99           dockerdir: 'docker/barometer-snmp'
100           <<: *master
101           <<: *other-receivers
102       - 'dovetail':
103           project: 'dovetail'
104           <<: *master
105           <<: *other-receivers
106       - 'dovetail-webportal-api':
107           project: 'dovetail-webportal'
108           dockerfile: 'Dockerfile.api'
109           <<: *master
110           <<: *other-receivers
111       - 'dovetail-webportal-web':
112           project: 'dovetail-webportal'
113           dockerfile: 'Dockerfile.web'
114           <<: *master
115           <<: *other-receivers
116       - 'dovetail-webportal-web-onap':
117           project: 'dovetail-webportal'
118           dockerfile: 'Dockerfile.web'
119           extra_build_args: 'CONTAINER=onap GUI=onap-ui'
120           <<: *master
121           <<: *other-receivers
122       - 'nfvbench':
123           project: 'nfvbench'
124           <<: *master
125           <<: *other-receivers
126       - 'laas-dashboard':
127           project: 'laas'
128           dockerdir: '.'
129           dockerfile: 'web/Dockerfile'
130           <<: *master
131           <<: *laas_receivers
132       - 'laas-celery':
133           project: 'laas'
134           dockerdir: '.'
135           dockerfile: 'worker/Dockerfile'
136           <<: *master
137           <<: *laas_receivers
138       - 'storperf-master':
139           project: 'storperf'
140           dockerdir: 'docker/storperf-master'
141           arch_tag: 'x86_64'
142           <<: *master
143           <<: *storperf-receivers
144       - 'storperf-graphite':
145           project: 'storperf'
146           dockerdir: 'docker/storperf-graphite'
147           arch_tag: 'x86_64'
148           <<: *master
149           <<: *storperf-receivers
150       - 'storperf-httpfrontend':
151           project: 'storperf'
152           dockerdir: 'docker/storperf-httpfrontend'
153           arch_tag: 'x86_64'
154           <<: *master
155           <<: *storperf-receivers
156       - 'storperf-reporting':
157           project: 'storperf'
158           dockerdir: 'docker/storperf-reporting'
159           arch_tag: 'x86_64'
160           <<: *master
161           <<: *storperf-receivers
162       - 'storperf-swaggerui':
163           project: 'storperf'
164           dockerdir: 'docker/storperf-swaggerui'
165           arch_tag: 'x86_64'
166           <<: *master
167           <<: *storperf-receivers
168       - 'storperf-workloadagent':
169           project: 'storperf'
170           dockerdir: 'docker/storperf-workloadagent'
171           arch_tag: 'x86_64'
172           <<: *master
173           <<: *storperf-receivers
174       - 'rapid':
175           project: 'samplevnf'
176           dockerdir: 'VNFs/DPPD-PROX/helper-scripts/rapid'
177           <<: *master
178           <<: *samplevnf-receivers
179
180       # projects with jobs for hunter
181       - 'dovetail':
182           project: 'dovetail'
183           <<: *hunter
184           <<: *other-receivers
185
186       # projects with jobs for iruya
187       - 'storperf-master':
188           project: 'storperf'
189           dockerdir: 'docker/storperf-master'
190           arch_tag: 'x86_64'
191           <<: *iruya
192           <<: *storperf-receivers
193       - 'storperf-graphite':
194           project: 'storperf'
195           dockerdir: 'docker/storperf-graphite'
196           arch_tag: 'x86_64'
197           <<: *iruya
198           <<: *storperf-receivers
199       - 'storperf-httpfrontend':
200           project: 'storperf'
201           dockerdir: 'docker/storperf-httpfrontend'
202           arch_tag: 'x86_64'
203           <<: *iruya
204           <<: *storperf-receivers
205       - 'storperf-reporting':
206           project: 'storperf'
207           dockerdir: 'docker/storperf-reporting'
208           arch_tag: 'x86_64'
209           <<: *iruya
210           <<: *storperf-receivers
211       - 'storperf-swaggerui':
212           project: 'storperf'
213           dockerdir: 'docker/storperf-swaggerui'
214           arch_tag: 'x86_64'
215           <<: *iruya
216           <<: *storperf-receivers
217       - 'storperf-workloadagent':
218           project: 'storperf'
219           dockerdir: 'docker/storperf-workloadagent'
220           arch_tag: 'x86_64'
221           <<: *iruya
222           <<: *storperf-receivers
223
224       # projects with jobs for jerma
225       - 'barometer-collectd':
226           project: 'barometer'
227           dockerdir: 'docker/barometer-collectd'
228           <<: *jerma
229           <<: *other-receivers
230       - 'barometer-collectd-experimental':
231           project: 'barometer'
232           dockerdir: '.'
233           dockerfile: 'docker/barometer-collectd-experimental/Dockerfile'
234           <<: *jerma
235           <<: *other-receivers
236       - 'barometer-collectd-latest':
237           project: 'barometer'
238           dockerdir: '.'
239           dockerfile: 'docker/barometer-collectd-latest/Dockerfile'
240           <<: *jerma
241           <<: *other-receivers
242       - 'barometer-dma':
243           project: 'barometer'
244           dockerdir: 'docker/barometer-dma'
245           <<: *jerma
246           <<: *other-receivers
247       - 'barometer-grafana':
248           project: 'barometer'
249           dockerdir: 'docker/barometer-grafana'
250           <<: *jerma
251           <<: *other-receivers
252       - 'barometer-influxdb':
253           project: 'barometer'
254           dockerdir: 'docker/barometer-influxdb'
255           <<: *jerma
256           <<: *other-receivers
257       - 'barometer-kafka':
258           project: 'barometer'
259           dockerdir: 'docker/barometer-kafka'
260           <<: *jerma
261           <<: *other-receivers
262       - 'barometer-ves':
263           project: 'barometer'
264           dockerdir: 'docker/barometer-ves'
265           <<: *jerma
266           <<: *other-receivers
267       - 'barometer-snmp':
268           project: 'barometer'
269           dockerdir: 'docker/barometer-snmp'
270           <<: *jerma
271           <<: *other-receivers
272
273     # yamllint enable rule:key-duplicates
274     jobs:
275       - "{dockerrepo}-docker-build-push-{stream}"
276
277 ########################
278 # job templates
279 ########################
280 - job-template:
281     name: '{dockerrepo}-docker-build-push-{stream}'
282
283     disabled: '{obj:disabled}'
284
285     parameters: &parameters
286       - project-parameter:
287           project: '{project}'
288           branch: '{branch}'
289       - 'opnfv-build-ubuntu-defaults'
290       - string:
291           name: PUSH_IMAGE
292           default: "true"
293           description: "To enable/disable pushing the image to Dockerhub."
294       - string:
295           name: DOCKER_REPO_NAME
296           default: "opnfv/{dockerrepo}"
297           description: "Dockerhub repo to be pushed to."
298       - string:
299           name: DOCKER_DIR
300           default: "{dockerdir}"
301           description: "Directory containing files needed by the Dockerfile"
302       - string:
303           name: COMMIT_ID
304           default: ""
305           description: "commit id to make a snapshot docker image"
306       - string:
307           name: GERRIT_REFNAME
308           default: ""
309           description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1"
310       - string:
311           name: DOCKERFILE
312           default: "{dockerfile}"
313           description: "Dockerfile to use for creating the image."
314       - string:
315           name: ARCH_TAG
316           default: "{arch_tag}"
317           description: "If set, this value will be added to the docker image tag as a prefix"
318       - string:
319           name: EXTRA_BUILD_ARGS
320           default: "{extra_build_args}"
321           description: "Whitespace separated key=value pairs. If set, these args will be used to build docker image"
322
323     properties:
324       - throttle:
325           max-per-node: 1
326           option: 'project'
327
328     scm:
329       - git-scm
330
331     builders: &builders
332       - shell:
333           !include-raw-escape: ./opnfv-docker.sh
334
335     triggers:
336       - pollscm:
337           cron: "*/30 * * * *"
338       - gerrit-trigger-tag-created:
339           project: '{project}'
340
341     publishers:
342       - email:
343           recipients: '{receivers}'
344       - email-jenkins-admins-on-failure