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