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