Merge "barometer_docker: add barometer-snmp to build"
[releng.git] / jjb / releng / opnfv-docker.yml
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     storperf-receivers: &storperf-receivers
23       receivers: >
24           mark.beierl@emc.com
25     other-receivers: &other-receivers
26       receivers: ''
27
28     dockerfile: "Dockerfile"
29     dockerdir: "docker"
30     arch_tag: ""
31
32     # This is the dockerhub repo the image will be pushed to as
33     # 'opnfv/{dockerrepo}. See: DOCKER_REPO_NAME parameter.
34     # 'project' is the OPNFV repo we expect to contain the Dockerfile
35     # yamllint disable rule:key-duplicates
36     dockerrepo:
37       # projects with jobs for master
38       - 'releng-anteater':
39           project: 'releng-anteater'
40           <<: *master
41           <<: *other-receivers
42       - 'barometer-collectd':
43           project: 'barometer'
44           dockerdir: 'docker/barometer-collectd'
45           <<: *master
46           <<: *other-receivers
47       - 'barometer-grafana':
48           project: 'barometer'
49           dockerdir: 'docker/barometer-grafana'
50           <<: *master
51           <<: *other-receivers
52       - 'barometer-influxdb':
53           project: 'barometer'
54           dockerdir: 'docker/barometer-influxdb'
55           <<: *master
56           <<: *other-receivers
57       - 'barometer-kafka':
58           project: 'barometer'
59           dockerdir: 'docker/barometer-kafka'
60           <<: *master
61           <<: *other-receivers
62       - 'barometer-ves':
63           project: 'barometer'
64           dockerdir: 'docker/barometer-ves'
65           <<: *master
66           <<: *other-receivers
67       - 'barometer-snmp':
68           project: 'barometer'
69           dockerdir: 'docker/barometer-snmp'
70           <<: *master
71           <<: *other-receivers
72       - 'bottlenecks':
73           project: 'bottlenecks'
74           <<: *master
75           <<: *other-receivers
76       - 'cperf':
77           project: 'cperf'
78           <<: *master
79           <<: *other-receivers
80       - 'dovetail':
81           project: 'dovetail'
82           <<: *master
83           <<: *other-receivers
84       - 'nfvbench':
85           project: 'nfvbench'
86           <<: *master
87           <<: *other-receivers
88       - 'qtip':
89           project: 'qtip'
90           dockerdir: '.'
91           dockerfile: 'docker/Dockerfile.local'
92           <<: *master
93           <<: *other-receivers
94       - 'storperf-master':
95           project: 'storperf'
96           dockerdir: 'docker/storperf-master'
97           arch_tag: 'x86_64'
98           <<: *master
99           <<: *storperf-receivers
100       - 'storperf-graphite':
101           project: 'storperf'
102           dockerdir: 'docker/storperf-graphite'
103           arch_tag: 'x86_64'
104           <<: *master
105           <<: *storperf-receivers
106       - 'storperf-httpfrontend':
107           project: 'storperf'
108           dockerdir: 'docker/storperf-httpfrontend'
109           arch_tag: 'x86_64'
110           <<: *master
111           <<: *storperf-receivers
112       - 'storperf-reporting':
113           project: 'storperf'
114           dockerdir: 'docker/storperf-reporting'
115           arch_tag: 'x86_64'
116           <<: *master
117           <<: *storperf-receivers
118       - 'storperf-swaggerui':
119           project: 'storperf'
120           dockerdir: 'docker/storperf-swaggerui'
121           arch_tag: 'x86_64'
122           <<: *master
123           <<: *storperf-receivers
124       - 'yardstick':
125           project: 'yardstick'
126           <<: *master
127           <<: *other-receivers
128       - 'functest-kubernetes':
129           project: 'functest-kubernetes'
130           <<: *master
131           <<: *other-receivers
132       # projects with jobs for euphrates
133       - 'bottlenecks':
134           project: 'bottlenecks'
135           <<: *euphrates
136           <<: *other-receivers
137       - 'nfvbench':
138           project: 'nfvbench'
139           <<: *euphrates
140           <<: *other-receivers
141       - 'qtip':
142           project: 'qtip'
143           <<: *euphrates
144           <<: *other-receivers
145       - 'storperf-master':
146           project: 'storperf'
147           dockerdir: 'docker/storperf-master'
148           arch_tag: 'x86_64'
149           <<: *euphrates
150           <<: *storperf-receivers
151       - 'storperf-graphite':
152           project: 'storperf'
153           dockerdir: 'docker/storperf-graphite'
154           arch_tag: 'x86_64'
155           <<: *euphrates
156           <<: *storperf-receivers
157       - 'storperf-httpfrontend':
158           project: 'storperf'
159           dockerdir: 'docker/storperf-httpfrontend'
160           arch_tag: 'x86_64'
161           <<: *euphrates
162           <<: *storperf-receivers
163       - 'storperf-reporting':
164           project: 'storperf'
165           dockerdir: 'docker/storperf-reporting'
166           arch_tag: 'x86_64'
167           <<: *euphrates
168           <<: *storperf-receivers
169       - 'storperf-swaggerui':
170           project: 'storperf'
171           dockerdir: 'docker/storperf-swaggerui'
172           arch_tag: 'x86_64'
173           <<: *euphrates
174           <<: *storperf-receivers
175       - 'yardstick':
176           project: 'yardstick'
177           <<: *euphrates
178           <<: *other-receivers
179       - 'xtesting':
180           project: 'functest-xtesting'
181           <<: *master
182           <<: *other-receivers
183       # projects with jobs for danube
184       - 'dovetail':
185           project: 'dovetail'
186           <<: *danube
187           <<: *other-receivers
188
189     # yamllint enable rule:key-duplicates
190     jobs:
191       - "{dockerrepo}-docker-build-push-{stream}"
192
193 - project:
194
195     name: opnfv-monitor-docker        # projects which only monitor dedicated file or path
196
197     dockerfile: "Dockerfile"
198     dockerdir: "docker"
199     arch_tag: ""
200
201     project:
202       # projects with jobs for master
203       - 'daisy':
204           dockerrepo: 'daisy'
205           <<: *master
206       - 'escalator':
207           dockerrepo: 'escalator'
208           <<: *master
209
210     jobs:
211       - '{project}-docker-build-push-monitor-{stream}'
212
213 ########################
214 # job templates
215 ########################
216 - job-template:
217     name: '{dockerrepo}-docker-build-push-{stream}'
218
219     disabled: '{obj:disabled}'
220
221     parameters: &parameters
222       - project-parameter:
223           project: '{project}'
224           branch: '{branch}'
225       - 'opnfv-build-ubuntu-defaults'
226       - string:
227           name: PUSH_IMAGE
228           default: "true"
229           description: "To enable/disable pushing the image to Dockerhub."
230       - string:
231           name: DOCKER_REPO_NAME
232           default: "opnfv/{dockerrepo}"
233           description: "Dockerhub repo to be pushed to."
234       - string:
235           name: DOCKER_DIR
236           default: "{dockerdir}"
237           description: "Directory containing files needed by the Dockerfile"
238       - string:
239           name: COMMIT_ID
240           default: ""
241           description: "commit id to make a snapshot docker image"
242       - string:
243           name: GERRIT_REFNAME
244           default: ""
245           description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1"
246       - string:
247           name: DOCKERFILE
248           default: "{dockerfile}"
249           description: "Dockerfile to use for creating the image."
250       - string:
251           name: ARCH_TAG
252           default: "{arch_tag}"
253           description: "If set, this value will be added to the docker image tag as a prefix"
254
255     properties:
256       - throttle:
257           max-per-node: 1
258           option: 'project'
259
260     scm:
261       - git-scm
262
263     builders: &builders
264       - shell:
265           !include-raw-escape: ./opnfv-docker.sh
266
267     triggers:
268       - pollscm:
269           cron: "*/30 * * * *"
270       - gerrit-trigger-tag-created:
271           project: '{project}'
272
273     publishers:
274       - email:
275           recipients: '{receivers}'
276       - email-jenkins-admins-on-failure
277
278 - job-template:
279     name: '{project}-docker-build-push-monitor-{stream}'
280     disabled: '{obj:disabled}'
281     parameters: *parameters
282
283     scm:
284       - git-scm
285
286     builders: *builders
287
288     # trigger only matching the file name
289     triggers:
290       - gerrit:
291           trigger-on:
292             - change-merged-event
293             - comment-added-contains-event:
294                 comment-contains-value: 'remerge'
295           projects:
296             - project-compare-type: 'ANT'
297               project-pattern: '{project}'
298               branches:
299                 - branch-compare-type: 'ANT'
300                   branch-pattern: '**/{branch}'
301               file-paths:
302                 - compare-type: ANT
303                   pattern: 'docker/**'