Merge "bug-fix: fix compass os_cert issue for bottlenecks euphrates"
[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     functest-receivers: &functest-receivers
23       receivers: >
24           jalausuch@suse.com morgan.richomme@orange.com
25           cedric.ollivier@orange.com feng.xiaowei@zte.com.cn
26           juha.kosonen@nokia.com wangwulin@huawei.com
27     storperf-receivers: &storperf-receivers
28       receivers: >
29           mark.beierl@emc.com
30     other-receivers: &other-receivers
31       receivers: ''
32
33     dockerfile: "Dockerfile"
34     dockerdir: "docker"
35     arch_tag: ""
36
37     # This is the dockerhub repo the image will be pushed to as
38     # 'opnfv/{dockerrepo}. See: DOCKER_REPO_NAME parameter.
39     # 'project' is the OPNFV repo we expect to contain the Dockerfile
40     # yamllint disable rule:key-duplicates
41     dockerrepo:
42       # projects with jobs for master
43       - 'releng-anteater':
44           project: 'releng-anteater'
45           <<: *master
46           <<: *other-receivers
47       - 'bottlenecks':
48           project: 'bottlenecks'
49           <<: *master
50           <<: *other-receivers
51       - 'cperf':
52           project: 'cperf'
53           <<: *master
54           <<: *other-receivers
55       - 'dovetail':
56           project: 'dovetail'
57           <<: *master
58           <<: *other-receivers
59       - 'functest':
60           project: 'functest'
61           <<: *master
62           <<: *functest-receivers
63       - 'nfvbench':
64           project: 'nfvbench'
65           <<: *master
66           <<: *other-receivers
67       - 'qtip':
68           project: 'qtip'
69           <<: *master
70           <<: *other-receivers
71       - 'storperf-master':
72           project: 'storperf'
73           dockerdir: 'docker/storperf-master'
74           arch_tag: 'x86_64'
75           <<: *master
76           <<: *storperf-receivers
77       - 'storperf-graphite':
78           project: 'storperf'
79           dockerdir: 'docker/storperf-graphite'
80           arch_tag: 'x86_64'
81           <<: *master
82           <<: *storperf-receivers
83       - 'storperf-httpfrontend':
84           project: 'storperf'
85           dockerdir: 'docker/storperf-httpfrontend'
86           arch_tag: 'x86_64'
87           <<: *master
88           <<: *storperf-receivers
89       - 'storperf-reporting':
90           project: 'storperf'
91           dockerdir: 'docker/storperf-reporting'
92           arch_tag: 'x86_64'
93           <<: *master
94           <<: *storperf-receivers
95       - 'storperf-swaggerui':
96           project: 'storperf'
97           dockerdir: 'docker/storperf-swaggerui'
98           arch_tag: 'x86_64'
99           <<: *master
100           <<: *storperf-receivers
101       - 'yardstick':
102           project: 'yardstick'
103           <<: *master
104           <<: *other-receivers
105       # projects with jobs for Danube
106       - 'qtip':
107           project: 'qtip'
108           <<: *euphrates
109           <<: *other-receivers
110       - 'yardstick':
111           project: 'yardstick'
112           <<: *euphrates
113           <<: *other-receivers
114       # projects with jobs for euphrates
115       - 'bottlenecks':
116           project: 'bottlenecks'
117           <<: *euphrates
118           <<: *other-receivers
119       - 'functest':
120           project: 'functest'
121           <<: *euphrates
122           <<: *functest-receivers
123       - 'storperf-master':
124           project: 'storperf'
125           dockerdir: 'docker/storperf-master'
126           arch_tag: 'x86_64'
127           <<: *euphrates
128           <<: *storperf-receivers
129       - 'storperf-graphite':
130           project: 'storperf'
131           dockerdir: 'docker/storperf-graphite'
132           arch_tag: 'x86_64'
133           <<: *euphrates
134           <<: *storperf-receivers
135       - 'storperf-httpfrontend':
136           project: 'storperf'
137           dockerdir: 'docker/storperf-httpfrontend'
138           arch_tag: 'x86_64'
139           <<: *euphrates
140           <<: *storperf-receivers
141       - 'storperf-reporting':
142           project: 'storperf'
143           dockerdir: 'docker/storperf-reporting'
144           arch_tag: 'x86_64'
145           <<: *euphrates
146           <<: *storperf-receivers
147       - 'storperf-swaggerui':
148           project: 'storperf'
149           dockerdir: 'docker/storperf-swaggerui'
150           arch_tag: 'x86_64'
151           <<: *euphrates
152           <<: *storperf-receivers
153       - 'nfvbench':
154           project: 'nfvbench'
155           <<: *euphrates
156           <<: *other-receivers
157
158     # yamllint enable rule:key-duplicates
159     jobs:
160       - "{dockerrepo}-docker-build-push-{stream}"
161
162 - project:
163
164     name: opnfv-monitor-docker        # projects which only monitor dedicated file or path
165
166     dockerfile: "Dockerfile"
167     dockerdir: "docker"
168     arch_tag: ""
169
170     project:
171       # projects with jobs for master
172       - 'daisy':
173           dockerrepo: 'daisy'
174           <<: *master
175       - 'escalator':
176           dockerrepo: 'escalator'
177           <<: *master
178
179     jobs:
180       - '{project}-docker-build-push-monitor-{stream}'
181
182 ########################
183 # job templates
184 ########################
185 - job-template:
186     name: '{dockerrepo}-docker-build-push-{stream}'
187
188     disabled: '{obj:disabled}'
189
190     parameters: &parameters
191       - project-parameter:
192           project: '{project}'
193           branch: '{branch}'
194       - 'opnfv-build-ubuntu-defaults'
195       - string:
196           name: PUSH_IMAGE
197           default: "true"
198           description: "To enable/disable pushing the image to Dockerhub."
199       - string:
200           name: DOCKER_REPO_NAME
201           default: "opnfv/{dockerrepo}"
202           description: "Dockerhub repo to be pushed to."
203       - string:
204           name: DOCKER_DIR
205           default: "{dockerdir}"
206           description: "Directory containing files needed by the Dockerfile"
207       - string:
208           name: COMMIT_ID
209           default: ""
210           description: "commit id to make a snapshot docker image"
211       - string:
212           name: RELEASE_VERSION
213           default: ""
214           description: "Docker tag to be built, e.g. 5.0.0, opnfv-5.0.0, 5.0.RC1"
215       - string:
216           name: DOCKERFILE
217           default: "{dockerfile}"
218           description: "Dockerfile to use for creating the image."
219       - string:
220           name: ARCH_TAG
221           default: "{arch_tag}"
222           description: "If set, this value will be added to the docker image tag as a prefix"
223
224     properties:
225       - throttle:
226           max-per-node: 1
227           option: 'project'
228
229     scm:
230       - git-scm
231
232     builders: &builders
233       - shell:
234           !include-raw-escape: ./opnfv-docker.sh
235
236     triggers:
237       - pollscm:
238           cron: "*/30 * * * *"
239
240     publishers:
241       - email:
242           recipients: '{receivers}'
243       - email-jenkins-admins-on-failure
244
245 - job-template:
246     name: '{project}-docker-build-push-monitor-{stream}'
247     disabled: '{obj:disabled}'
248     parameters: *parameters
249
250     scm:
251       - git-scm
252
253     builders: *builders
254
255     # trigger only matching the file name
256     triggers:
257       - gerrit:
258           trigger-on:
259             - change-merged-event
260             - comment-added-contains-event:
261                 comment-contains-value: 'remerge'
262           projects:
263             - project-compare-type: 'ANT'
264               project-pattern: '{project}'
265               branches:
266                 - branch-compare-type: 'ANT'
267                   branch-pattern: '**/{branch}'
268               file-paths:
269                 - compare-type: ANT
270                   pattern: 'docker/**'