Add ODL custom builder
[releng/builder.git] / jjb / releng-jobs.yaml
1 ---
2 - project:
3     name: builder-jobs
4     jobs:
5       - '{project-name}-ci-jobs'
6       - builder-check-poms
7       - gerrit-tox-verify
8       # OpenStack Related
9       - 'builder-verify-image-protection'
10       - 'builder-cleanup-old-images'
11       - 'builder-delete-orphaned-nodes'
12       - 'builder-delete-stale-nodes'
13       - 'builder-delete-stale-stacks'
14       # Automation for docs and jobs
15       - 'builder-update-image-list'
16
17     # The following values are only specified here
18     # so that code blocks look similar to other projects.
19     project: 'releng/builder'
20     project-name: builder
21     stream: master
22     branch: master
23     build-node: centos7-builder-2c-8g
24     archive-artifacts: '**/*.log'
25     build-timeout: 30
26
27 - project:
28     name: packer-jobs
29     # packer jobs templates are defined in global-jjb
30     jobs:
31       - '{project-name}-packer-jobs'
32     project: 'releng/builder'
33     project-name: builder
34     branch: master
35     archive-artifacts: '**/*.log'
36     build-node: centos7-builder-2c-8g
37
38     platforms:
39       - centos
40       - ubuntu-14.04
41       - ubuntu-16.04
42
43     templates:
44       - devstack
45       - devstack-pre-pip-newton:
46           build-timeout: 75
47       - devstack-pre-pip-ocata:
48           build-timeout: 60
49       - devstack-pre-pip-pike:
50           build-timeout: 75
51       - gbp
52       - mininet
53       - mininet-ovs-2.5:
54           build-timeout: 60
55       - mininet-ovs-2.6:
56           build-timeout: 75
57       - robot
58
59     exclude:
60       - platforms: centos
61         templates: gbp
62       - platforms: centos
63         templates: mininet
64       - platforms: centos
65         templates: mininet-ovs-2.5
66       - platforms: centos
67         templates: mininet-ovs-2.6
68       - platforms: ubuntu-14.04
69         templates: robot
70       - platforms: ubuntu-14.04
71         templates: devstack-pre-pip-newton
72       - platforms: ubuntu-14.04
73         templates: devstack-pre-pip-ocata
74       - platforms: ubuntu-14.04
75         templates: devstack-pre-pip-pike
76       - platforms: ubuntu-14.04
77         templates: devstack
78       - platforms: ubuntu-14.04
79         templates: mininet-ovs-2.5
80       - platforms: ubuntu-14.04
81         templates: mininet-ovs-2.6
82       - platforms: ubuntu-16.04
83         templates: robot
84       - platforms: ubuntu-16.04
85         templates: devstack-pre-pip-newton
86       - platforms: ubuntu-16.04
87         templates: devstack-pre-pip-ocata
88       - platforms: ubuntu-16.04
89         templates: devstack-pre-pip-pike
90       - platforms: ubuntu-16.04
91         templates: devstack
92       - platforms: ubuntu-16.04
93         templates: mininet
94       - platforms: ubuntu-16.04
95         templates: baseline
96       - platforms: centos
97         templates: baseline
98
99 - job-template:
100     name: builder-check-poms
101     node: centos7-builder-2c-8g
102
103     project-type: freestyle
104
105     properties:
106       - opendaylight-infra-properties:
107           build-days-to-keep: 14
108
109     parameters:
110       - opendaylight-infra-parameters:
111           os-cloud: '{os-cloud}'
112           project: '{project}'
113           branch: '{branch}'
114           refspec: 'refs/heads/{branch}'
115           artifacts: '{archive-artifacts}'
116
117     wrappers:
118       - opendaylight-infra-wrappers:
119           build-timeout: '{build-timeout}'
120
121     triggers:
122       - timed: 'H H * * 1'
123
124     builders:
125       - shell: !include-raw-escape: check-poms.sh
126
127     publishers:
128       - email-notification:
129           email-recipients: '{email-recipients}'
130           email-prefix: '[releng]'
131       - lf-infra-publish
132
133
134 - job-template:
135     name: 'builder-verify-image-protection'
136     project-type: freestyle
137     node: centos7-builder-2c-8g
138
139     properties:
140       - opendaylight-infra-properties:
141           build-days-to-keep: 7
142
143     parameters:
144       - opendaylight-infra-parameters:
145           os-cloud: '{os-cloud}'
146           project: '{project}'
147           branch: '{branch}'
148           refspec: 'refs/heads/{branch}'
149           artifacts: '{archive-artifacts}'
150
151     scm:
152       - git-scm:
153           branch: '{branch}'
154
155     wrappers:
156       - opendaylight-infra-wrappers:
157           build-timeout: '{build-timeout}'
158       # Listed after to override openstack-infra-wrappers clouds.yaml definition
159       - config-file-provider:
160           files:
161             - file-id: clouds-yaml
162               target: '$HOME/.config/openstack/clouds.yaml'
163
164     triggers:
165       - timed: '@daily'
166
167     builders:
168       - shell: !include-raw-escape:
169           - opendaylight-infra-check-image-protection.sh
170
171     publishers:
172       - email-notification:
173           email-recipients: '{email-recipients}'
174           email-prefix: '[releng]'
175       - lf-infra-publish
176
177
178 - job-template:
179     name: 'builder-cleanup-old-images'
180     project-type: freestyle
181     node: centos7-builder-2c-8g
182
183     properties:
184       - opendaylight-infra-properties:
185           build-days-to-keep: 7
186
187     parameters:
188       - opendaylight-infra-parameters:
189           os-cloud: '{os-cloud}'
190           project: '{project}'
191           branch: '{branch}'
192           refspec: 'refs/heads/{branch}'
193           artifacts: '{archive-artifacts}'
194
195     scm:
196       - git-scm:
197           branch: '{branch}'
198
199     wrappers:
200       - opendaylight-infra-wrappers:
201           build-timeout: '{build-timeout}'
202       # Listed after to override openstack-infra-wrappers clouds.yaml definition
203       - config-file-provider:
204           files:
205             - file-id: clouds-yaml
206               target: '$HOME/.config/openstack/clouds.yaml'
207
208     triggers:
209       # Cleanup images on a weekly schedule
210       - timed: '@weekly'
211
212     builders:
213       - shell: !include-raw-escape:
214           - global-jjb/shell/lftools-install.sh
215           - opendaylight-infra-cleanup-old-images.sh
216
217     publishers:
218       - email-notification:
219           email-recipients: '{email-recipients}'
220           email-prefix: '[releng]'
221       - lf-infra-publish
222
223
224 - job-template:
225     name: builder-delete-orphaned-nodes
226     project-type: freestyle
227     node: centos7-builder-2c-8g
228
229     properties:
230       - opendaylight-infra-properties:
231           build-days-to-keep: 7
232
233     parameters:
234       - opendaylight-infra-parameters:
235           os-cloud: '{os-cloud}'
236           project: '{project}'
237           branch: '{branch}'
238           refspec: 'refs/heads/{branch}'
239           artifacts: '{archive-artifacts}'
240       - string:
241           name: JENKINS_URLS
242           default: 'https://jenkins.opendaylight.org/releng https://jenkins.opendaylight.org/sandbox'
243           description: 'Space separated list of Jenkins URLs to check for active builds'
244
245     wrappers:
246       - opendaylight-infra-wrappers:
247           build-timeout: '{build-timeout}'
248
249     triggers:
250       # Attempt to clear up servers every 30 mins in case we have orphaned servers
251       - timed: '0,30 * * * *'
252
253     builders:
254       - shell: !include-raw-escape: opendaylight-infra-cleanup-orphaned-nodes.sh
255
256     publishers:
257       - email-notification:
258           email-recipients: '{email-recipients}'
259           email-prefix: '[releng]'
260       - lf-infra-publish
261
262
263 - job-template:
264     name: 'builder-delete-stale-nodes'
265     project-type: freestyle
266     node: centos7-builder-2c-8g
267
268     properties:
269       - opendaylight-infra-properties:
270           build-days-to-keep: 7
271
272     parameters:
273       - opendaylight-infra-parameters:
274           os-cloud: '{os-cloud}'
275           project: '{project}'
276           branch: '{branch}'
277           refspec: 'refs/heads/{branch}'
278           artifacts: '{archive-artifacts}'
279
280     wrappers:
281       - opendaylight-infra-wrappers:
282           build-timeout: '{build-timeout}'
283
284     triggers:
285       # Attempt to clear up stacks every 30 mins in case we have orphaned stacks
286       - timed: '0,30 * * * *'
287
288     builders:
289       - shell: !include-raw-escape:
290           - global-jjb/shell/lftools-install.sh
291           - opendaylight-infra-cleanup-stale-nodes.sh
292
293     publishers:
294       - email-notification:
295           email-recipients: '{email-recipients}'
296           email-prefix: '[releng]'
297       - lf-infra-publish
298
299
300 - job-template:
301     name: 'builder-delete-stale-stacks'
302     project-type: freestyle
303     node: centos7-builder-2c-8g
304
305     properties:
306       - opendaylight-infra-properties:
307           build-days-to-keep: 7
308
309     parameters:
310       - opendaylight-infra-parameters:
311           os-cloud: '{os-cloud}'
312           project: '{project}'
313           branch: '{branch}'
314           refspec: 'refs/heads/{branch}'
315           artifacts: '{archive-artifacts}'
316       - string:
317           name: JENKINS_URLS
318           default: 'https://jenkins.opendaylight.org/releng https://jenkins.opendaylight.org/sandbox'
319           description: 'Space separated list of Jenkins URLs to check for active builds'
320
321     wrappers:
322       - opendaylight-infra-wrappers:
323           build-timeout: '{build-timeout}'
324
325     triggers:
326       # Attempt to clear up stacks every 30 mins in case we have orphaned stacks
327       - timed: '0,30 * * * *'
328
329     builders:
330       - shell: !include-raw-escape: opendaylight-infra-cleanup-stale-stacks.sh
331
332     publishers:
333       - email-notification:
334           email-recipients: '{email-recipients}'
335           email-prefix: '[releng]'
336       - lf-infra-publish
337
338
339 - job-template:
340     name: 'builder-update-image-list'
341     project-type: freestyle
342     node: centos7-builder-2c-8g
343
344     properties:
345       - opendaylight-infra-properties:
346           build-days-to-keep: 7
347
348     parameters:
349       - opendaylight-infra-parameters:
350           os-cloud: vex
351           project: '{project}'
352           branch: '{branch}'
353           refspec: 'refs/heads/{branch}'
354           artifacts: '{archive-artifacts}'
355
356     scm:
357       - git-scm:
358           branch: '{branch}'
359
360     wrappers:
361       - opendaylight-infra-wrappers:
362           build-timeout: '{build-timeout}'
363       # Listed after to override openstack-infra-wrappers clouds.yaml definition
364       - config-file-provider:
365           files:
366             - file-id: clouds-yaml
367               target: '$HOME/.config/openstack/clouds.yaml'
368
369     triggers:
370       # Update image list every Monday to Friday at 11:00 UTC
371       - timed: '0 11 * * 1-5'
372
373     builders:
374       - shell: !include-raw-escape: opendaylight-infra-update-image-list.sh
375       - opendaylight-infra-push-gerrit-patch:
376           project: '{project}'
377           gerrit-topic: 'releng-update-cloud-image-list'
378           gerrit-commit-message: 'Update cloud image list docs'
379
380     publishers:
381       - email-notification:
382           email-recipients: '{email-recipients}'
383           email-prefix: '[releng]'
384       - lf-infra-publish