Merge "Add lf-pod4 and lf-pod5 to slave params"
[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       # projects with jobs for danube
175       - 'dovetail':
176           project: 'dovetail'
177           <<: *danube
178           <<: *other-receivers
179
180     # yamllint enable rule:key-duplicates
181     jobs:
182       - "{dockerrepo}-docker-build-push-{stream}"
183
184 - project:
185
186     name: opnfv-monitor-docker        # projects which only monitor dedicated file or path
187
188     dockerfile: "Dockerfile"
189     dockerdir: "docker"
190     arch_tag: ""
191
192     project:
193       # projects with jobs for master
194       - 'daisy':
195           dockerrepo: 'daisy'
196           <<: *master
197       - 'escalator':
198           dockerrepo: 'escalator'
199           <<: *master
200
201     jobs:
202       - '{project}-docker-build-push-monitor-{stream}'
203
204 ########################
205 # job templates
206 ########################
207 - job-template:
208     name: '{dockerrepo}-docker-build-push-{stream}'
209
210     disabled: '{obj:disabled}'
211
212     parameters: &parameters
213       - project-parameter:
214           project: '{project}'
215           branch: '{branch}'
216       - 'opnfv-build-ubuntu-defaults'
217       - string:
218           name: PUSH_IMAGE
219           default: "true"
220           description: "To enable/disable pushing the image to Dockerhub."
221       - string:
222           name: DOCKER_REPO_NAME
223           default: "opnfv/{dockerrepo}"
224           description: "Dockerhub repo to be pushed to."
225       - string:
226           name: DOCKER_DIR
227           default: "{dockerdir}"
228           description: "Directory containing files needed by the Dockerfile"
229       - string:
230           name: COMMIT_ID
231           default: ""
232           description: "commit id to make a snapshot docker image"
233       - string:
234           name: GERRIT_REFNAME
235           default: ""
236           description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1"
237       - string:
238           name: DOCKERFILE
239           default: "{dockerfile}"
240           description: "Dockerfile to use for creating the image."
241       - string:
242           name: ARCH_TAG
243           default: "{arch_tag}"
244           description: "If set, this value will be added to the docker image tag as a prefix"
245
246     properties:
247       - throttle:
248           max-per-node: 1
249           option: 'project'
250
251     scm:
252       - git-scm
253
254     builders: &builders
255       - shell:
256           !include-raw-escape: ./opnfv-docker.sh
257
258     triggers:
259       - pollscm:
260           cron: "*/30 * * * *"
261       - gerrit-trigger-tag-created:
262           project: '{project}'
263
264     publishers:
265       - email:
266           recipients: '{receivers}'
267       - email-jenkins-admins-on-failure
268
269 - job-template:
270     name: '{project}-docker-build-push-monitor-{stream}'
271     disabled: '{obj:disabled}'
272     parameters: *parameters
273
274     scm:
275       - git-scm
276
277     builders: *builders
278
279     # trigger only matching the file name
280     triggers:
281       - gerrit:
282           trigger-on:
283             - change-merged-event
284             - comment-added-contains-event:
285                 comment-contains-value: 'remerge'
286           projects:
287             - project-compare-type: 'ANT'
288               project-pattern: '{project}'
289               branches:
290                 - branch-compare-type: 'ANT'
291                   branch-pattern: '**/{branch}'
292               file-paths:
293                 - compare-type: ANT
294                   pattern: 'docker/**'