1a27562184e247e3bd6dab23c6e3712a4efcf995
[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':
43           project: 'barometer'
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       - 'nfvbench':
59           project: 'nfvbench'
60           <<: *master
61           <<: *other-receivers
62       - 'qtip':
63           project: 'qtip'
64           <<: *master
65           <<: *other-receivers
66       - 'storperf-master':
67           project: 'storperf'
68           dockerdir: 'docker/storperf-master'
69           arch_tag: 'x86_64'
70           <<: *master
71           <<: *storperf-receivers
72       - 'storperf-graphite':
73           project: 'storperf'
74           dockerdir: 'docker/storperf-graphite'
75           arch_tag: 'x86_64'
76           <<: *master
77           <<: *storperf-receivers
78       - 'storperf-httpfrontend':
79           project: 'storperf'
80           dockerdir: 'docker/storperf-httpfrontend'
81           arch_tag: 'x86_64'
82           <<: *master
83           <<: *storperf-receivers
84       - 'storperf-reporting':
85           project: 'storperf'
86           dockerdir: 'docker/storperf-reporting'
87           arch_tag: 'x86_64'
88           <<: *master
89           <<: *storperf-receivers
90       - 'storperf-swaggerui':
91           project: 'storperf'
92           dockerdir: 'docker/storperf-swaggerui'
93           arch_tag: 'x86_64'
94           <<: *master
95           <<: *storperf-receivers
96       - 'yardstick':
97           project: 'yardstick'
98           <<: *master
99           <<: *other-receivers
100       # projects with jobs for euphrates
101       - 'bottlenecks':
102           project: 'bottlenecks'
103           <<: *euphrates
104           <<: *other-receivers
105       - 'nfvbench':
106           project: 'nfvbench'
107           <<: *euphrates
108           <<: *other-receivers
109       - 'qtip':
110           project: 'qtip'
111           <<: *euphrates
112           <<: *other-receivers
113       - 'storperf-master':
114           project: 'storperf'
115           dockerdir: 'docker/storperf-master'
116           arch_tag: 'x86_64'
117           <<: *euphrates
118           <<: *storperf-receivers
119       - 'storperf-graphite':
120           project: 'storperf'
121           dockerdir: 'docker/storperf-graphite'
122           arch_tag: 'x86_64'
123           <<: *euphrates
124           <<: *storperf-receivers
125       - 'storperf-httpfrontend':
126           project: 'storperf'
127           dockerdir: 'docker/storperf-httpfrontend'
128           arch_tag: 'x86_64'
129           <<: *euphrates
130           <<: *storperf-receivers
131       - 'storperf-reporting':
132           project: 'storperf'
133           dockerdir: 'docker/storperf-reporting'
134           arch_tag: 'x86_64'
135           <<: *euphrates
136           <<: *storperf-receivers
137       - 'storperf-swaggerui':
138           project: 'storperf'
139           dockerdir: 'docker/storperf-swaggerui'
140           arch_tag: 'x86_64'
141           <<: *euphrates
142           <<: *storperf-receivers
143       - 'yardstick':
144           project: 'yardstick'
145           <<: *euphrates
146           <<: *other-receivers
147
148     # yamllint enable rule:key-duplicates
149     jobs:
150       - "{dockerrepo}-docker-build-push-{stream}"
151
152 - project:
153
154     name: opnfv-monitor-docker        # projects which only monitor dedicated file or path
155
156     dockerfile: "Dockerfile"
157     dockerdir: "docker"
158     arch_tag: ""
159
160     project:
161       # projects with jobs for master
162       - 'daisy':
163           dockerrepo: 'daisy'
164           <<: *master
165       - 'escalator':
166           dockerrepo: 'escalator'
167           <<: *master
168
169     jobs:
170       - '{project}-docker-build-push-monitor-{stream}'
171
172 ########################
173 # job templates
174 ########################
175 - job-template:
176     name: '{dockerrepo}-docker-build-push-{stream}'
177
178     disabled: '{obj:disabled}'
179
180     parameters: &parameters
181       - project-parameter:
182           project: '{project}'
183           branch: '{branch}'
184       - 'opnfv-build-ubuntu-defaults'
185       - string:
186           name: PUSH_IMAGE
187           default: "true"
188           description: "To enable/disable pushing the image to Dockerhub."
189       - string:
190           name: DOCKER_REPO_NAME
191           default: "opnfv/{dockerrepo}"
192           description: "Dockerhub repo to be pushed to."
193       - string:
194           name: DOCKER_DIR
195           default: "{dockerdir}"
196           description: "Directory containing files needed by the Dockerfile"
197       - string:
198           name: COMMIT_ID
199           default: ""
200           description: "commit id to make a snapshot docker image"
201       - string:
202           name: RELEASE_VERSION
203           default: ""
204           description: "Docker tag to be built, e.g. 5.0.0, opnfv-5.0.0, 5.0.RC1"
205       - string:
206           name: DOCKERFILE
207           default: "{dockerfile}"
208           description: "Dockerfile to use for creating the image."
209       - string:
210           name: ARCH_TAG
211           default: "{arch_tag}"
212           description: "If set, this value will be added to the docker image tag as a prefix"
213
214     properties:
215       - throttle:
216           max-per-node: 1
217           option: 'project'
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
240     scm:
241       - git-scm
242
243     builders: *builders
244
245     # trigger only matching the file name
246     triggers:
247       - gerrit:
248           trigger-on:
249             - change-merged-event
250             - comment-added-contains-event:
251                 comment-contains-value: 'remerge'
252           projects:
253             - project-compare-type: 'ANT'
254               project-pattern: '{project}'
255               branches:
256                 - branch-compare-type: 'ANT'
257                   branch-pattern: '**/{branch}'
258               file-paths:
259                 - compare-type: ANT
260                   pattern: 'docker/**'