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