Functest: Introduce building image job for euphrates
[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         - 'bottlenecks':
105             project: 'bottlenecks'
106             <<: *danube
107             <<: *other-receivers
108         - 'qtip':
109             project: 'qtip'
110             <<: *euphrates
111             <<: *other-receivers
112         - 'yardstick':
113             project: 'yardstick'
114             <<: *danube
115             <<: *other-receivers
116         # projects with jobs for euphrates
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
152     jobs:
153         - "{dockerrepo}-docker-build-push-{stream}"
154
155
156 - project:
157
158     name: opnfv-monitor-docker        # projects which only monitor dedicated file or path
159
160     dockerfile: "Dockerfile"
161     dockerdir: "docker"
162     arch_tag: ""
163
164     project:
165         # projects with jobs for master
166         - 'daisy':
167             dockerrepo: 'daisy'
168             <<: *master
169         - 'escalator':
170             dockerrepo: 'escalator'
171             <<: *master
172
173     jobs:
174         - '{project}-docker-build-push-monitor-{stream}'
175
176 ########################
177 # job templates
178 ########################
179 - job-template:
180     name: '{dockerrepo}-docker-build-push-{stream}'
181
182     disabled: '{obj:disabled}'
183
184     parameters: &parameters
185         - project-parameter:
186             project: '{project}'
187             branch: '{branch}'
188         - 'opnfv-build-ubuntu-defaults'
189         - string:
190             name: PUSH_IMAGE
191             default: "true"
192             description: "To enable/disable pushing the image to Dockerhub."
193         - string:
194             name: DOCKER_REPO_NAME
195             default: "opnfv/{dockerrepo}"
196             description: "Dockerhub repo to be pushed to."
197         - string:
198             name: DOCKER_DIR
199             default: "{dockerdir}"
200             description: "Directory containing files needed by the Dockerfile"
201         - string:
202             name: COMMIT_ID
203             default: ""
204             description: "commit id to make a snapshot docker image"
205         - string:
206             name: RELEASE_VERSION
207             default: ""
208             description: "Release version, e.g. 1.0, 2.0, 3.0"
209         - string:
210             name: DOCKERFILE
211             default: "{dockerfile}"
212             description: "Dockerfile to use for creating the image."
213         - string:
214             name: ARCH_TAG
215             default: "{arch_tag}"
216             description: "If set, this value will be added to the docker image tag as a prefix"
217
218     scm:
219         - git-scm
220
221     builders: &builders
222         - shell:
223             !include-raw-escape: ./opnfv-docker.sh
224
225     triggers:
226         - pollscm:
227             cron: "*/30 * * * *"
228
229     publishers:
230         - email:
231             recipients: '{receivers}'
232         - email-jenkins-admins-on-failure
233
234 - job-template:
235     name: '{project}-docker-build-push-monitor-{stream}'
236     disabled: '{obj:disabled}'
237     parameters: *parameters
238     scm:
239         - git-scm
240     builders: *builders
241
242     # trigger only matching the file name
243     triggers:
244         - gerrit:
245             trigger-on:
246                 - change-merged-event
247                 - comment-added-contains-event:
248                     comment-contains-value: 'remerge'
249             projects:
250               - project-compare-type: 'ANT'
251                 project-pattern: '{project}'
252                 branches:
253                     - branch-compare-type: 'ANT'
254                       branch-pattern: '**/{branch}'
255                 file-paths:
256                   - compare-type: ANT
257                     pattern: 'docker/**'
258