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