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