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