524a67a3dcdff69e82bf3bc6d142df74659b56f5
[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       - opendaylight-infra-shiplogs:
381           maven-version: 'mvn33'
382
383
384 ###
385 # TODO: Remove this job once carbon tests failures are resolved
386 # This jobs uses -fn (fail never) and is intended to run the build until
387 # complition without being intruptted on test failures.
388 ###
389
390 - project:
391     name: autorelease-projects-failnever
392     jobs:
393       - 'autorelease-release-failnever-{stream}'
394
395     stream:
396       - carbon:
397           next-release-tag: Carbon
398           branch: 'stable/carbon'
399           jdk: 'openjdk8'
400           integration-test: carbon
401           karaf-version: karaf3
402
403     project: 'releng/autorelease'
404     archive-artifacts: '**/*.prop **/*.log **/patches/*.bundle **/patches/*.patch all-bundles.tar.gz'
405
406
407 # Autorelease build jobs
408 - job-template:
409     name: 'autorelease-release-failnever-{stream}'
410
411     project-type: freestyle
412     node: centos7-autorelease-4c-16g
413     jdk: '{jdk}'
414     cron: 'H 0 * * *'
415
416     properties:
417       - build-discarder:
418           days-to-keep: '30'
419           num-to-keep: 40
420           artifact-num-to-keep: 1
421     # Make sure we only archive the last artifact until we figure out why
422     # autorelease carbon is not generating a staging repo.
423     #   - opendaylight-infra-properties:
424     #       build-days-to-keep: '30'
425
426     parameters:
427       - maven-exec:
428           maven-version: 'mvn33'
429       - opendaylight-infra-parameters:
430           os-cloud: '{os-cloud}'
431           project: '{project}'
432           branch: '{branch}'
433           refspec: 'refs/heads/{branch}'
434           artifacts: '{archive-artifacts}'
435       - distribution-karaf-version:
436           karaf-version: '{karaf-version}'
437       - autorelease-release-tag:
438           release-tag: '{next-release-tag}'
439       - autorelease-release-branch:
440           release-branch: '{branch}'
441
442     scm:
443       - git:
444           credentials-id: 'opendaylight-jenkins-ssh'
445           url: '$GIT_BASE'
446           refspec: '$GERRIT_REFSPEC'
447           branches:
448             - '$GERRIT_BRANCH'
449           choosing-strategy: 'gerrit'
450           skip-tag: true
451           submodule:
452             recursive: true
453             timeout: 60
454
455     wrappers:
456       - opendaylight-infra-wrappers:
457           build-timeout: '1440'
458
459     triggers:
460       - timed: '{cron}'
461
462     builders:
463       # force jenkins install of maven version before any shell scripts use it
464       - maven-target:
465           maven-version: 'mvn33'
466           goals: '-version'
467           settings: 'autorelease-settings'
468           settings-type: cfp
469           global-settings: 'odl-global-settings'
470           global-settings-type: cfp
471       - wipe-local-maven-repo
472       - jacoco-nojava-workaround
473       - shell: "./scripts/list-project-dependencies.sh"
474       - autorelease-determine-merge-order
475       - autorelease-cfp:
476           autorelease-settings: 'autorelease-settings'
477           odl-global-settings: 'odl-global-settings'
478       - autorelease-generate-taglist
479       - autorelease-distribute-taglist
480       - distribute-build-url:
481           path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
482       - autorelease-generate-release-patches
483       # In a perfect world projects should be releasing separately and we consume them
484       # via a project that pulls the release bits from each project from Nexus.
485       # Keep the patches compatible with that ideal, but apply an edit
486       # to enable building in a single maven reactor afterwards.
487       - autorelease-fix-relative-paths
488       - maven-target:
489           maven-version: 'mvn33'
490           pom: 'pom.xml'
491           goals: |
492               clean deploy
493               -Pintegrationtests,docs,repoBuild
494               -Dcheckstyle.skip=true
495               -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage
496               -Dskip.karaf.featureTest=true
497               -fn
498               {opendaylight-infra-mvn-opts}
499           java-opts:
500             - '-Xmx10g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
501           settings: 'autorelease-settings'
502           settings-type: cfp
503           global-settings: 'odl-global-settings'
504           global-settings-type: cfp
505       - autorelease-maven-deploy
506       - autorelease-get-integration-test-variables
507       - autorelease-maven-sources:
508           opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
509           maven-version: 'mvn33'
510           settings: 'autorelease-settings'
511           global-settings: 'odl-global-settings'
512       - autorelease-maven-sources-post-process
513       - shell: |
514           mkdir -p archives/
515           cp *.log *.prop $_
516
517     publishers:
518       - opendaylight-infra-notify-status
519       - opendaylight-infra-sysstats
520       - archive:
521           # Need to archive dependencies.log in Jenkins to provide a simple
522           # way for downstream jobs to pull the latest version of this file
523           # in their builds.
524           # TODO stop archiving **/*.zip once we figure out why artifacts are
525           #      not deploying to Nexus
526           artifacts: 'dependencies.log, **/*.zip, /var/log/sa/*'
527       - opendaylight-infra-shiplogs:
528           maven-version: 'mvn33'