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