Merge "Add cronjob to trigger all packer jobs periodically"
[releng/builder.git] / jjb / releng-jobs.yaml
1 - project:
2     name: builder-jobs
3     jobs:
4         - 'builder-verify-jjb'
5         - 'builder-verify-python'
6         - 'builder-merge'
7         - 'builder-weekly'
8         - 'builder-check-poms'
9         - 'builder-verify-packer-{platforms}-{templates}'
10         - 'builder-merge-packer-{platforms}-{templates}'
11
12     platforms:
13         - centos
14         - ubuntu-14.04
15
16     templates:
17         - devstack
18         - docker
19         - gbp
20         - java-builder
21         - mininet
22         - mininet-ovs-2.3
23         - mininet-ovs-2.5
24         - robot
25
26     exclude:
27         - platforms: centos
28           templates: gbp
29         - platforms: centos
30           templates: mininet
31         - platforms: centos
32           templates: mininet-ovs-2.3
33         - platforms: centos
34           templates: mininet-ovs-2.5
35         - platforms: ubuntu-14.04
36           templates: java-builder
37         - platforms: centos
38           templates: gbp
39         - platforms: ubuntu-14.04
40           templates: robot
41
42     project-type: freestyle
43     archive-artifacts: '**/*.log'
44     project: 'releng/builder'
45     build-timeout: '60'
46
47 - job-template:
48     name: builder-verify-jjb
49     node: jjbuilder
50
51     project-type: freestyle
52
53     logrotate:
54         daysToKeep: 14
55
56     parameters:
57         - opendaylight-infra-parameters:
58             project: '{project}'
59             branch: 'master'
60             refspec: 'refs/heads/master'
61             artifacts: '{archive-artifacts}'
62
63     scm:
64         - gerrit-trigger-scm:
65             refspec: '$GERRIT_REFSPEC'
66             choosing-strategy: 'gerrit'
67
68     wrappers:
69         - opendaylight-infra-wrappers:
70             build-timeout: '{build-timeout}'
71
72     triggers:
73         - gerrit:
74             server-name: 'OpenDaylight'
75             trigger-on:
76                 - patchset-created-event:
77                     exclude-drafts: 'true'
78                     exclude-trivial-rebase: 'false'
79                     exclude-no-code-change: 'true'
80                 - draft-published-event
81                 - comment-added-contains-event:
82                     comment-contains-value: 'recheck'
83             projects:
84               - project-compare-type: 'ANT'
85                 project-pattern: 'releng/builder'
86                 branches:
87                   - branch-compare-type: 'ANT'
88                     branch-pattern: '**/master'
89                 file-paths:
90                     - compare-type: ANT
91                       pattern: jjb/**
92                     - compare-type: ANT
93                       pattern: jjb-templates/**
94
95     builders:
96         - shell: |
97             pip freeze
98             jenkins-jobs -l DEBUG test --recursive -o archives/job_output jjb/
99             gzip archives/job_output/*
100
101         - releng-check-unicode
102
103     publishers:
104         - email-notification:
105             email-recipients: '{email-recipients}'
106             email-prefix: '[releng]'
107         - opendaylight-infra-shiplogs:
108             maven-version: 'mvn33'
109
110 - job-template:
111     name: builder-verify-python
112     node: centos7-java-builder-2c-8g
113
114     project-type: freestyle
115
116     logrotate:
117         daysToKeep: 14
118
119     parameters:
120         - opendaylight-infra-parameters:
121             project: '{project}'
122             branch: 'master'
123             refspec: 'refs/heads/master'
124             artifacts: '{archive-artifacts}'
125
126     scm:
127         - gerrit-trigger-scm:
128             refspec: '$GERRIT_REFSPEC'
129             choosing-strategy: 'gerrit'
130
131     wrappers:
132         - opendaylight-infra-wrappers:
133             build-timeout: '{build-timeout}'
134
135     triggers:
136         - gerrit:
137             server-name: 'OpenDaylight'
138             trigger-on:
139                 - patchset-created-event:
140                     exclude-drafts: 'true'
141                     exclude-trivial-rebase: 'false'
142                     exclude-no-code-change: 'true'
143                 - draft-published-event
144                 - comment-added-contains-event:
145                     comment-contains-value: 'recheck'
146             projects:
147               - project-compare-type: 'ANT'
148                 project-pattern: 'releng/builder'
149                 branches:
150                   - branch-compare-type: 'ANT'
151                     branch-pattern: '**/master'
152                 file-paths:
153                     - compare-type: ANT
154                       pattern: scripts/**
155
156
157     builders:
158         - shell: |
159             virtualenv $WORKSPACE/venv
160             source $WORKSPACE/venv/bin/activate
161             pip install --upgrade pip
162             pip freeze
163             pip install flake8
164             flake8 scripts/
165
166     publishers:
167         - email-notification:
168             email-recipients: '{email-recipients}'
169             email-prefix: '[releng]'
170         - opendaylight-infra-shiplogs:
171             maven-version: 'mvn33'
172
173 - job-template:
174     name: 'builder-merge'
175     node: jjbuilder
176
177     # builder-merge job to run JJB update
178     #
179     # This job's purpose is to update all the JJB
180
181     project-type: freestyle
182
183     logrotate:
184         daysToKeep: 14
185
186     parameters:
187         - opendaylight-infra-parameters:
188             project: '{project}'
189             branch: 'master'
190             refspec: 'refs/heads/master'
191             artifacts: '{archive-artifacts}'
192
193     scm:
194         - gerrit-trigger-scm:
195             refspec: ''
196             choosing-strategy: 'default'
197
198     wrappers:
199         - opendaylight-infra-wrappers:
200             build-timeout: '{build-timeout}'
201
202     triggers:
203         - gerrit:
204             server-name: 'OpenDaylight'
205             trigger-on:
206                 - change-merged-event
207                 - comment-added-contains-event:
208                     comment-contains-value: 'remerge'
209             projects:
210               - project-compare-type: 'ANT'
211                 project-pattern: 'releng/builder'
212                 branches:
213                     - branch-compare-type: 'ANT'
214                       branch-pattern: '**/master'
215                 file-paths:
216                     - compare-type: ANT
217                       pattern: jjb/**
218                     - compare-type: ANT
219                       pattern: jjb-templates/**
220
221     builders:
222         - shell: |
223             pip freeze
224             jenkins-jobs --version
225             jenkins-jobs update --recursive --delete-old --workers 4 jjb/
226
227     publishers:
228         - email-notification:
229             email-recipients: '{email-recipients}'
230             email-prefix: '[releng]'
231         - opendaylight-infra-shiplogs:
232             maven-version: 'mvn33'
233
234 - job-template:
235     name: 'builder-weekly'
236     disabled: true
237     node: jjbuilder
238
239     # builder-weekly job to run JJB update weekly
240     #
241     # This job's purpose is to update all the JJB on a weekly (Sunday)
242     # basis with --flush-cache enabled to ensure jobs are okay
243
244     project-type: freestyle
245
246     logrotate:
247         daysToKeep: 14
248
249     parameters:
250         - opendaylight-infra-parameters:
251             project: '{project}'
252             branch: 'master'
253             refspec: 'refs/heads/master'
254             artifacts: '{archive-artifacts}'
255
256     scm:
257         - git-scm:
258             branch: 'master'
259
260     wrappers:
261         - opendaylight-infra-wrappers:
262             build-timeout: '{build-timeout}'
263
264     triggers:
265         - timed: 'H H * * 0'
266
267     builders:
268         - shell: |
269             jenkins-jobs --flush-cache update --recursive jjb/
270
271     publishers:
272         - email-notification:
273             email-recipients: '{email-recipients}'
274             email-prefix: '[releng]'
275         - opendaylight-infra-shiplogs:
276             maven-version: 'mvn33'
277
278 - job-template:
279     name: builder-check-poms
280     node: centos7-java-builder-2c-8g
281
282     project-type: freestyle
283
284     logrotate:
285         daysToKeep: 14
286
287     parameters:
288         - opendaylight-infra-parameters:
289             project: '{project}'
290             branch: 'master'
291             refspec: 'refs/heads/master'
292             artifacts: '{archive-artifacts}'
293
294     wrappers:
295         - opendaylight-infra-wrappers:
296             build-timeout: '{build-timeout}'
297
298     triggers:
299         - timed: 'H H * * 1'
300
301     builders:
302         - shell:
303             !include-raw-escape:
304                 - include-raw-check-poms.sh
305
306     publishers:
307         - email-notification:
308             email-recipients: '{email-recipients}'
309             email-prefix: '[releng]'
310         - opendaylight-infra-shiplogs:
311             maven-version: 'mvn33'
312
313 - job-template:
314     name: 'builder-verify-packer-{platforms}-{templates}'
315     project-type: freestyle
316     node: centos7-java-builder-2c-8g
317     concurrent: true
318
319     logrotate:
320         daysToKeep: 14
321
322     parameters:
323         - opendaylight-infra-parameters:
324             project: '{project}'
325             branch: '{branch}'
326             refspec: 'refs/heads/{branch}'
327             artifacts: '{archive-artifacts}'
328
329     scm:
330         - gerrit-trigger-scm:
331             refspec: '$GERRIT_REFSPEC'
332             choosing-strategy: 'gerrit'
333
334     wrappers:
335         - opendaylight-infra-wrappers:
336             build-timeout: '{build-timeout}'
337
338     triggers:
339         - gerrit:
340             server-name: 'OpenDaylight'
341             trigger-on:
342                 - patchset-created-event:
343                     exclude-drafts: 'true'
344                     exclude-trivial-rebase: 'false'
345                     exclude-no-code-change: 'true'
346                 - draft-published-event
347                 - comment-added-contains-event:
348                     comment-contains-value: 'recheck'
349                 - comment-added-contains-event:
350                     comment-contains-value: 'reverify'
351             projects:
352               - project-compare-type: 'ANT'
353                 project-pattern: '{project}'
354                 branches:
355                   - branch-compare-type: 'ANT'
356                     branch-pattern: '**/{branch}'
357                 file-paths:
358                     - compare-type: ANT
359                       pattern: 'packer/**'
360
361     builders:
362         - packer-validate:
363             platform: '{platforms}'
364             template: '{templates}'
365
366     publishers:
367         - email-notification:
368             email-recipients: '{email-recipients}'
369             email-prefix: '[{project}]'
370         - opendaylight-infra-shiplogs:
371             maven-version: 'mvn33'
372
373 - job-template:
374     name: 'builder-merge-packer-{platforms}-{templates}'
375     project-type: freestyle
376     node: centos7-java-builder-2c-8g
377     concurrent: true
378
379     logrotate:
380         daysToKeep: 14
381
382     parameters:
383         - opendaylight-infra-parameters:
384             project: '{project}'
385             branch: 'master'
386             refspec: 'refs/heads/master'
387             artifacts: '{archive-artifacts}'
388
389     scm:
390         - gerrit-trigger-scm:
391             refspec: ''
392             choosing-strategy: 'default'
393
394     wrappers:
395         - opendaylight-infra-wrappers:
396             build-timeout: '{build-timeout}'
397
398     triggers:
399         - timed: '00 10 1 * *'
400         - gerrit:
401             server-name: 'OpenDaylight'
402             trigger-on:
403                 - change-merged-event
404                 - comment-added-contains-event:
405                     comment-contains-value: 'remerge'
406             projects:
407               - project-compare-type: 'ANT'
408                 project-pattern: 'releng/builder'
409                 branches:
410                     - branch-compare-type: 'ANT'
411                       branch-pattern: '**/master'
412                 file-paths:
413                     - compare-type: ANT
414                       pattern: 'packer/**'
415
416     builders:
417         - packer-validate:
418             platform: '{platforms}'
419             template: '{templates}'
420         - packer-build:
421             platform: '{platforms}'
422             template: '{templates}'
423
424     publishers:
425         - email-notification:
426             email-recipients: '{email-recipients}'
427             email-prefix: '[{project}]'
428         - opendaylight-infra-shiplogs:
429             maven-version: 'mvn33'