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