Merge "Archive error.log file generated by notify script"
[releng/builder.git] / jjb / autorelease / autorelease-projects.yaml
1 ---
2 - project:
3     name: autorelease-projects
4     jobs:
5       - 'autorelease-release-{stream}'
6       - 'autorelease-generate-release-notes-{stream}'
7
8     stream:
9       - nitrogen:
10           next-release-tag: Nitrogen
11           branch: 'master'
12           jdk: 'openjdk8'
13           integration-test: nitrogen
14       - carbon:
15           next-release-tag: Carbon
16           branch: 'stable/carbon'
17           jdk: 'openjdk8'
18           integration-test: carbon
19           karaf-version: karaf3
20       - boron:
21           next-release-tag: Boron-SR4
22           branch: 'stable/boron'
23           jdk: 'openjdk8'
24           integration-test: boron
25           karaf-version: karaf3
26       - beryllium:
27           # Only run once a week since Beryllium is in maintenance mode
28           cron: 'H H * * 0'
29           next-release-tag: Beryllium-SR5
30           branch: 'stable/beryllium'
31           jdk: 'openjdk7'
32           integration-test: beryllium
33           karaf-version: karaf3
34
35     project: 'releng/autorelease'
36     archive-artifacts: >
37         **/*.prop
38         **/*.log
39         patches/**
40         patches.tar.gz
41         error.log.gz
42
43 ###
44 # TODO: Remove this job once guava21 testing is complete
45 ###
46
47 - project:
48     name: autorelease-projects-guava21
49     jobs:
50       - 'autorelease-release-guava21-{stream}'
51
52     stream:
53       - carbon:
54           next-release-tag: Guava21-Testing
55           branch: 'master'
56           jdk: 'openjdk8'
57           integration-test: carbon
58
59     project: 'releng/autorelease'
60     archive-artifacts: '**/*.prop **/*.log **/patches/*.bundle **/patches/*.patch all-bundles.tar.gz'
61
62 - job-template:
63     name: 'autorelease-release-guava21-{stream}'
64
65     project-type: freestyle
66     node: centos7-autorelease-4c-16g
67     jdk: '{jdk}'
68
69     properties:
70       - opendaylight-infra-properties:
71           build-days-to-keep: '30'
72
73     parameters:
74       - maven-exec:
75           maven-version: 'mvn33'
76       - opendaylight-infra-parameters:
77           os-cloud: '{os-cloud}'
78           project: '{project}'
79           branch: '{branch}'
80           refspec: 'refs/heads/{branch}'
81           artifacts: '{archive-artifacts}'
82       - distribution-karaf-version:
83           karaf-version: '{karaf-version}'
84       - autorelease-release-tag:
85           release-tag: '{next-release-tag}'
86       - autorelease-release-branch:
87           release-branch: '{branch}'
88
89     scm:
90       - git:
91           credentials-id: 'opendaylight-jenkins-ssh'
92           url: '$GIT_BASE'
93           refspec: '$GERRIT_REFSPEC'
94           branches:
95             - '$GERRIT_BRANCH'
96           choosing-strategy: 'gerrit'
97           skip-tag: true
98           submodule:
99             recursive: true
100             timeout: 60
101
102     wrappers:
103       - opendaylight-infra-wrappers:
104           build-timeout: '1440'
105
106     triggers:
107       - gerrit:
108           server-name: '{server-name}'
109           trigger-on:
110             - comment-added-contains-event:
111                 comment-contains-value: 'test-guava21-patches'
112           projects:
113             - project-compare-type: 'ANT'
114               project-pattern: '{project}'
115               branches:
116                 - branch-compare-type: 'ANT'
117                   branch-pattern: '**/{branch}'
118           skip-vote:
119             successful: true
120             failed: true
121             unstable: true
122             notbuilt: true
123
124     builders:
125       - shell: |
126           #!/bin/bash
127           cd bgpcep
128           git remote add gerrit ssh://jenkins-$SILO@git.opendaylight.org:29418/bgpcep
129           git review -d 50184
130           cd ..
131           cd centinel
132           git remote add gerrit ssh://jenkins-$SILO@git.opendaylight.org:29418/centinel
133           git review -d 50185
134           cd ..
135           cd controller
136           git remote add gerrit ssh://jenkins-$SILO@git.opendaylight.org:29418/controller
137           git review -d 50176
138           cd ..
139           cd didm
140           git remote add gerrit ssh://jenkins-$SILO@git.opendaylight.org:29418/didm
141           git review -d 50187
142           cd ..
143           cd faas
144           git remote add gerrit ssh://jenkins-$SILO@git.opendaylight.org:29418/faas
145           git review -d 50190
146           cd ..
147           cd genius
148           git remote add gerrit ssh://jenkins-$SILO@git.opendaylight.org:29418/genius
149           git review -d 50192
150           cd ..
151           cd groupbasedpolicy
152           git remote add gerrit ssh://jenkins-$SILO@git.opendaylight.org:29418/groupbasedpolicy
153           git review -d 50200
154           cd ..
155           cd netvirt
156           git remote add gerrit ssh://jenkins-$SILO@git.opendaylight.org:29418/netvirt
157           git review -d 50215
158           cd ..
159           cd odlparent
160           git remote add gerrit ssh://jenkins-$SILO@git.opendaylight.org:29418/odlparent
161           git review -d 49820
162           cd ..
163           cd openflowplugin
164           git remote add gerrit ssh://jenkins-$SILO@git.opendaylight.org:29418/openflowplugin
165           git review -d 50183
166           cd ..
167           cd ovsdb
168           git remote add gerrit ssh://jenkins-$SILO@git.opendaylight.org:29418/ovsdb
169           git review -d 50191
170           cd ..
171           cd yangtools
172           git remote add gerrit ssh://jenkins-$SILO@git.opendaylight.org:29418/yangtools
173           git review -d 50173
174           cd ..
175       # force jenkins install of maven version before any shell scripts use it
176       - maven-target:
177           maven-version: 'mvn33'
178           goals: '-version'
179           settings: 'autorelease-settings'
180           settings-type: cfp
181           global-settings: 'odl-global-settings'
182           global-settings-type: cfp
183       - wipe-local-maven-repo
184       - jacoco-nojava-workaround
185       - shell: "./scripts/list-project-dependencies.sh"
186       - autorelease-determine-merge-order
187       - autorelease-cfp:
188           autorelease-settings: 'autorelease-settings'
189           odl-global-settings: 'odl-global-settings'
190       - autorelease-generate-taglist
191       - autorelease-distribute-taglist
192       - autorelease-generate-release-patches
193       # In a perfect world projects should be releasing separately and we consume them
194       # via a project that pulls the release bits from each project from Nexus.
195       # Keep the patches compatible with that ideal, but apply an edit
196       # to enable building in a single maven reactor afterwards.
197       - autorelease-fix-relative-paths
198       - maven-target:
199           maven-version: 'mvn33'
200           pom: 'pom.xml'
201           goals: >
202               clean deploy -V -B -Pintegrationtests,docs,repoBuild -Djenkins
203               -Dcheckstyle.skip=true
204               -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
205               -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage
206           java-opts:
207             - '-Xmx10g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
208           settings: 'autorelease-settings'
209           settings-type: cfp
210           global-settings: 'odl-global-settings'
211           global-settings-type: cfp
212       - autorelease-maven-deploy
213       - autorelease-get-integration-test-variables
214       - autorelease-maven-sources:
215           opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
216           maven-version: 'mvn33'
217           settings: 'autorelease-settings'
218           global-settings: 'odl-global-settings'
219       - autorelease-maven-sources-post-process
220       - shell: |
221           mkdir -p archives/
222           cp *.log *.prop $_
223
224     publishers:
225       - email-notification:
226           email-recipients: '{email-recipients}'
227           email-prefix: '[autorelease]'
228       - trigger-parameterized-builds:
229           - project: 'integration-distribution-test-{integration-test}'
230             condition: UNSTABLE_OR_BETTER
231             property-file: variables.jenkins-trigger
232             fail-on-missing: true
233       - opendaylight-infra-shiplogs:
234           maven-version: 'mvn33'
235
236
237 ###
238 # TODO: Remove this job once carbon tests failures are resolved
239 # This jobs skips all tests and is intended to stage artifacts for integration
240 # testing
241 ###
242
243 - project:
244     name: autorelease-projects-notests
245     jobs:
246       - 'autorelease-release-notests-{stream}'
247
248     stream:
249       - carbon:
250           next-release-tag: Carbon
251           branch: 'stable/carbon'
252           jdk: 'openjdk8'
253           integration-test: carbon
254           karaf-version: karaf3
255
256
257     project: 'releng/autorelease'
258     archive-artifacts: '**/*.prop **/*.log **/patches/*.bundle **/patches/*.patch all-bundles.tar.gz'
259
260
261 # Autorelease build jobs
262 - job-template:
263     name: 'autorelease-release-notests-{stream}'
264
265     project-type: freestyle
266     node: centos7-autorelease-4c-16g
267     jdk: '{jdk}'
268     cron: 'H 0 * * *'
269
270     properties:
271       - build-discarder:
272           days-to-keep: '30'
273           num-to-keep: 40
274           artifact-num-to-keep: 1
275     # Make sure we only archive the last artifact until we figure out why
276     # autorelease carbon is not generating a staging repo.
277     #   - opendaylight-infra-properties:
278     #       build-days-to-keep: '30'
279
280     parameters:
281       - maven-exec:
282           maven-version: 'mvn33'
283       - opendaylight-infra-parameters:
284           os-cloud: '{os-cloud}'
285           project: '{project}'
286           branch: '{branch}'
287           refspec: 'refs/heads/{branch}'
288           artifacts: '{archive-artifacts}'
289       - distribution-karaf-version:
290           karaf-version: '{karaf-version}'
291       - autorelease-release-tag:
292           release-tag: '{next-release-tag}'
293       - autorelease-release-branch:
294           release-branch: '{branch}'
295
296     scm:
297       - git:
298           credentials-id: 'opendaylight-jenkins-ssh'
299           url: '$GIT_BASE'
300           refspec: '$GERRIT_REFSPEC'
301           branches:
302             - '$GERRIT_BRANCH'
303           choosing-strategy: 'gerrit'
304           skip-tag: true
305           submodule:
306             recursive: true
307             timeout: 60
308
309     wrappers:
310       - opendaylight-infra-wrappers:
311           build-timeout: '1440'
312
313     triggers:
314       - timed: '{cron}'
315
316     builders:
317       # force jenkins install of maven version before any shell scripts use it
318       - maven-target:
319           maven-version: 'mvn33'
320           goals: '-version'
321           settings: 'autorelease-settings'
322           settings-type: cfp
323           global-settings: 'odl-global-settings'
324           global-settings-type: cfp
325       - wipe-local-maven-repo
326       - jacoco-nojava-workaround
327       - shell: "./scripts/list-project-dependencies.sh"
328       - autorelease-determine-merge-order
329       - autorelease-cfp:
330           autorelease-settings: 'autorelease-settings'
331           odl-global-settings: 'odl-global-settings'
332       - autorelease-generate-taglist
333       - autorelease-distribute-taglist
334       - distribute-build-url:
335           path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
336       - autorelease-generate-release-patches
337       # In a perfect world projects should be releasing separately and we consume them
338       # via a project that pulls the release bits from each project from Nexus.
339       # Keep the patches compatible with that ideal, but apply an edit
340       # to enable building in a single maven reactor afterwards.
341       - autorelease-fix-relative-paths
342       - maven-target:
343           maven-version: 'mvn33'
344           pom: 'pom.xml'
345           goals: |
346               clean deploy
347               -Pintegrationtests,docs,repoBuild
348               -Dcheckstyle.skip=true
349               -DskipTests=true
350               -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage
351               {opendaylight-infra-mvn-opts}
352           java-opts:
353             - '-Xmx10g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
354           settings: 'autorelease-settings'
355           settings-type: cfp
356           global-settings: 'odl-global-settings'
357           global-settings-type: cfp
358       - autorelease-maven-deploy
359       - autorelease-get-integration-test-variables
360       - autorelease-maven-sources:
361           opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
362           maven-version: 'mvn33'
363           settings: 'autorelease-settings'
364           global-settings: 'odl-global-settings'
365       - autorelease-maven-sources-post-process
366       - shell: |
367           mkdir -p archives/
368           cp *.log *.prop $_
369
370     publishers:
371       - opendaylight-infra-notify-status
372       - opendaylight-infra-sysstats
373       - archive:
374           # Need to archive dependencies.log in Jenkins to provide a simple
375           # way for downstream jobs to pull the latest version of this file
376           # in their builds.
377           # TODO stop archiving **/*.zip once we figure out why artifacts are
378           #      not deploying to Nexus
379           artifacts: 'dependencies.log, **/*.zip, /var/log/sa/*'
380       - trigger-parameterized-builds:
381           - project: 'integration-distribution-test-{integration-test}'
382             condition: UNSTABLE_OR_BETTER
383             property-file: variables.jenkins-trigger
384             fail-on-missing: true
385           - project: 'integration-distribution-test-{integration-test}'
386             condition: FAILED
387           - project: 'integration-sanity-test-{integration-test}'
388             condition: UNSTABLE_OR_BETTER
389             property-file: variables.jenkins-trigger
390             fail-on-missing: true
391           - project: 'integration-sanity-test-{integration-test}'
392             condition: FAILED
393           - project: 'packaging-build-rpm-master'
394             condition: UNSTABLE_OR_BETTER
395             predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
396             property-file: variables.jenkins-trigger
397             fail-on-missing: true
398       - opendaylight-infra-shiplogs:
399           maven-version: 'mvn33'
400
401
402 ###
403 # TODO: Remove this job once carbon tests failures are resolved
404 # This jobs uses -fn (fail never) and is intended to run the build until
405 # complition without being intruptted on test failures.
406 ###
407
408 - project:
409     name: autorelease-projects-failnever
410     jobs:
411       - 'autorelease-release-failnever-{stream}'
412
413     stream:
414       - carbon:
415           next-release-tag: Carbon
416           branch: 'stable/carbon'
417           jdk: 'openjdk8'
418           integration-test: carbon
419           karaf-version: karaf3
420
421     project: 'releng/autorelease'
422     archive-artifacts: '**/*.prop **/*.log **/patches/*.bundle **/patches/*.patch all-bundles.tar.gz'
423
424
425 # Autorelease build jobs
426 - job-template:
427     name: 'autorelease-release-failnever-{stream}'
428
429     project-type: freestyle
430     node: centos7-autorelease-4c-16g
431     jdk: '{jdk}'
432     cron: 'H 0 * * *'
433
434     properties:
435       - build-discarder:
436           days-to-keep: '30'
437           num-to-keep: 40
438           artifact-num-to-keep: 1
439     # Make sure we only archive the last artifact until we figure out why
440     # autorelease carbon is not generating a staging repo.
441     #   - opendaylight-infra-properties:
442     #       build-days-to-keep: '30'
443
444     parameters:
445       - maven-exec:
446           maven-version: 'mvn33'
447       - opendaylight-infra-parameters:
448           os-cloud: '{os-cloud}'
449           project: '{project}'
450           branch: '{branch}'
451           refspec: 'refs/heads/{branch}'
452           artifacts: '{archive-artifacts}'
453       - distribution-karaf-version:
454           karaf-version: '{karaf-version}'
455       - autorelease-release-tag:
456           release-tag: '{next-release-tag}'
457       - autorelease-release-branch:
458           release-branch: '{branch}'
459
460     scm:
461       - git:
462           credentials-id: 'opendaylight-jenkins-ssh'
463           url: '$GIT_BASE'
464           refspec: '$GERRIT_REFSPEC'
465           branches:
466             - '$GERRIT_BRANCH'
467           choosing-strategy: 'gerrit'
468           skip-tag: true
469           submodule:
470             recursive: true
471             timeout: 60
472
473     wrappers:
474       - opendaylight-infra-wrappers:
475           build-timeout: '1440'
476
477     triggers:
478       - timed: '{cron}'
479
480     builders:
481       # force jenkins install of maven version before any shell scripts use it
482       - maven-target:
483           maven-version: 'mvn33'
484           goals: '-version'
485           settings: 'autorelease-settings'
486           settings-type: cfp
487           global-settings: 'odl-global-settings'
488           global-settings-type: cfp
489       - wipe-local-maven-repo
490       - jacoco-nojava-workaround
491       - shell: "./scripts/list-project-dependencies.sh"
492       - autorelease-determine-merge-order
493       - autorelease-cfp:
494           autorelease-settings: 'autorelease-settings'
495           odl-global-settings: 'odl-global-settings'
496       - autorelease-generate-taglist
497       - autorelease-distribute-taglist
498       - distribute-build-url:
499           path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
500       - autorelease-generate-release-patches
501       # In a perfect world projects should be releasing separately and we consume them
502       # via a project that pulls the release bits from each project from Nexus.
503       # Keep the patches compatible with that ideal, but apply an edit
504       # to enable building in a single maven reactor afterwards.
505       - autorelease-fix-relative-paths
506       - maven-target:
507           maven-version: 'mvn33'
508           pom: 'pom.xml'
509           goals: |
510               clean deploy
511               -Pintegrationtests,docs,repoBuild
512               -Dcheckstyle.skip=true
513               -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage
514               -fn
515               {opendaylight-infra-mvn-opts}
516           java-opts:
517             - '-Xmx10g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
518           settings: 'autorelease-settings'
519           settings-type: cfp
520           global-settings: 'odl-global-settings'
521           global-settings-type: cfp
522       - autorelease-maven-deploy
523       - autorelease-get-integration-test-variables
524       - autorelease-maven-sources:
525           opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
526           maven-version: 'mvn33'
527           settings: 'autorelease-settings'
528           global-settings: 'odl-global-settings'
529       - autorelease-maven-sources-post-process
530       - shell: |
531           mkdir -p archives/
532           cp *.log *.prop $_
533
534     publishers:
535       - opendaylight-infra-notify-status
536       - opendaylight-infra-sysstats
537       - archive:
538           # Need to archive dependencies.log in Jenkins to provide a simple
539           # way for downstream jobs to pull the latest version of this file
540           # in their builds.
541           # TODO stop archiving **/*.zip once we figure out why artifacts are
542           #      not deploying to Nexus
543           artifacts: 'dependencies.log, **/*.zip, /var/log/sa/*'
544       - trigger-parameterized-builds:
545           - project: 'integration-distribution-test-{integration-test}'
546             condition: UNSTABLE_OR_BETTER
547             property-file: variables.jenkins-trigger
548             fail-on-missing: true
549           - project: 'integration-distribution-test-{integration-test}'
550             condition: FAILED
551           - project: 'integration-sanity-test-{integration-test}'
552             condition: UNSTABLE_OR_BETTER
553             property-file: variables.jenkins-trigger
554             fail-on-missing: true
555           - project: 'integration-sanity-test-{integration-test}'
556             condition: FAILED
557           - project: 'packaging-build-rpm-master'
558             condition: UNSTABLE_OR_BETTER
559             predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
560             property-file: variables.jenkins-trigger
561             fail-on-missing: true
562       - opendaylight-infra-shiplogs:
563           maven-version: 'mvn33'