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