2 # Autorelease build jobs
4 name: autorelease-branch-cut
10 project-type: freestyle
11 node: centos7-builder-2c-2g
14 - opendaylight-infra-properties:
18 - lf-infra-parameters:
19 project: releng/autorelease
22 lftools-version: '{lftools-version}'
26 Release name to branch cut.
27 Eg. Lithium, Beryllium, Boron, Carbon...
32 If DRY_RUN is enabled modifications are not published to Gerrit.
35 - lf-infra-gerrit-scm:
36 git-url: '$GIT_URL/$GERRIT_PROJECT'
38 refspec: 'refs/heads/master'
39 jenkins-ssh-credential: opendaylight-jenkins-ssh
40 submodule-disable: false
41 submodule-recursive: true
43 choosing-strategy: default
48 jenkins-ssh-credential: opendaylight-jenkins-ssh
51 - shell: !include-raw-escape: branch-cut.sh
57 name: 'autorelease-release-{stream}-{mvn-version}-{java-version}'
59 ######################
60 # Default parameters #
61 ######################
63 build-node: '{build-node}'
65 java-version: '{java-version}'
66 mvn-global-settings: global-settings
67 mvn-goals: clean deploy
68 mvn-opts: '-Xmx8g -Dmaven.compile.fork=true'
70 mvn-settings: autorelease-settings
79 project-type: freestyle
81 disabled: '{disable-job}'
84 - lf-infra-properties:
85 build-days-to-keep: 30
88 - lf-infra-parameters:
92 lftools-version: '{lftools-version}'
93 - lf-infra-maven-parameters:
94 mvn-opts: '{mvn-opts}'
95 mvn-params: '{mvn-params}'
96 mvn-version: '{mvn-version}'
97 - distribution-karaf-version:
98 karaf-version: '{karaf-version}'
99 - autorelease-release-tag:
100 release-tag: '{stream}'
102 name: ARCHIVE_ARTIFACTS
103 default: '{archive-artifacts}'
104 description: Artifacts to archive to the logs server.
106 name: STAGING_PROFILE_ID
107 default: '{staging-profile-id}'
108 description: Nexus staging profile ID.
112 credentials-id: 'opendaylight-jenkins-ssh'
114 refspec: '$GERRIT_REFSPEC'
117 choosing-strategy: default
124 - opendaylight-infra-wrappers:
132 # force jenkins install of maven version before any shell scripts use it
134 mvn-version: '{mvn-version}'
135 - wipe-local-maven-repo
136 - lf-jacoco-nojava-workaround
137 - shell: "./scripts/list-project-dependencies.sh"
138 - autorelease-determine-merge-order
139 - lf-provide-maven-settings:
140 global-settings-file: '{mvn-global-settings}'
141 settings-file: '{mvn-settings}'
142 - autorelease-generate-release-patches
143 - autorelease-generate-artifact-versions
144 - lf-update-java-alternatives:
145 java-version: '{java-version}'
146 - autorelease-distribute-taglist
147 - distribute-build-url:
148 path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
149 # In a perfect world projects should be releasing separately and we consume them
150 # via a project that pulls the release bits from each project from Nexus.
151 # Keep the patches compatible with that ideal, but apply an edit
152 # to enable building in a single maven reactor afterwards.
153 - autorelease-fix-relative-paths
155 mvn-goals: '{mvn-goals}'
157 sign-artifacts: '{sign-artifacts}'
158 sign-dir: '$WORKSPACE/m2repo'
161 mvn-global-settings: '{mvn-global-settings}'
162 mvn-settings: '{mvn-settings}'
163 mvn-staging-id: '{mvn-staging-id}'
164 - autorelease-get-integration-test-variables
165 - autorelease-maven-sources:
166 opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
167 maven-version: '{mvn-version}'
168 settings: '{mvn-settings}'
169 global-settings: '{mvn-global-settings}'
175 - opendaylight-infra-notify-status
176 - trigger-parameterized-builds:
177 - project: 'integration-distribution-test-{integration-test}'
178 condition: UNSTABLE_OR_BETTER
179 property-file: variables.jenkins-trigger
180 fail-on-missing: true
181 - project: 'integration-distribution-test-{integration-test}'
183 trigger-with-no-params: true
184 - project: 'packaging-build-rpm-{stream}'
185 condition: UNSTABLE_OR_BETTER
186 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
187 property-file: variables.jenkins-trigger
188 fail-on-missing: true
189 - project: 'packaging-build-deb-{stream}'
190 condition: UNSTABLE_OR_BETTER
191 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
192 property-file: variables.jenkins-trigger
193 fail-on-missing: true
194 # Critical component of the OpenDaylight community
201 - shell: echo '#topic cookies'
202 mark-unstable-if-failed: false
206 name: 'autorelease-update-submodules-{stream}'
208 ######################
209 # Default parameters #
210 ######################
215 #####################
216 # Job configuration #
217 #####################
219 project-type: freestyle
220 node: centos7-builder-2c-2g
221 disabled: '{disable-job}'
224 - lf-infra-properties:
225 build-days-to-keep: 7
228 - lf-infra-parameters:
229 project: releng/autorelease
232 refspec: 'refs/heads/{branch}'
233 lftools-version: '{lftools-version}'
236 - lf-infra-gerrit-scm:
237 git-url: '$GIT_URL/$GERRIT_PROJECT'
239 refspec: 'refs/heads/{branch}'
240 jenkins-ssh-credential: opendaylight-jenkins-ssh
241 submodule-disable: false
242 submodule-recursive: true
243 submodule-timeout: 10
244 choosing-strategy: default
249 jenkins-ssh-credential: opendaylight-jenkins-ssh
252 - timed: '{obj:cron}'
256 # Fetch latest head of branch
258 git checkout $GERRIT_BRANCH
259 git submodule update --remote
261 - lf-infra-push-gerrit-patch:
263 gerrit-user: 'jenkins-$SILO'
264 gerrit-host: 'git.opendaylight.org'
265 gerrit-topic: 'autorelease-update-submodules'
266 gerrit-commit-message: 'Update submodules to latest HEAD of branch'
273 name: autorelease-update-validate-jobs-{stream}
275 ######################
276 # Default parameters #
277 ######################
282 #####################
283 # Job configuration #
284 #####################
286 project-type: freestyle
287 node: centos7-builder-2c-1g
288 disabled: '{disable-job}'
291 - lf-infra-properties:
292 build-days-to-keep: 7
295 - lf-infra-parameters:
296 project: releng/builder
299 lftools-version: '{lftools-version}'
302 - lf-infra-gerrit-scm:
303 git-url: '$GIT_URL/releng/builder'
305 refspec: 'refs/heads/master'
306 jenkins-ssh-credential: opendaylight-jenkins-ssh
307 submodule-disable: false
308 submodule-recursive: true
309 submodule-timeout: 10
310 choosing-strategy: default
315 server-name: '{gerrit-server-name}'
317 - change-merged-event
318 - comment-added-contains-event:
319 comment-contains-value: remerge$
321 - project-compare-type: ANT
322 project-pattern: '{project}'
324 - branch-compare-type: ANT
325 branch-pattern: '**/{branch}'
333 jenkins-ssh-credential: opendaylight-jenkins-ssh
337 - autorelease-update-project-views
338 - autorelease-update-validate-projects
339 - lf-infra-push-gerrit-patch:
341 gerrit-user: 'jenkins-$SILO'
342 gerrit-host: 'git.opendaylight.org'
343 gerrit-topic: 'autorelease-update-validate-jobs-{stream}'
344 gerrit-commit-message: |
345 'Update validate autorelease projects for {stream}'
346 reviewers-email: 'jenkins-releng@opendaylight.org'
352 name: autorelease-version-bump-{stream}-{mvn-version}-{java-version}
354 #####################
355 # Default variables #
356 #####################
358 mvn-global-settings: global-settings
359 mvn-settings: autorelease-settings
363 #####################
364 # Job configuration #
365 #####################
367 project-type: freestyle
369 disabled: '{disable-job}'
372 - opendaylight-infra-properties:
373 build-days-to-keep: 7
376 - lf-infra-parameters:
377 project: releng/autorelease
380 refspec: 'refs/heads/{branch}'
381 lftools-version: '{lftools-version}'
386 Release that is being version bumped.
387 Eg. Lithium, Beryllium, Boron, Carbon, Carbon-SR1, Carbon-SR2...
392 If BRANCH_CUT is enabled, perform version bump for branch cutting
393 workflow, else perform version bump for simultaneous release
399 If DRY_RUN is enabled modifications are not published to Gerrit
400 and artifacts are not pushed to Nexus. Instead the build will be
401 performed using the goals "clean install".
403 maven-version: '{mvn-version}'
406 - lf-infra-gerrit-scm:
407 git-url: '$GIT_URL/$GERRIT_PROJECT'
409 refspec: 'refs/heads/{branch}'
410 jenkins-ssh-credential: opendaylight-jenkins-ssh
411 submodule-disable: false
412 submodule-recursive: true
413 submodule-timeout: 10
414 choosing-strategy: default
419 jenkins-ssh-credential: opendaylight-jenkins-ssh
423 # force jenkins install of maven version before any shell scripts use it
424 - lf-update-java-alternatives:
425 java-version: "{java-version}"
427 mvn-version: '{mvn-version}'
428 - lf-provide-maven-settings:
429 global-settings-file: '{mvn-global-settings}'
430 settings-file: '{mvn-settings}'
431 - shell: !include-raw-escape:
438 name: 'autorelease-generate-release-notes-{stream}'
440 ######################
441 # Default parameters #
442 ######################
445 gerrit_merge_triggers:
446 - comment-added-contains-event:
447 comment-contains-value: generate-release-notes .+$
449 #####################
450 # Job Configuration #
451 #####################
453 project-type: freestyle
454 node: centos7-builder-2c-8g
455 disabled: '{disable-job}'
458 - lf-infra-properties:
459 build-days-to-keep: 7
462 - lf-infra-parameters:
466 lftools-version: '{lftools-version}'
470 Release to generate release notes for.
471 Eg. Neon-SR1, Fluorine-SR2...
473 - lf-infra-gerrit-scm:
474 git-url: '$GIT_URL/$GERRIT_PROJECT'
475 branch: '$GERRIT_BRANCH'
476 refspec: '$GERRIT_REFSPEC'
477 jenkins-ssh-credential: opendaylight-jenkins-ssh
478 submodule-disable: false
479 submodule-recursive: true
480 submodule-timeout: 10
481 choosing-strategy: default
486 jenkins-ssh-credential: opendaylight-jenkins-ssh
490 server-name: '{gerrit-server-name}'
491 trigger-on: '{obj:gerrit_merge_triggers}'
493 - project-compare-type: ANT
494 project-pattern: '{project}'
496 - branch-compare-type: ANT
497 branch-pattern: '**/{branch}'
501 - autorelease-generate-release-notes
507 name: '{project-name}-validate-autorelease-{stream}'
509 #####################
510 # Default variables #
511 #####################
513 java-version: openjdk8
514 mvn-global-settings: global-settings
515 mvn-settings: autorelease-settings
519 #####################
520 # Job Configuration #
521 #####################
523 project-type: freestyle
524 # Note: This NEEDS to be hardcoded as projects should NOT be allowed to
525 # override the build node.
526 node: centos7-builder-2c-8g
528 jdk: '{java-version}'
529 disabled: '{disable-job}'
532 - lf-infra-properties:
533 build-days-to-keep: 7
536 - lf-infra-parameters:
540 lftools-version: '{lftools-version}'
541 - autorelease-release-tag:
542 release-tag: validate
545 default: '{git-url}/releng/autorelease'
546 description: "Autorelease clone URL"
551 credentials-id: 'opendaylight-jenkins-ssh'
561 - opendaylight-infra-wrappers:
562 build-timeout: '{build-timeout}'
565 - gerrit-trigger-patch-submitted:
566 gerrit-server-name: '{gerrit-server-name}'
574 - autorelease-checkout-gerrit-patch
575 - autorelease-compare-projects
576 - lf-jacoco-nojava-workaround
577 - shell: "./scripts/list-project-dependencies.sh"
578 - autorelease-determine-merge-order
579 - autorelease-generate-release-patches
580 # In a perfect world projects should be releasing separately and we consume them
581 # via a project that pulls the release bits from each project from Nexus.
582 # Keep the patches compatible with that ideal, but apply an edit
583 # to enable building in a single maven reactor afterwards.
584 - autorelease-fix-relative-paths
586 maven-version: '{mvn-version}'
587 pom: validate-pom.xml
589 clean install dependency:tree
592 {opendaylight-infra-mvn-opts}
595 settings: '{mvn-settings}'
597 global-settings: '{mvn-global-settings}'
598 global-settings-type: cfp
600 maven-version: '{mvn-version}'
605 {opendaylight-infra-mvn-opts}
607 - '-Xmx8g -Dmaven.compile.fork=true'
608 settings: '{mvn-settings}'
610 global-settings: '{mvn-global-settings}'
611 global-settings-type: cfp
617 - email-notification:
618 email-recipients: '{email-recipients}'
619 email-prefix: '[autorelease] [{project-name}]'