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