2 # Autorelease build jobs
4 name: 'autorelease-release-{stream}'
6 project-type: freestyle
7 node: centos7-autorelease-4c-16g
11 # Default variable values
16 - lf-infra-properties:
17 build-days-to-keep: 30
21 maven-version: 'mvn33'
22 - lf-infra-parameters:
26 - distribution-karaf-version:
27 karaf-version: '{karaf-version}'
28 - autorelease-release-tag:
29 release-tag: '{next-release-tag}'
32 default: '{extra-mvn-opts}'
34 Additional optional Maven Options to pass to the Maven Goals
38 -Dskip.karaf.featureTest=true # To disable karaf SingleFeatureTests
39 --fail-never # NEVER fail the build, regardless of project result
40 --fail-at-end # Only fail the build afterwards; allow all non-impacted builds to continue
42 name: ARCHIVE_ARTIFACTS
43 default: '{archive-artifacts}'
44 description: Artifacts to archive to the logs server.
48 credentials-id: 'opendaylight-jenkins-ssh'
50 refspec: '$GERRIT_REFSPEC'
53 choosing-strategy: default
60 - opendaylight-infra-wrappers:
67 # force jenkins install of maven version before any shell scripts use it
69 mvn-version: '{mvn-version}'
70 - wipe-local-maven-repo
71 - jacoco-nojava-workaround
72 - shell: "./scripts/list-project-dependencies.sh"
73 - autorelease-determine-merge-order
75 autorelease-settings: 'autorelease-settings'
76 global-settings: 'odl-global-settings'
77 - autorelease-generate-release-patches
78 - autorelease-distribute-taglist
79 - distribute-build-url:
80 path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
81 # In a perfect world projects should be releasing separately and we consume them
82 # via a project that pulls the release bits from each project from Nexus.
83 # Keep the patches compatible with that ideal, but apply an edit
84 # to enable building in a single maven reactor afterwards.
85 - autorelease-fix-relative-paths
87 maven-version: 'mvn33'
92 -Pintegrationtests,docs,repoBuild
93 -Dcheckstyle.skip=true
94 -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage
95 {opendaylight-infra-mvn-opts}
97 - '-Xmx10g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
98 settings: 'autorelease-settings'
100 global-settings: 'global-settings'
101 global-settings-type: cfp
102 - autorelease-maven-deploy
103 - autorelease-get-integration-test-variables
104 - autorelease-maven-sources:
105 opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
106 maven-version: 'mvn33'
107 settings: 'autorelease-settings'
108 global-settings: 'global-settings'
109 - autorelease-maven-sources-post-process
115 - opendaylight-infra-notify-status
116 - trigger-parameterized-builds:
117 - project: 'integration-distribution-test-{integration-test}'
118 condition: UNSTABLE_OR_BETTER
119 property-file: variables.jenkins-trigger
120 fail-on-missing: true
121 - project: 'integration-distribution-test-{integration-test}'
123 trigger-with-no-params: true
124 - project: 'integration-sanity-test-{integration-test}'
125 condition: UNSTABLE_OR_BETTER
126 property-file: variables.jenkins-trigger
127 fail-on-missing: true
128 - project: 'integration-sanity-test-{integration-test}'
130 trigger-with-no-params: true
131 - project: 'packaging-build-rpm-{stream}'
132 condition: UNSTABLE_OR_BETTER
133 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
134 property-file: variables.jenkins-trigger
135 fail-on-missing: true
136 - project: 'packaging-build-deb-{stream}'
137 condition: UNSTABLE_OR_BETTER
138 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
139 property-file: variables.jenkins-trigger
140 fail-on-missing: true
144 name: autorelease-update-validate-jobs-{stream}
145 project-type: freestyle
146 node: centos7-java-builder-2c-4g
149 - lf-infra-properties:
150 build-days-to-keep: 7
153 - lf-infra-parameters:
154 project: releng/builder
159 - lf-infra-gerrit-scm:
160 git-url: '$GIT_URL/releng/builder'
162 refspec: 'refs/heads/master'
163 jenkins-ssh-credential: opendaylight-jenkins-ssh
164 submodule-recursive: true
165 choosing-strategy: default
169 server-name: '{gerrit-server-name}'
171 - change-merged-event
172 - comment-added-contains-event:
173 comment-contains-value: remerge$
175 - project-compare-type: ANT
176 project-pattern: '{project}'
178 - branch-compare-type: ANT
179 branch-pattern: '**/{branch}'
187 jenkins-ssh-credential: opendaylight-jenkins-ssh
190 - shell: !include-raw-escape:
191 - update-validate-autorelease-projects.sh
192 - opendaylight-infra-push-gerrit-patch:
193 project: 'releng/builder'
194 gerrit-topic: 'autorelease-update-validate-jobs-{stream}'
195 gerrit-commit-message: |
196 Update validate autorelease projects for {stream}
202 name: autorelease-version-bump-{stream}
203 project-type: freestyle
204 node: centos7-autorelease-4c-16g
207 - opendaylight-infra-properties:
208 build-days-to-keep: 7
211 - lf-infra-parameters:
212 project: releng/autorelease
215 refspec: 'refs/heads/{branch}'
218 default: '{next-release-tag}'
220 Release that is being version bumped.
221 Eg. Lithium, Beryllium, Boron, Carbon, Carbon-SR1, Carbon-SR2...
226 If DRY_RUN is enabled modifications are not published to Gerrit.
231 - lf-infra-gerrit-scm:
232 git-url: '$GIT_URL/$GERRIT_PROJECT'
234 refspec: 'refs/heads/{branch}'
235 jenkins-ssh-credential: opendaylight-jenkins-ssh
236 submodule-recursive: true
237 choosing-strategy: default
242 jenkins-ssh-credential: opendaylight-jenkins-ssh
245 # force jenkins install of maven version before any shell scripts use it
249 settings: autorelease-settings
251 global-settings: global-settings
252 global-settings-type: cfp
254 - shell: !include-raw-escape:
255 - ../global-jjb/shell/lftools-install.sh
259 - trigger-parameterized-builds:
260 - project: 'autorelease-generate-release-notes-{stream}'
261 condition: UNSTABLE_OR_BETTER
262 trigger-with-no-params: true
266 name: 'autorelease-generate-release-notes-{stream}'
268 project-type: freestyle
269 node: centos7-java-builder-2c-4g
272 - lf-infra-properties:
273 build-days-to-keep: 7
276 - lf-infra-parameters:
282 - lf-infra-gerrit-scm:
283 git-url: '$GIT_URL/$GERRIT_PROJECT'
285 refspec: 'refs/heads/{branch}'
286 jenkins-ssh-credential: opendaylight-jenkins-ssh
287 submodule-recursive: true
288 choosing-strategy: default
293 jenkins-ssh-credential: opendaylight-jenkins-ssh
303 pom: '$WORKSPACE/scripts/release_notes_management/pom.xml'
306 {opendaylight-infra-mvn-opts}
307 settings: autorelease-settings
309 global-settings: global-settings
310 global-settings-type: cfp
311 - autorelease-generate-release-notes
317 name: '{project-name}-validate-autorelease-{stream}'
320 project-type: freestyle
326 - lf-infra-properties:
327 build-days-to-keep: 7
330 - lf-infra-parameters:
334 - autorelease-release-tag:
335 release-tag: validate
338 default: '{git-url}/releng/autorelease'
339 description: "Autorelease clone URL"
344 credentials-id: 'opendaylight-jenkins-ssh'
354 - opendaylight-infra-wrappers:
355 build-timeout: '{build-timeout}'
358 - gerrit-trigger-patch-submitted:
359 server: '{server-name}'
365 - jacoco-nojava-workaround
366 - autorelease-checkout-gerrit-patch
367 - autorelease-generate-release-patches
368 # In a perfect world projects should be releasing separately and we consume them
369 # via a project that pulls the release bits from each project from Nexus.
370 # Keep the patches compatible with that ideal, but apply an edit
371 # to enable building in a single maven reactor afterwards.
372 - autorelease-fix-relative-paths
375 pom: validate-pom.xml
377 clean install dependency:tree
380 {opendaylight-infra-mvn-opts}
383 settings: autorelease-settings
385 global-settings: global-settings
386 global-settings-type: cfp
393 {opendaylight-infra-mvn-opts}
395 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
396 settings: autorelease-settings
398 global-settings: global-settings
399 global-settings-type: cfp
402 - email-notification:
403 email-recipients: '{email-recipients}'
404 email-prefix: '[autorelease] [{project-name}]'