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