opnfv-docker: add barometer
[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 Danube
101       - 'qtip':
102           project: 'qtip'
103           <<: *euphrates
104           <<: *other-receivers
105       - 'yardstick':
106           project: 'yardstick'
107           <<: *euphrates
108           <<: *other-receivers
109       # projects with jobs for euphrates
110       - 'bottlenecks':
111           project: 'bottlenecks'
112           <<: *euphrates
113           <<: *other-receivers
114       - 'storperf-master':
115           project: 'storperf'
116           dockerdir: 'docker/storperf-master'
117           arch_tag: 'x86_64'
118           <<: *euphrates
119           <<: *storperf-receivers
120       - 'storperf-graphite':
121           project: 'storperf'
122           dockerdir: 'docker/storperf-graphite'
123           arch_tag: 'x86_64'
124           <<: *euphrates
125           <<: *storperf-receivers
126       - 'storperf-httpfrontend':
127           project: 'storperf'
128           dockerdir: 'docker/storperf-httpfrontend'
129           arch_tag: 'x86_64'
130           <<: *euphrates
131           <<: *storperf-receivers
132       - 'storperf-reporting':
133           project: 'storperf'
134           dockerdir: 'docker/storperf-reporting'
135           arch_tag: 'x86_64'
136           <<: *euphrates
137           <<: *storperf-receivers
138       - 'storperf-swaggerui':
139           project: 'storperf'
140           dockerdir: 'docker/storperf-swaggerui'
141           arch_tag: 'x86_64'
142           <<: *euphrates
143           <<: *storperf-receivers
144       - 'nfvbench':
145           project: 'nfvbench'
146           <<: *euphrates
147           <<: *other-receivers
148
149     # yamllint enable rule:key-duplicates
150     jobs:
151       - "{dockerrepo}-docker-build-push-{stream}"
152
153 - project:
154
155     name: opnfv-monitor-docker        # projects which only monitor dedicated file or path
156
157     dockerfile: "Dockerfile"
158     dockerdir: "docker"
159     arch_tag: ""
160
161     project:
162       # projects with jobs for master
163       - 'daisy':
164           dockerrepo: 'daisy'
165           <<: *master
166       - 'escalator':
167           dockerrepo: 'escalator'
168           <<: *master
169
170     jobs:
171       - '{project}-docker-build-push-monitor-{stream}'
172
173 ########################
174 # job templates
175 ########################
176 - job-template:
177     name: '{dockerrepo}-docker-build-push-{stream}'
178
179     disabled: '{obj:disabled}'
180
181     parameters: &parameters
182       - project-parameter:
183           project: '{project}'
184           branch: '{branch}'
185       - 'opnfv-build-ubuntu-defaults'
186       - string:
187           name: PUSH_IMAGE
188           default: "true"
189           description: "To enable/disable pushing the image to Dockerhub."
190       - string:
191           name: DOCKER_REPO_NAME
192           default: "opnfv/{dockerrepo}"
193           description: "Dockerhub repo to be pushed to."
194       - string:
195           name: DOCKER_DIR
196           default: "{dockerdir}"
197           description: "Directory containing files needed by the Dockerfile"
198       - string:
199           name: COMMIT_ID
200           default: ""
201           description: "commit id to make a snapshot docker image"
202       - string:
203           name: RELEASE_VERSION
204           default: ""
205           description: "Docker tag to be built, e.g. 5.0.0, opnfv-5.0.0, 5.0.RC1"
206       - string:
207           name: DOCKERFILE
208           default: "{dockerfile}"
209           description: "Dockerfile to use for creating the image."
210       - string:
211           name: ARCH_TAG
212           default: "{arch_tag}"
213           description: "If set, this value will be added to the docker image tag as a prefix"
214
215     properties:
216       - throttle:
217           max-per-node: 1
218           option: 'project'
219
220     scm:
221       - git-scm
222
223     builders: &builders
224       - shell:
225           !include-raw-escape: ./opnfv-docker.sh
226
227     triggers:
228       - pollscm:
229           cron: "*/30 * * * *"
230
231     publishers:
232       - email:
233           recipients: '{receivers}'
234       - email-jenkins-admins-on-failure
235
236 - job-template:
237     name: '{project}-docker-build-push-monitor-{stream}'
238     disabled: '{obj:disabled}'
239     parameters: *parameters
240
241     scm:
242       - git-scm
243
244     builders: *builders
245
246     # trigger only matching the file name
247     triggers:
248       - gerrit:
249           trigger-on:
250             - change-merged-event
251             - comment-added-contains-event:
252                 comment-contains-value: 'remerge'
253           projects:
254             - project-compare-type: 'ANT'
255               project-pattern: '{project}'
256               branches:
257                 - branch-compare-type: 'ANT'
258                   branch-pattern: '**/{branch}'
259               file-paths:
260                 - compare-type: ANT
261                   pattern: 'docker/**'