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