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-recursive: true
41 choosing-strategy: default
46 jenkins-ssh-credential: opendaylight-jenkins-ssh
49 - shell: !include-raw-escape: branch-cut.sh
55 name: 'autorelease-release-{stream}'
57 ######################
58 # Default parameters #
59 ######################
61 build-node: '{build-node}'
63 java-version: openjdk8
71 project-type: freestyle
76 - lf-infra-properties:
77 build-days-to-keep: 30
81 maven-version: 'mvn35'
82 - lf-infra-parameters:
86 lftools-version: '{lftools-version}'
87 - distribution-karaf-version:
88 karaf-version: '{karaf-version}'
89 - autorelease-release-tag:
90 release-tag: '{stream}'
93 default: '{extra-mvn-opts}'
95 Additional optional Maven Options to pass to the Maven Goals
99 -Dskip.karaf.featureTest=true # To disable karaf SingleFeatureTests
100 --fail-never # NEVER fail the build, regardless of project result
101 --fail-at-end # Only fail the build afterwards; allow all non-impacted builds to continue
103 name: ARCHIVE_ARTIFACTS
104 default: '{archive-artifacts}'
105 description: Artifacts to archive to the logs server.
109 credentials-id: 'opendaylight-jenkins-ssh'
111 refspec: '$GERRIT_REFSPEC'
114 choosing-strategy: default
121 - opendaylight-infra-wrappers:
129 # force jenkins install of maven version before any shell scripts use it
131 mvn-version: '{mvn-version}'
132 - wipe-local-maven-repo
133 - lf-jacoco-nojava-workaround
134 - shell: "./scripts/list-project-dependencies.sh"
135 - autorelease-determine-merge-order
137 autorelease-settings: 'autorelease-settings'
138 global-settings: 'odl-global-settings'
139 - autorelease-generate-release-patches
140 - autorelease-generate-artifact-versions
141 - autorelease-distribute-taglist
142 - distribute-build-url:
143 path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
144 # In a perfect world projects should be releasing separately and we consume them
145 # via a project that pulls the release bits from each project from Nexus.
146 # Keep the patches compatible with that ideal, but apply an edit
147 # to enable building in a single maven reactor afterwards.
148 - autorelease-fix-relative-paths
150 maven-version: 'mvn35'
155 -Pintegrationtests,repoBuild
156 -Dcheckstyle.skip=true
157 -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage
158 {opendaylight-infra-mvn-opts}
160 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
161 settings: 'autorelease-settings'
163 global-settings: 'global-settings'
164 global-settings-type: cfp
165 - autorelease-maven-deploy
166 - autorelease-get-integration-test-variables
167 - autorelease-maven-sources:
168 opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
169 maven-version: 'mvn35'
170 settings: 'autorelease-settings'
171 global-settings: 'global-settings'
172 - autorelease-maven-sources-post-process
178 - opendaylight-infra-notify-status
179 - trigger-parameterized-builds:
180 - project: 'integration-distribution-test-{integration-test}'
181 condition: UNSTABLE_OR_BETTER
182 property-file: variables.jenkins-trigger
183 fail-on-missing: true
184 - project: 'integration-distribution-test-{integration-test}'
186 trigger-with-no-params: true
187 - project: 'packaging-build-rpm-{stream}'
188 condition: UNSTABLE_OR_BETTER
189 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
190 property-file: variables.jenkins-trigger
191 fail-on-missing: true
192 - project: 'packaging-build-deb-{stream}'
193 condition: UNSTABLE_OR_BETTER
194 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
195 property-file: variables.jenkins-trigger
196 fail-on-missing: true
197 # Critical component of the OpenDaylight community
204 - shell: echo '#topic cookies'
205 mark-unstable-if-failed: false
209 name: 'autorelease-update-submodules-{stream}'
211 ######################
212 # Default parameters #
213 ######################
217 #####################
218 # Job configuration #
219 #####################
221 project-type: freestyle
222 node: centos7-builder-2c-2g
225 - lf-infra-properties:
226 build-days-to-keep: 7
229 - lf-infra-parameters:
230 project: releng/autorelease
233 refspec: 'refs/heads/{branch}'
234 lftools-version: '{lftools-version}'
237 - lf-infra-gerrit-scm:
238 git-url: '$GIT_URL/$GERRIT_PROJECT'
240 refspec: 'refs/heads/{branch}'
241 jenkins-ssh-credential: opendaylight-jenkins-ssh
242 submodule-recursive: true
243 choosing-strategy: default
248 jenkins-ssh-credential: opendaylight-jenkins-ssh
251 - timed: '{obj:cron}'
255 # Fetch latest head of branch
257 git checkout $GERRIT_BRANCH
258 git submodule update --remote
260 - lf-infra-push-gerrit-patch:
262 gerrit-user: 'jenkins-$SILO'
263 gerrit-host: 'git.opendaylight.org'
264 gerrit-topic: 'autorelease-update-submodules'
265 gerrit-commit-message: 'Update submodules to latest HEAD of branch'
272 name: autorelease-update-validate-jobs-{stream}
274 ######################
275 # Default parameters #
276 ######################
280 #####################
281 # Job configuration #
282 #####################
284 project-type: freestyle
285 node: centos7-builder-2c-1g
288 - lf-infra-properties:
289 build-days-to-keep: 7
292 - lf-infra-parameters:
293 project: releng/builder
296 lftools-version: '{lftools-version}'
299 - lf-infra-gerrit-scm:
300 git-url: '$GIT_URL/releng/builder'
302 refspec: 'refs/heads/master'
303 jenkins-ssh-credential: opendaylight-jenkins-ssh
304 submodule-recursive: true
305 choosing-strategy: default
310 server-name: '{gerrit-server-name}'
312 - change-merged-event
313 - comment-added-contains-event:
314 comment-contains-value: remerge$
316 - project-compare-type: ANT
317 project-pattern: '{project}'
319 - branch-compare-type: ANT
320 branch-pattern: '**/{branch}'
328 jenkins-ssh-credential: opendaylight-jenkins-ssh
332 - autorelease-update-project-views
333 - autorelease-update-validate-projects
334 - lf-infra-push-gerrit-patch:
336 gerrit-user: 'jenkins-$SILO'
337 gerrit-host: 'git.opendaylight.org'
338 gerrit-topic: 'autorelease-update-validate-jobs-{stream}'
339 gerrit-commit-message: |
340 'Update validate autorelease projects for {stream}'
341 reviewers-email: 'jenkins-releng@opendaylight.org'
347 name: autorelease-version-bump-{stream}
348 project-type: freestyle
352 - opendaylight-infra-properties:
353 build-days-to-keep: 7
356 - lf-infra-parameters:
357 project: releng/autorelease
360 refspec: 'refs/heads/{branch}'
361 lftools-version: '{lftools-version}'
366 Release that is being version bumped.
367 Eg. Lithium, Beryllium, Boron, Carbon, Carbon-SR1, Carbon-SR2...
372 If BRANCH_CUT is enabled, perform version bump for branch cutting
373 workflow, else perform version bump for simultaneous release
379 If DRY_RUN is enabled modifications are not published to Gerrit
380 and artifacts are not pushed to Nexus. Instead the build will be
381 performed using the goals "clean install".
386 - lf-infra-gerrit-scm:
387 git-url: '$GIT_URL/$GERRIT_PROJECT'
389 refspec: 'refs/heads/{branch}'
390 jenkins-ssh-credential: opendaylight-jenkins-ssh
391 submodule-recursive: true
392 choosing-strategy: default
397 jenkins-ssh-credential: opendaylight-jenkins-ssh
401 # force jenkins install of maven version before any shell scripts use it
405 settings: autorelease-settings
407 global-settings: global-settings
408 global-settings-type: cfp
410 - shell: !include-raw-escape:
417 name: 'autorelease-generate-release-notes-{stream}'
419 ######################
420 # Default parameters #
421 ######################
423 gerrit_merge_triggers:
424 - comment-added-contains-event:
425 comment-contains-value: generate-release-notes .+$
427 #####################
428 # Job Configuration #
429 #####################
431 project-type: freestyle
432 node: centos7-builder-2c-8g
435 - lf-infra-properties:
436 build-days-to-keep: 7
439 - lf-infra-parameters:
443 lftools-version: '{lftools-version}'
446 description: Release to generate release notes for.
449 - lf-infra-gerrit-scm:
450 git-url: '$GIT_URL/$GERRIT_PROJECT'
451 branch: '$GERRIT_BRANCH'
452 refspec: '$GERRIT_REFSPEC'
453 jenkins-ssh-credential: opendaylight-jenkins-ssh
454 submodule-recursive: true
455 choosing-strategy: default
460 jenkins-ssh-credential: opendaylight-jenkins-ssh
464 server-name: '{gerrit-server-name}'
465 trigger-on: '{obj:gerrit_merge_triggers}'
467 - project-compare-type: ANT
468 project-pattern: '{project}'
470 - branch-compare-type: ANT
471 branch-pattern: '**/{branch}'
475 - autorelease-generate-release-notes
481 name: '{project-name}-validate-autorelease-{stream}'
487 java-version: openjdk8
489 #####################
490 # Job Configuration #
491 #####################
494 project-type: freestyle
495 # Note: This NEEDS to be hardcoded as projects should NOT be allowed to
496 # override the build node.
497 node: centos7-builder-2c-8g
499 jdk: '{java-version}'
502 - lf-infra-properties:
503 build-days-to-keep: 7
506 - lf-infra-parameters:
510 lftools-version: '{lftools-version}'
511 - autorelease-release-tag:
512 release-tag: validate
515 default: '{git-url}/releng/autorelease'
516 description: "Autorelease clone URL"
521 credentials-id: 'opendaylight-jenkins-ssh'
531 - opendaylight-infra-wrappers:
532 build-timeout: '{build-timeout}'
535 - gerrit-trigger-patch-submitted:
536 gerrit-server-name: '{gerrit-server-name}'
544 - autorelease-checkout-gerrit-patch
545 - autorelease-compare-projects
546 - lf-jacoco-nojava-workaround
547 - shell: "./scripts/list-project-dependencies.sh"
548 - autorelease-determine-merge-order
549 - autorelease-generate-release-patches
550 # In a perfect world projects should be releasing separately and we consume them
551 # via a project that pulls the release bits from each project from Nexus.
552 # Keep the patches compatible with that ideal, but apply an edit
553 # to enable building in a single maven reactor afterwards.
554 - autorelease-fix-relative-paths
557 pom: validate-pom.xml
559 clean install dependency:tree
562 {opendaylight-infra-mvn-opts}
565 settings: autorelease-settings
567 global-settings: global-settings
568 global-settings-type: cfp
575 {opendaylight-infra-mvn-opts}
577 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
578 settings: autorelease-settings
580 global-settings: global-settings
581 global-settings-type: cfp
587 - email-notification:
588 email-recipients: '{email-recipients}'
589 email-prefix: '[autorelease] [{project-name}]'