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