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