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