Merge "Add jq to baseline"
[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         - 'builder-verify-packer-{platforms}-{templates}'
10         - 'builder-merge-packer-{platforms}-{templates}'
11
12     platforms:
13         - centos
14         - ubuntu-14.04
15
16     templates:
17         - devstack
18         - devstack-pre-pip-mitaka
19         - devstack-pre-pip-newton
20         - docker
21         - gbp
22         - java-builder
23         - mininet
24         - mininet-ovs-2.3
25         - mininet-ovs-2.5
26         - robot
27
28     exclude:
29         - platforms: centos
30           templates: gbp
31         - platforms: centos
32           templates: mininet
33         - platforms: centos
34           templates: mininet-ovs-2.3
35         - platforms: centos
36           templates: mininet-ovs-2.5
37         - platforms: ubuntu-14.04
38           templates: java-builder
39         - platforms: ubuntu-14.04
40           templates: robot
41         - platforms: ubuntu-14.04
42           templates: devstack-pre-pip-mitaka
43         - platforms: ubuntu-14.04
44           templates: devstack-pre-pip-newton
45
46     project-type: freestyle
47     archive-artifacts: '**/*.log'
48     build-timeout: '60'
49     # The following two values are only specified here
50     # so that code blocks look similar to other projects.
51     project: 'releng/builder'
52     branch: 'master'
53
54 - job-template:
55     name: builder-verify-jjb
56     node: jjbuilder
57
58     project-type: freestyle
59
60     properties:
61         - opendaylight-infra-properties:
62             build-days-to-keep: 14
63
64     parameters:
65         - opendaylight-infra-parameters:
66             project: '{project}'
67             branch: '{branch}'
68             refspec: 'refs/heads/{branch}'
69             artifacts: '{archive-artifacts}'
70
71     scm:
72         - gerrit-trigger-scm:
73             refspec: '$GERRIT_REFSPEC'
74             choosing-strategy: 'gerrit'
75
76     wrappers:
77         - opendaylight-infra-wrappers:
78             build-timeout: '{build-timeout}'
79
80     triggers:
81         - gerrit-trigger-patch-submitted:
82             server: '{server-name}'
83             project: '{project}'
84             branch: '{branch}'
85             files: 'jjb/**'
86
87     builders:
88         - shell: |
89             pip freeze
90             jenkins-jobs -l DEBUG test --recursive -o archives/job_output jjb/
91             gzip archives/job_output/*
92
93         - releng-check-unicode
94         - verify-gpg-signature
95
96     publishers:
97         - email-notification:
98             email-recipients: '{email-recipients}'
99             email-prefix: '[releng]'
100         - opendaylight-infra-shiplogs:
101             maven-version: 'mvn33'
102
103 # FIXME: Migrate to {project-name}-verify-python-{stream} or delete this entirely,
104 #        as there are zero python files (aside docs/conf.py) in releng/builder.
105 - job-template:
106     name: builder-verify-python
107     node: centos7-java-builder-2c-8g
108
109     project-type: freestyle
110
111     properties:
112         - opendaylight-infra-properties:
113             build-days-to-keep: 14
114
115     parameters:
116         - opendaylight-infra-parameters:
117             project: '{project}'
118             branch: '{branch}'
119             refspec: 'refs/heads/{branch}'
120             artifacts: '{archive-artifacts}'
121
122     scm:
123         - gerrit-trigger-scm:
124             refspec: '$GERRIT_REFSPEC'
125             choosing-strategy: 'gerrit'
126
127     wrappers:
128         - opendaylight-infra-wrappers:
129             build-timeout: '{build-timeout}'
130
131     triggers:
132         - gerrit-trigger-patch-submitted:
133             server: '{server-name}'
134             project: '{project}'
135             branch: '{branch}'
136             files: 'scripts/**'
137
138     builders:
139         - verify-gpg-signature
140         - shell: |
141             virtualenv $WORKSPACE/venv
142             source $WORKSPACE/venv/bin/activate
143             pip install --upgrade pip
144             pip freeze
145             pip install flake8
146             flake8 scripts/
147
148     publishers:
149         - email-notification:
150             email-recipients: '{email-recipients}'
151             email-prefix: '[releng]'
152         - opendaylight-infra-shiplogs:
153             maven-version: 'mvn33'
154
155 - job-template:
156     name: 'builder-merge'
157     node: jjbuilder
158
159     # builder-merge job to run JJB update
160     #
161     # This job's purpose is to update all the JJB
162
163     project-type: freestyle
164
165     properties:
166         - opendaylight-infra-properties:
167             build-days-to-keep: 14
168
169     parameters:
170         - opendaylight-infra-parameters:
171             project: '{project}'
172             branch: '{branch}'
173             refspec: 'refs/heads/{branch}'
174             artifacts: '{archive-artifacts}'
175
176     scm:
177         - gerrit-trigger-scm:
178             refspec: ''
179             choosing-strategy: 'default'
180
181     wrappers:
182         - opendaylight-infra-wrappers:
183             build-timeout: '{build-timeout}'
184
185     triggers:
186         - gerrit:
187             server-name: '{server-name}'
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: '**/{branch}'
198                 file-paths:
199                     - compare-type: ANT
200                       pattern: jjb/**
201
202     builders:
203         - shell: |
204             pip freeze
205             jenkins-jobs --version
206             jenkins-jobs update --recursive --delete-old --workers 4 jjb/
207
208     publishers:
209         - email-notification:
210             email-recipients: '{email-recipients}'
211             email-prefix: '[releng]'
212         - opendaylight-infra-shiplogs:
213             maven-version: 'mvn33'
214
215 - job-template:
216     name: 'builder-weekly'
217     disabled: false
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     properties:
228         - opendaylight-infra-properties:
229             build-days-to-keep: 14
230
231     parameters:
232         - opendaylight-infra-parameters:
233             project: '{project}'
234             branch: '{branch}'
235             refspec: 'refs/heads/{branch}'
236             artifacts: '{archive-artifacts}'
237
238     scm:
239         - git-scm:
240             branch: '{branch}'
241
242     wrappers:
243         - opendaylight-infra-wrappers:
244             build-timeout: '{build-timeout}'
245
246     triggers:
247         - timed: 'H H * * 0'
248
249     builders:
250         - shell: |
251             jenkins-jobs --flush-cache update --recursive --workers 4 jjb/
252
253     publishers:
254         - email-notification:
255             email-recipients: '{email-recipients}'
256             email-prefix: '[releng]'
257         - opendaylight-infra-shiplogs:
258             maven-version: 'mvn33'
259
260 - job-template:
261     name: builder-check-poms
262     node: centos7-java-builder-2c-8g
263
264     project-type: freestyle
265
266     properties:
267         - opendaylight-infra-properties:
268             build-days-to-keep: 14
269
270     parameters:
271         - opendaylight-infra-parameters:
272             project: '{project}'
273             branch: '{branch}'
274             refspec: 'refs/heads/{branch}'
275             artifacts: '{archive-artifacts}'
276
277     wrappers:
278         - opendaylight-infra-wrappers:
279             build-timeout: '{build-timeout}'
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-recipients: '{email-recipients}'
292             email-prefix: '[releng]'
293         - opendaylight-infra-shiplogs:
294             maven-version: 'mvn33'
295
296 - job-template:
297     name: 'builder-verify-packer-{platforms}-{templates}'
298     project-type: freestyle
299     node: centos7-java-builder-2c-8g
300     concurrent: true
301
302     properties:
303         - opendaylight-infra-properties:
304             build-days-to-keep: 14
305
306     parameters:
307         - opendaylight-infra-parameters:
308             project: '{project}'
309             branch: '{branch}'
310             refspec: 'refs/heads/{branch}'
311             artifacts: '{archive-artifacts}'
312
313     scm:
314         - gerrit-trigger-scm:
315             refspec: '$GERRIT_REFSPEC'
316             choosing-strategy: 'gerrit'
317
318     wrappers:
319         - opendaylight-infra-wrappers:
320             build-timeout: '{build-timeout}'
321
322     triggers:
323         - gerrit-trigger-patch-submitted:
324             server: '{server-name}'
325             project: '{project}'
326             branch: '{branch}'
327             files: 'packer/**'
328
329     builders:
330         - packer-validate:
331             platform: '{platforms}'
332             template: '{templates}'
333
334     publishers:
335         - email-notification:
336             email-recipients: '{email-recipients}'
337             email-prefix: '[{project}]'
338         - opendaylight-infra-shiplogs:
339             maven-version: 'mvn33'
340
341 - job-template:
342     name: 'builder-merge-packer-{platforms}-{templates}'
343     project-type: freestyle
344     node: centos7-java-builder-2c-8g
345     concurrent: true
346
347     properties:
348         - opendaylight-infra-properties:
349             build-days-to-keep: 14
350
351     parameters:
352         - opendaylight-infra-parameters:
353             project: '{project}'
354             branch: '{branch}'
355             refspec: 'refs/heads/{branch}'
356             artifacts: '{archive-artifacts}'
357
358     scm:
359         - gerrit-trigger-scm:
360             refspec: ''
361             choosing-strategy: 'default'
362
363     wrappers:
364         - opendaylight-infra-wrappers:
365             build-timeout: '{build-timeout}'
366
367     triggers:
368         - timed: '00 10 1 * *'
369         - gerrit:
370             server-name: '{server-name}'
371             trigger-on:
372                 - change-merged-event
373                 - comment-added-contains-event:
374                     comment-contains-value: 'remerge'
375             projects:
376               - project-compare-type: 'ANT'
377                 project-pattern: 'releng/builder'
378                 branches:
379                     - branch-compare-type: 'ANT'
380                       branch-pattern: '**/{branch}'
381                 file-paths:
382                     - compare-type: ANT
383                       pattern: 'packer/**'
384
385     builders:
386         - packer-validate:
387             platform: '{platforms}'
388             template: '{templates}'
389         - packer-build:
390             platform: '{platforms}'
391             template: '{templates}'
392
393     publishers:
394         - email-notification:
395             email-recipients: '{email-recipients}'
396             email-prefix: '[{project}]'
397         - opendaylight-infra-shiplogs:
398             maven-version: 'mvn33'