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
42 choosing-strategy: default
47 jenkins-ssh-credential: opendaylight-jenkins-ssh
50 - shell: !include-raw-escape: branch-cut.sh
56 name: 'autorelease-release-{stream}-{mvn-version}-{java-version}'
58 ######################
59 # Default parameters #
60 ######################
62 build-node: '{build-node}'
64 java-version: '{java-version}'
65 mvn-global-settings: global-settings
66 mvn-goals: clean deploy
67 mvn-opts: '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
69 mvn-settings: autorelease-settings
73 ossrh-profile-id: 6386ebbbf3a563
80 project-type: freestyle
82 disabled: '{disable-job}'
85 - lf-infra-properties:
86 build-days-to-keep: 30
89 - lf-infra-parameters:
93 lftools-version: '{lftools-version}'
94 - lf-infra-maven-parameters:
95 mvn-opts: '{mvn-opts}'
96 mvn-params: '{mvn-params}'
97 mvn-version: '{mvn-version}'
98 - distribution-karaf-version:
99 karaf-version: '{karaf-version}'
100 - autorelease-release-tag:
101 release-tag: '{stream}'
103 name: ARCHIVE_ARTIFACTS
104 default: '{archive-artifacts}'
105 description: Artifacts to archive to the logs server.
107 name: STAGING_PROFILE_ID
108 default: '{staging-profile-id}'
109 description: Nexus staging profile ID.
113 credentials-id: 'opendaylight-jenkins-ssh'
115 refspec: '$GERRIT_REFSPEC'
118 choosing-strategy: default
125 - opendaylight-infra-wrappers:
133 # force jenkins install of maven version before any shell scripts use it
135 mvn-version: '{mvn-version}'
136 - wipe-local-maven-repo
137 - lf-jacoco-nojava-workaround
138 - shell: "./scripts/list-project-dependencies.sh"
139 - autorelease-determine-merge-order
140 - lf-provide-maven-settings:
141 global-settings-file: '{mvn-global-settings}'
142 settings-file: '{mvn-settings}'
143 - autorelease-generate-release-patches
144 - autorelease-generate-artifact-versions
145 - lf-update-java-alternatives:
146 java-version: '{java-version}'
147 - autorelease-distribute-taglist
148 - distribute-build-url:
149 path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
150 # In a perfect world projects should be releasing separately and we consume them
151 # via a project that pulls the release bits from each project from Nexus.
152 # Keep the patches compatible with that ideal, but apply an edit
153 # to enable building in a single maven reactor afterwards.
154 - autorelease-fix-relative-paths
156 mvn-goals: '{mvn-goals}'
158 sign-artifacts: '{sign-artifacts}'
159 sign-dir: '$WORKSPACE/m2repo'
162 mvn-global-settings: '{mvn-global-settings}'
163 mvn-settings: '{mvn-settings}'
164 mvn-staging-id: '{mvn-staging-id}'
166 mvn-central: '{mvn-central}'
167 mvn-global-settings: '{mvn-global-settings}'
168 mvn-settings: '{mvn-settings}'
169 ossrh-profile-id: '{ossrh-profile-id}'
170 - autorelease-get-integration-test-variables
171 - autorelease-maven-sources:
172 opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
173 maven-version: '{mvn-version}'
174 settings: '{mvn-settings}'
175 global-settings: '{mvn-global-settings}'
181 - opendaylight-infra-notify-status
182 - trigger-parameterized-builds:
183 - project: 'integration-distribution-test-{integration-test}'
184 condition: UNSTABLE_OR_BETTER
185 property-file: variables.jenkins-trigger
186 fail-on-missing: true
187 - project: 'integration-distribution-test-{integration-test}'
189 trigger-with-no-params: true
190 - project: 'packaging-build-rpm-{stream}'
191 condition: UNSTABLE_OR_BETTER
192 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
193 property-file: variables.jenkins-trigger
194 fail-on-missing: true
195 - project: 'packaging-build-deb-{stream}'
196 condition: UNSTABLE_OR_BETTER
197 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
198 property-file: variables.jenkins-trigger
199 fail-on-missing: true
200 # Critical component of the OpenDaylight community
207 - shell: echo '#topic cookies'
208 mark-unstable-if-failed: false
212 name: 'autorelease-update-submodules-{stream}'
214 ######################
215 # Default parameters #
216 ######################
221 #####################
222 # Job configuration #
223 #####################
225 project-type: freestyle
226 node: centos7-builder-2c-2g
227 disabled: '{disable-job}'
230 - lf-infra-properties:
231 build-days-to-keep: 7
234 - lf-infra-parameters:
235 project: releng/autorelease
238 refspec: 'refs/heads/{branch}'
239 lftools-version: '{lftools-version}'
242 - lf-infra-gerrit-scm:
243 git-url: '$GIT_URL/$GERRIT_PROJECT'
245 refspec: 'refs/heads/{branch}'
246 jenkins-ssh-credential: opendaylight-jenkins-ssh
247 submodule-recursive: true
248 submodule-timeout: 10
249 choosing-strategy: default
254 jenkins-ssh-credential: opendaylight-jenkins-ssh
257 - timed: '{obj:cron}'
261 # Fetch latest head of branch
263 git checkout $GERRIT_BRANCH
264 git submodule update --remote
266 - lf-infra-push-gerrit-patch:
268 gerrit-user: 'jenkins-$SILO'
269 gerrit-host: 'git.opendaylight.org'
270 gerrit-topic: 'autorelease-update-submodules'
271 gerrit-commit-message: 'Update submodules to latest HEAD of branch'
278 name: autorelease-update-validate-jobs-{stream}
280 ######################
281 # Default parameters #
282 ######################
287 #####################
288 # Job configuration #
289 #####################
291 project-type: freestyle
292 node: centos7-builder-2c-1g
293 disabled: '{disable-job}'
296 - lf-infra-properties:
297 build-days-to-keep: 7
300 - lf-infra-parameters:
301 project: releng/builder
304 lftools-version: '{lftools-version}'
307 - lf-infra-gerrit-scm:
308 git-url: '$GIT_URL/releng/builder'
310 refspec: 'refs/heads/master'
311 jenkins-ssh-credential: opendaylight-jenkins-ssh
312 submodule-recursive: true
313 submodule-timeout: 10
314 choosing-strategy: default
319 server-name: '{gerrit-server-name}'
321 - change-merged-event
322 - comment-added-contains-event:
323 comment-contains-value: remerge$
325 - project-compare-type: ANT
326 project-pattern: '{project}'
328 - branch-compare-type: ANT
329 branch-pattern: '**/{branch}'
337 jenkins-ssh-credential: opendaylight-jenkins-ssh
341 - autorelease-update-project-views
342 - autorelease-update-validate-projects
343 - lf-infra-push-gerrit-patch:
345 gerrit-user: 'jenkins-$SILO'
346 gerrit-host: 'git.opendaylight.org'
347 gerrit-topic: 'autorelease-update-validate-jobs-{stream}'
348 gerrit-commit-message: |
349 'Update validate autorelease projects for {stream}'
350 reviewers-email: 'jenkins-releng@opendaylight.org'
356 name: autorelease-version-bump-{stream}
358 #####################
359 # Default variables #
360 #####################
362 mvn-global-settings: global-settings
363 mvn-settings: autorelease-settings
367 #####################
368 # Job configuration #
369 #####################
371 project-type: freestyle
373 disabled: '{disable-job}'
376 - opendaylight-infra-properties:
377 build-days-to-keep: 7
380 - lf-infra-parameters:
381 project: releng/autorelease
384 refspec: 'refs/heads/{branch}'
385 lftools-version: '{lftools-version}'
390 Release that is being version bumped.
391 Eg. Lithium, Beryllium, Boron, Carbon, Carbon-SR1, Carbon-SR2...
396 If BRANCH_CUT is enabled, perform version bump for branch cutting
397 workflow, else perform version bump for simultaneous release
403 If DRY_RUN is enabled modifications are not published to Gerrit
404 and artifacts are not pushed to Nexus. Instead the build will be
405 performed using the goals "clean install".
407 maven-version: '{mvn-version}'
410 - lf-infra-gerrit-scm:
411 git-url: '$GIT_URL/$GERRIT_PROJECT'
413 refspec: 'refs/heads/{branch}'
414 jenkins-ssh-credential: opendaylight-jenkins-ssh
415 submodule-recursive: true
416 submodule-timeout: 10
417 choosing-strategy: default
422 jenkins-ssh-credential: opendaylight-jenkins-ssh
426 # force jenkins install of maven version before any shell scripts use it
428 mvn-version: '{mvn-version}'
429 - lf-provide-maven-settings:
430 global-settings-file: '{mvn-global-settings}'
431 settings-file: '{mvn-settings}'
432 - shell: !include-raw-escape:
439 name: 'autorelease-generate-release-notes-{stream}'
441 ######################
442 # Default parameters #
443 ######################
446 gerrit_merge_triggers:
447 - comment-added-contains-event:
448 comment-contains-value: generate-release-notes .+$
450 #####################
451 # Job Configuration #
452 #####################
454 project-type: freestyle
455 node: centos7-builder-2c-8g
456 disabled: '{disable-job}'
459 - lf-infra-properties:
460 build-days-to-keep: 7
463 - lf-infra-parameters:
467 lftools-version: '{lftools-version}'
471 Release to generate release notes for.
472 Eg. Oxygen-SR1, Fluorine-SR2...
474 - lf-infra-gerrit-scm:
475 git-url: '$GIT_URL/$GERRIT_PROJECT'
476 branch: '$GERRIT_BRANCH'
477 refspec: '$GERRIT_REFSPEC'
478 jenkins-ssh-credential: opendaylight-jenkins-ssh
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 -XX:MaxPermSize=1024m -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}]'