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-generate-artifact-versions
79 - autorelease-distribute-taglist
80 - distribute-build-url:
81 path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
82 # In a perfect world projects should be releasing separately and we consume them
83 # via a project that pulls the release bits from each project from Nexus.
84 # Keep the patches compatible with that ideal, but apply an edit
85 # to enable building in a single maven reactor afterwards.
86 - autorelease-fix-relative-paths
88 maven-version: 'mvn33'
93 -Pintegrationtests,docs,repoBuild
94 -Dcheckstyle.skip=true
95 -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage
96 {opendaylight-infra-mvn-opts}
98 - '-Xmx10g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
99 settings: 'autorelease-settings'
101 global-settings: 'global-settings'
102 global-settings-type: cfp
103 - autorelease-maven-deploy
104 - autorelease-get-integration-test-variables
105 - autorelease-maven-sources:
106 opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
107 maven-version: 'mvn33'
108 settings: 'autorelease-settings'
109 global-settings: 'global-settings'
110 - autorelease-maven-sources-post-process
116 - opendaylight-infra-notify-status
117 - trigger-parameterized-builds:
118 - project: 'integration-distribution-test-{integration-test}'
119 condition: UNSTABLE_OR_BETTER
120 property-file: variables.jenkins-trigger
121 fail-on-missing: true
122 - project: 'integration-distribution-test-{integration-test}'
124 trigger-with-no-params: true
125 - project: 'integration-sanity-test-{integration-test}'
126 condition: UNSTABLE_OR_BETTER
127 property-file: variables.jenkins-trigger
128 fail-on-missing: true
129 - project: 'integration-sanity-test-{integration-test}'
131 trigger-with-no-params: true
132 - project: 'packaging-build-rpm-{stream}'
133 condition: UNSTABLE_OR_BETTER
134 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
135 property-file: variables.jenkins-trigger
136 fail-on-missing: true
137 - project: 'packaging-build-deb-{stream}'
138 condition: UNSTABLE_OR_BETTER
139 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
140 property-file: variables.jenkins-trigger
141 fail-on-missing: true
145 name: autorelease-update-validate-jobs-{stream}
146 project-type: freestyle
147 node: centos7-java-builder-2c-4g
150 - lf-infra-properties:
151 build-days-to-keep: 7
154 - lf-infra-parameters:
155 project: releng/builder
160 - lf-infra-gerrit-scm:
161 git-url: '$GIT_URL/releng/builder'
163 refspec: 'refs/heads/master'
164 jenkins-ssh-credential: opendaylight-jenkins-ssh
165 submodule-recursive: true
166 choosing-strategy: default
170 server-name: '{gerrit-server-name}'
172 - change-merged-event
173 - comment-added-contains-event:
174 comment-contains-value: remerge$
176 - project-compare-type: ANT
177 project-pattern: '{project}'
179 - branch-compare-type: ANT
180 branch-pattern: '**/{branch}'
188 jenkins-ssh-credential: opendaylight-jenkins-ssh
191 - shell: !include-raw-escape:
192 - update-validate-autorelease-projects.sh
193 - opendaylight-infra-push-gerrit-patch:
194 project: 'releng/builder'
195 gerrit-topic: 'autorelease-update-validate-jobs-{stream}'
196 gerrit-commit-message: |
197 Update validate autorelease projects for {stream}
203 name: autorelease-version-bump-{stream}
204 project-type: freestyle
205 node: centos7-autorelease-4c-16g
208 - opendaylight-infra-properties:
209 build-days-to-keep: 7
212 - lf-infra-parameters:
213 project: releng/autorelease
216 refspec: 'refs/heads/{branch}'
219 default: '{next-release-tag}'
221 Release that is being version bumped.
222 Eg. Lithium, Beryllium, Boron, Carbon, Carbon-SR1, Carbon-SR2...
227 If DRY_RUN is enabled modifications are not published to Gerrit.
232 - lf-infra-gerrit-scm:
233 git-url: '$GIT_URL/$GERRIT_PROJECT'
235 refspec: 'refs/heads/{branch}'
236 jenkins-ssh-credential: opendaylight-jenkins-ssh
237 submodule-recursive: true
238 choosing-strategy: default
243 jenkins-ssh-credential: opendaylight-jenkins-ssh
246 # force jenkins install of maven version before any shell scripts use it
250 settings: autorelease-settings
252 global-settings: global-settings
253 global-settings-type: cfp
255 - shell: !include-raw-escape:
256 - ../global-jjb/shell/lftools-install.sh
260 - trigger-parameterized-builds:
261 - project: 'autorelease-generate-release-notes-{stream}'
262 condition: UNSTABLE_OR_BETTER
263 trigger-with-no-params: true
267 name: 'autorelease-generate-release-notes-{stream}'
269 project-type: freestyle
270 node: centos7-java-builder-2c-4g
273 - lf-infra-properties:
274 build-days-to-keep: 7
277 - lf-infra-parameters:
283 - lf-infra-gerrit-scm:
284 git-url: '$GIT_URL/$GERRIT_PROJECT'
286 refspec: 'refs/heads/{branch}'
287 jenkins-ssh-credential: opendaylight-jenkins-ssh
288 submodule-recursive: true
289 choosing-strategy: default
294 jenkins-ssh-credential: opendaylight-jenkins-ssh
304 pom: '$WORKSPACE/scripts/release_notes_management/pom.xml'
307 {opendaylight-infra-mvn-opts}
308 settings: autorelease-settings
310 global-settings: global-settings
311 global-settings-type: cfp
312 - autorelease-generate-release-notes
318 name: '{project-name}-validate-autorelease-{stream}'
321 project-type: freestyle
327 - lf-infra-properties:
328 build-days-to-keep: 7
331 - lf-infra-parameters:
335 - autorelease-release-tag:
336 release-tag: validate
339 default: '{git-url}/releng/autorelease'
340 description: "Autorelease clone URL"
345 credentials-id: 'opendaylight-jenkins-ssh'
355 - opendaylight-infra-wrappers:
356 build-timeout: '{build-timeout}'
359 - gerrit-trigger-patch-submitted:
360 server: '{server-name}'
366 - jacoco-nojava-workaround
367 - autorelease-checkout-gerrit-patch
368 - autorelease-generate-release-patches
369 # In a perfect world projects should be releasing separately and we consume them
370 # via a project that pulls the release bits from each project from Nexus.
371 # Keep the patches compatible with that ideal, but apply an edit
372 # to enable building in a single maven reactor afterwards.
373 - autorelease-fix-relative-paths
376 pom: validate-pom.xml
378 clean install dependency:tree
381 {opendaylight-infra-mvn-opts}
384 settings: autorelease-settings
386 global-settings: global-settings
387 global-settings-type: cfp
394 {opendaylight-infra-mvn-opts}
396 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
397 settings: autorelease-settings
399 global-settings: global-settings
400 global-settings-type: cfp
403 - email-notification:
404 email-recipients: '{email-recipients}'
405 email-prefix: '[autorelease] [{project-name}]'