2 # Autorelease build jobs
4 name: 'autorelease-release-{stream}'
10 build-node: '{build-node}'
11 java-version: openjdk8
19 project-type: freestyle
25 - lf-infra-properties:
26 build-days-to-keep: 30
30 maven-version: 'mvn33'
31 - lf-infra-parameters:
35 lftools-version: '{lftools-version}'
36 - distribution-karaf-version:
37 karaf-version: '{karaf-version}'
38 - autorelease-release-tag:
39 release-tag: '{next-release-tag}'
42 default: '{extra-mvn-opts}'
44 Additional optional Maven Options to pass to the Maven Goals
48 -Dskip.karaf.featureTest=true # To disable karaf SingleFeatureTests
49 --fail-never # NEVER fail the build, regardless of project result
50 --fail-at-end # Only fail the build afterwards; allow all non-impacted builds to continue
52 name: ARCHIVE_ARTIFACTS
53 default: '{archive-artifacts}'
54 description: Artifacts to archive to the logs server.
58 credentials-id: 'opendaylight-jenkins-ssh'
60 refspec: '$GERRIT_REFSPEC'
63 choosing-strategy: default
70 - opendaylight-infra-wrappers:
77 # force jenkins install of maven version before any shell scripts use it
79 mvn-version: '{mvn-version}'
80 - wipe-local-maven-repo
81 - jacoco-nojava-workaround
82 - shell: "./scripts/list-project-dependencies.sh"
83 - autorelease-determine-merge-order
85 autorelease-settings: 'autorelease-settings'
86 global-settings: 'odl-global-settings'
87 - autorelease-generate-release-patches
88 - autorelease-generate-artifact-versions
89 - autorelease-distribute-taglist
90 - distribute-build-url:
91 path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
92 # In a perfect world projects should be releasing separately and we consume them
93 # via a project that pulls the release bits from each project from Nexus.
94 # Keep the patches compatible with that ideal, but apply an edit
95 # to enable building in a single maven reactor afterwards.
96 - autorelease-fix-relative-paths
98 maven-version: 'mvn33'
103 -Pintegrationtests,docs,repoBuild
104 -Dcheckstyle.skip=true
105 -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage
106 {opendaylight-infra-mvn-opts}
108 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
109 settings: 'autorelease-settings'
111 global-settings: 'global-settings'
112 global-settings-type: cfp
113 - autorelease-maven-deploy
114 - autorelease-get-integration-test-variables
115 - autorelease-maven-sources:
116 opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
117 maven-version: 'mvn33'
118 settings: 'autorelease-settings'
119 global-settings: 'global-settings'
120 - autorelease-maven-sources-post-process
126 - opendaylight-infra-notify-status
127 - trigger-parameterized-builds:
128 - project: 'integration-distribution-test-{integration-test}'
129 condition: UNSTABLE_OR_BETTER
130 property-file: variables.jenkins-trigger
131 fail-on-missing: true
132 - project: 'integration-distribution-test-{integration-test}'
134 trigger-with-no-params: true
135 - project: 'integration-sanity-test-{integration-test}'
136 condition: UNSTABLE_OR_BETTER
137 property-file: variables.jenkins-trigger
138 fail-on-missing: true
139 - project: 'integration-sanity-test-{integration-test}'
141 trigger-with-no-params: true
142 - project: 'packaging-build-rpm-{stream}'
143 condition: UNSTABLE_OR_BETTER
144 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
145 property-file: variables.jenkins-trigger
146 fail-on-missing: true
147 - project: 'packaging-build-deb-{stream}'
148 condition: UNSTABLE_OR_BETTER
149 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
150 property-file: variables.jenkins-trigger
151 fail-on-missing: true
155 name: autorelease-update-validate-jobs-{stream}
156 project-type: freestyle
157 node: centos7-builder-2c-1g
160 - lf-infra-properties:
161 build-days-to-keep: 7
164 - lf-infra-parameters:
165 project: releng/builder
168 lftools-version: '{lftools-version}'
171 - lf-infra-gerrit-scm:
172 git-url: '$GIT_URL/releng/builder'
174 refspec: 'refs/heads/master'
175 jenkins-ssh-credential: opendaylight-jenkins-ssh
176 submodule-recursive: true
177 choosing-strategy: default
181 server-name: '{gerrit-server-name}'
183 - change-merged-event
184 - comment-added-contains-event:
185 comment-contains-value: remerge$
187 - project-compare-type: ANT
188 project-pattern: '{project}'
190 - branch-compare-type: ANT
191 branch-pattern: '**/{branch}'
199 jenkins-ssh-credential: opendaylight-jenkins-ssh
202 - autorelease-update-validate-projects
203 - opendaylight-infra-push-gerrit-patch:
204 project: 'releng/builder'
205 gerrit-topic: 'autorelease-update-validate-jobs-{stream}'
206 gerrit-commit-message: |
207 Update validate autorelease projects for {stream}
213 name: autorelease-version-bump-{stream}
214 project-type: freestyle
218 - opendaylight-infra-properties:
219 build-days-to-keep: 7
222 - lf-infra-parameters:
223 project: releng/autorelease
226 refspec: 'refs/heads/{branch}'
227 lftools-version: '{lftools-version}'
230 default: '{next-release-tag}'
232 Release that is being version bumped.
233 Eg. Lithium, Beryllium, Boron, Carbon, Carbon-SR1, Carbon-SR2...
238 If DRY_RUN is enabled modifications are not published to Gerrit
239 and artifacts are not pushed to Nexus. Instead the build will be
240 performed using the goals "clean install".
245 - lf-infra-gerrit-scm:
246 git-url: '$GIT_URL/$GERRIT_PROJECT'
248 refspec: 'refs/heads/{branch}'
249 jenkins-ssh-credential: opendaylight-jenkins-ssh
250 submodule-recursive: true
251 choosing-strategy: default
256 jenkins-ssh-credential: opendaylight-jenkins-ssh
259 # force jenkins install of maven version before any shell scripts use it
263 settings: autorelease-settings
265 global-settings: global-settings
266 global-settings-type: cfp
268 - shell: !include-raw-escape:
269 - ../global-jjb/shell/lftools-install.sh
276 name: 'autorelease-generate-release-notes-{stream}'
278 ######################
279 # Default parameters #
280 ######################
282 gerrit_merge_triggers:
283 - comment-added-contains-event:
284 comment-contains-value: generate-release-notes .+$
286 #####################
287 # Job Configuration #
288 #####################
290 project-type: freestyle
291 node: centos7-builder-2c-8g
294 - lf-infra-properties:
295 build-days-to-keep: 7
298 - lf-infra-parameters:
302 lftools-version: '{lftools-version}'
305 description: Release to generate release notes for.
308 - lf-infra-gerrit-scm:
309 git-url: '$GIT_URL/$GERRIT_PROJECT'
310 branch: '$GERRIT_BRANCH'
311 refspec: '$GERRIT_REFSPEC'
312 jenkins-ssh-credential: opendaylight-jenkins-ssh
313 submodule-recursive: true
314 choosing-strategy: default
319 jenkins-ssh-credential: opendaylight-jenkins-ssh
323 server-name: '{gerrit-server-name}'
324 trigger-on: '{obj:gerrit_merge_triggers}'
326 - project-compare-type: ANT
327 project-pattern: '{project}'
329 - branch-compare-type: ANT
330 branch-pattern: '**/{branch}'
333 - autorelease-generate-release-notes
339 name: '{project-name}-validate-autorelease-{stream}'
345 java-version: openjdk8
347 #####################
348 # Job Configuration #
349 #####################
352 project-type: freestyle
353 # Note: This NEEDS to be hardcoded as projects should NOT be allowed to
354 # override the build node.
355 node: centos7-builder-2c-8g
357 jdk: '{java-version}'
360 - lf-infra-properties:
361 build-days-to-keep: 7
364 - lf-infra-parameters:
368 lftools-version: '{lftools-version}'
369 - autorelease-release-tag:
370 release-tag: validate
373 default: '{git-url}/releng/autorelease'
374 description: "Autorelease clone URL"
379 credentials-id: 'opendaylight-jenkins-ssh'
389 - opendaylight-infra-wrappers:
390 build-timeout: '{build-timeout}'
393 - gerrit-trigger-patch-submitted:
394 gerrit-server-name: '{gerrit-server-name}'
400 - autorelease-checkout-gerrit-patch
401 - jacoco-nojava-workaround
402 - shell: "./scripts/list-project-dependencies.sh"
403 - autorelease-determine-merge-order
404 - autorelease-generate-release-patches
405 # In a perfect world projects should be releasing separately and we consume them
406 # via a project that pulls the release bits from each project from Nexus.
407 # Keep the patches compatible with that ideal, but apply an edit
408 # to enable building in a single maven reactor afterwards.
409 - autorelease-fix-relative-paths
412 pom: validate-pom.xml
414 clean install dependency:tree
417 {opendaylight-infra-mvn-opts}
420 settings: autorelease-settings
422 global-settings: global-settings
423 global-settings-type: cfp
424 # Hack to workaround the duplicate-finder plugin in odlparent breaking validate-autorelease
425 - shell: sed -i 's/validate/none/' /tmp/r/org/opendaylight/odlparent/odlparent/3.0.2/odlparent-3.0.2.pom
432 {opendaylight-infra-mvn-opts}
434 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
435 settings: autorelease-settings
437 global-settings: global-settings
438 global-settings-type: cfp
444 - email-notification:
445 email-recipients: '{email-recipients}'
446 email-prefix: '[autorelease] [{project-name}]'