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