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