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