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