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