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