Add carbon .deb for `packaging-test-deb` job
[releng/builder.git] / jjb / releng-jobs.yaml
1 ---
2 - project:
3     name: builder-jobs
4     jobs:
5       - '{project-name}-ci-jobs'
6       - '{project-name}-verify-tox-{stream}'
7       - 'builder-check-poms'
8       - 'builder-verify-packer'
9       - 'builder-merge-packer-{platforms}-{templates}'
10       # OpenStack Related
11       - 'builder-cleanup-old-images'
12       - 'builder-delete-stale-stacks'
13       # Automation for docs and jobs
14       - 'builder-update-csit-tests'
15       - 'builder-update-image-list'
16
17     platforms:
18       - centos
19       - ubuntu-14.04
20       - ubuntu-16.04
21
22     templates:
23       - devstack
24       - devstack-pre-pip-newton
25       - docker
26       - gbp
27       - java-builder
28       - mininet
29       - mininet-ovs-2.5
30       - robot
31
32     exclude:
33       - platforms: centos
34         templates: gbp
35       - platforms: centos
36         templates: mininet
37       - platforms: centos
38         templates: mininet-ovs-2.5
39       - platforms: ubuntu-14.04
40         templates: java-builder
41       - platforms: ubuntu-14.04
42         templates: robot
43       - platforms: ubuntu-14.04
44         templates: devstack-pre-pip-newton
45       - platforms: ubuntu-14.04
46         templates: devstack
47       - platforms: ubuntu-14.04
48         templates: docker
49       - platforms: ubuntu-14.04
50         templates: mininet-ovs-2.5
51       - platforms: ubuntu-16.04
52         templates: java-builder
53       - platforms: ubuntu-16.04
54         templates: robot
55       - platforms: ubuntu-16.04
56         templates: devstack-pre-pip-newton
57       - platforms: ubuntu-16.04
58         templates: devstack
59       - platforms: ubuntu-16.04
60         templates: docker
61       - platforms: ubuntu-16.04
62         templates: mininet
63       - platforms: ubuntu-16.04
64         templates: gbp
65
66
67     project-type: freestyle
68     archive-artifacts: '**/*.log'
69     build-timeout: '60'
70
71     # The following values are only specified here
72     # so that code blocks look similar to other projects.
73     project: 'releng/builder'
74     project-name: builder
75     stream: master
76     branch: master
77     build-node: centos7-java-builder-2c-4g
78
79 - job-template:
80     name: builder-check-poms
81     node: centos7-java-builder-2c-4g
82
83     project-type: freestyle
84
85     properties:
86       - opendaylight-infra-properties:
87           build-days-to-keep: 14
88
89     parameters:
90       - opendaylight-infra-parameters:
91           os-cloud: '{os-cloud}'
92           project: '{project}'
93           branch: '{branch}'
94           refspec: 'refs/heads/{branch}'
95           artifacts: '{archive-artifacts}'
96
97     wrappers:
98       - opendaylight-infra-wrappers:
99           build-timeout: '{build-timeout}'
100
101     triggers:
102       - timed: 'H H * * 1'
103
104     builders:
105       - shell: !include-raw-escape: include-raw-check-poms.sh
106
107     publishers:
108       - email-notification:
109           email-recipients: '{email-recipients}'
110           email-prefix: '[releng]'
111       - opendaylight-infra-shiplogs:
112           maven-version: 'mvn33'
113
114 - job-template:
115     name: 'builder-delete-stale-stacks'
116     project-type: freestyle
117     node: centos7-java-builder-2c-4g
118
119     properties:
120       - opendaylight-infra-properties:
121           build-days-to-keep: 7
122
123     parameters:
124       - opendaylight-infra-parameters:
125           os-cloud: '{os-cloud}'
126           project: '{project}'
127           branch: '{branch}'
128           refspec: 'refs/heads/{branch}'
129           artifacts: '{archive-artifacts}'
130
131     wrappers:
132       - opendaylight-infra-wrappers:
133           build-timeout: '{build-timeout}'
134
135     triggers:
136       # Attempt to clear up stacks every 30 mins in case we have orphaned stacks
137       - timed: '0,30 * * * *'
138
139     builders:
140       - shell: !include-raw-escape: opendaylight-infra-cleanup-stale-stacks.sh
141
142     publishers:
143       - email-notification:
144           email-recipients: '{email-recipients}'
145           email-prefix: '[releng]'
146       - opendaylight-infra-shiplogs:
147           maven-version: 'mvn33'
148
149 - job-template:
150     name: 'builder-cleanup-old-images'
151     project-type: freestyle
152     node: centos7-java-builder-2c-4g
153
154     properties:
155       - opendaylight-infra-properties:
156           build-days-to-keep: 7
157
158     parameters:
159       - opendaylight-infra-parameters:
160           os-cloud: '{os-cloud}'
161           project: '{project}'
162           branch: '{branch}'
163           refspec: 'refs/heads/{branch}'
164           artifacts: '{archive-artifacts}'
165
166     scm:
167       - git-scm:
168           branch: '{branch}'
169
170     wrappers:
171       - opendaylight-infra-wrappers:
172           build-timeout: '{build-timeout}'
173       # Listed after to override openstack-infra-wrappers clouds.yaml definition
174       - config-file-provider:
175           files:
176             - file-id: opendaylight-private-clouds-yaml
177               target: '$HOME/.config/openstack/clouds.yaml'
178
179     triggers:
180       # Cleanup images on a weekly schedule
181       - timed: '@weekly'
182
183     builders:
184       - shell: !include-raw-escape:
185           - global-jjb/shell/lftools-install.sh
186           - opendaylight-infra-cleanup-old-images.sh
187
188     publishers:
189       - email-notification:
190           email-recipients: '{email-recipients}'
191           email-prefix: '[releng]'
192       - opendaylight-infra-shiplogs:
193           maven-version: 'mvn33'
194
195 - job-template:
196     name: 'builder-update-image-list'
197     project-type: freestyle
198     node: centos7-java-builder-2c-4g
199
200     properties:
201       - opendaylight-infra-properties:
202           build-days-to-keep: 7
203
204     parameters:
205       - opendaylight-infra-parameters:
206           os-cloud: odlpriv
207           project: '{project}'
208           branch: '{branch}'
209           refspec: 'refs/heads/{branch}'
210           artifacts: '{archive-artifacts}'
211
212     scm:
213       - git-scm:
214           branch: '{branch}'
215
216     wrappers:
217       - opendaylight-infra-wrappers:
218           build-timeout: '{build-timeout}'
219       # Listed after to override openstack-infra-wrappers clouds.yaml definition
220       - config-file-provider:
221           files:
222             - file-id: opendaylight-private-clouds-yaml
223               target: '$HOME/.config/openstack/clouds.yaml'
224
225     triggers:
226       # Update image list every Monday to Friday at 11:00 UTC
227       - timed: '0 11 * * 1-5'
228
229     builders:
230       - shell: !include-raw-escape: opendaylight-infra-update-image-list.sh
231       - opendaylight-infra-push-gerrit-patch:
232           project: '{project}'
233           gerrit-topic: 'releng-update-cloud-image-list'
234           gerrit-commit-message: 'Update cloud image list docs'
235
236     publishers:
237       - email-notification:
238           email-recipients: '{email-recipients}'
239           email-prefix: '[releng]'
240       - opendaylight-infra-shiplogs:
241           maven-version: 'mvn33'
242
243 - job-template:
244     name: 'builder-verify-packer'
245     project-type: freestyle
246     node: centos7-java-builder-2c-4g
247     concurrent: true
248
249     properties:
250       - opendaylight-infra-properties:
251           build-days-to-keep: 14
252
253     parameters:
254       - opendaylight-infra-parameters:
255           os-cloud: '{os-cloud}'
256           project: '{project}'
257           branch: '{branch}'
258           refspec: 'refs/heads/{branch}'
259           artifacts: '{archive-artifacts}'
260
261     scm:
262       - gerrit-trigger-scm:
263           refspec: '$GERRIT_REFSPEC'
264           choosing-strategy: 'gerrit'
265
266     wrappers:
267       - opendaylight-infra-wrappers:
268           build-timeout: '{build-timeout}'
269
270     triggers:
271       - gerrit-trigger-patch-submitted:
272           server: '{server-name}'
273           project: '{project}'
274           branch: '{branch}'
275           files: 'packer/**'
276
277     builders:
278       - packer-validate:
279
280     publishers:
281       - email-notification:
282           email-recipients: '{email-recipients}'
283           email-prefix: '[{project}]'
284       - opendaylight-infra-shiplogs:
285           maven-version: 'mvn33'
286
287 - job-template:
288     name: 'builder-merge-packer-{platforms}-{templates}'
289     project-type: freestyle
290     node: centos7-java-builder-2c-4g
291
292     properties:
293       - opendaylight-infra-properties:
294           build-days-to-keep: 14
295
296     parameters:
297       - opendaylight-infra-parameters:
298           os-cloud: '{os-cloud}'
299           project: '{project}'
300           branch: '{branch}'
301           refspec: 'refs/heads/{branch}'
302           artifacts: '{archive-artifacts}'
303
304     scm:
305       - gerrit-trigger-scm:
306           refspec: '$GERRIT_REFSPEC'
307           branches:
308             - '$GERRIT_BRANCH'
309           choosing-strategy: 'default'
310
311     wrappers:
312       - opendaylight-infra-wrappers:
313           build-timeout: '{build-timeout}'
314
315     triggers:
316       - timed: '00 10 1 * *'
317       - gerrit:
318           server-name: '{server-name}'
319           trigger-on:
320             - change-merged-event
321             - comment-added-contains-event:
322                 comment-contains-value: 'remerge'
323           projects:
324             - project-compare-type: 'ANT'
325               project-pattern: 'releng/builder'
326               branches:
327                 - branch-compare-type: 'ANT'
328                   branch-pattern: '**/{branch}'
329               file-paths:
330                 - compare-type: ANT
331                   pattern: 'packer/vars/{platforms}.json'
332                 - compare-type: ANT
333                   pattern: 'packer/templates/{templates}.json'
334                 - compare-type: ANT
335                   pattern: 'packer/provision/{templates}.sh'
336                 - compare-type: ANT
337                   pattern: 'packer/provision/system_reseal.sh'
338                 - compare-type: ANT
339                   pattern: 'packer/provision/rh-user_data.sh'
340                 - compare-type: ANT
341                   pattern: 'packer/provision/devstack-pre-pip.sh'
342                 - compare-type: ANT
343                   pattern: 'packer/provision/baseline.sh'
344
345     builders:
346       - packer-validate:
347       - packer-build:
348           platform: '{platforms}'
349           template: '{templates}'
350
351     publishers:
352       - email-notification:
353           email-recipients: '{email-recipients}'
354           email-prefix: '[{project}]'
355       - opendaylight-infra-shiplogs:
356           maven-version: 'mvn33'
357
358 - job-template:
359     name: 'builder-update-csit-tests'
360     node: centos7-java-builder-2c-8g
361
362     # builder-update-csit-tests job
363     #
364     # This job's purpose is to update csit
365     # tests to run in integration-distribution-test-{stream}
366     # by updating releng-defaults variables: csit-list-carbon,
367     # csit-list-boron, csit-list-beryllium
368
369     project-type: freestyle
370
371     properties:
372       - opendaylight-infra-properties:
373           build-days-to-keep: 14
374
375     parameters:
376       - opendaylight-infra-parameters:
377           os-cloud: '{os-cloud}'
378           project: '{project}'
379           branch: '{branch}'
380           refspec: 'refs/heads/{branch}'
381           artifacts: '{archive-artifacts}'
382
383     scm:
384       - gerrit-trigger-scm:
385           refspec: ''
386           choosing-strategy: 'default'
387
388     wrappers:
389       - opendaylight-infra-wrappers:
390           build-timeout: '{build-timeout}'
391
392     triggers:
393       - reverse:
394           jobs: 'builder-jjb-merge'
395
396     builders:
397       - shell: |
398           git checkout -b auto-update-csit-jobs
399       - integration-list-jobs:
400           blacklist: '{csit-list-blacklist}'
401           search_string: "csit"
402           stream: "nitrogen"
403           jobs-filename: "csit_jobs_nitrogen.lst"
404       - integration-list-jobs:
405           blacklist: '{csit-list-blacklist}'
406           search_string: "csit"
407           stream: "carbon"
408           jobs-filename: "csit_jobs_carbon.lst"
409       - integration-list-jobs:
410           blacklist: '{csit-list-blacklist}'
411           search_string: "csit"
412           stream: "boron"
413           jobs-filename: "csit_jobs_boron.lst"
414       - integration-list-jobs:
415           blacklist: '{csit-list-blacklist}'
416           search_string: "csit"
417           stream: "beryllium"
418           jobs-filename: "csit_jobs_beryllium.lst"
419       - integration-replace-block-text:
420           starting-regex: "'csit-list-nitrogen: >'"
421           ending-regex: "'csit-list-carbon: >'"
422           file-with-changes-to-insert: "'csit_jobs_nitrogen.lst'"
423           file-to-change: "'jjb/releng-defaults.yaml'"
424       - integration-replace-block-text:
425           starting-regex: "'csit-list-carbon: >'"
426           ending-regex: "'csit-list-boron: >'"
427           file-with-changes-to-insert: "'csit_jobs_carbon.lst'"
428           file-to-change: "'jjb/releng-defaults.yaml'"
429       - integration-replace-block-text:
430           starting-regex: "'csit-list-boron: >'"
431           ending-regex: "'csit-list-beryllium: >'"
432           file-with-changes-to-insert: "'csit_jobs_boron.lst'"
433           file-to-change: "'jjb/releng-defaults.yaml'"
434       - integration-replace-block-text:
435           starting-regex: "'csit-list-beryllium: >'"
436           ending-regex: "'# CSIT TESTS END SED MARKER'"
437           file-with-changes-to-insert: "'csit_jobs_beryllium.lst'"
438           file-to-change: "'jjb/releng-defaults.yaml'"
439       - shell: |
440           git status
441           git add jjb/releng-defaults.yaml
442       - opendaylight-infra-push-gerrit-patch:
443           project: "releng/builder"
444           gerrit-topic: "auto-update-csit-jobs"
445           gerrit-commit-message: "Auto Update CSIT Jobs to run"
446
447     publishers:
448       - email-notification:
449           email-recipients: '{email-recipients}'
450           email-prefix: '[releng]'
451       - opendaylight-infra-shiplogs:
452           maven-version: 'mvn33'