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