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 mvn-global-settings: global-settings
66 mvn-goals: clean deploy
67 mvn-opts: "-Xmx8g -Dmaven.compile.fork=true"
69 mvn-settings: autorelease-settings
78 project-type: freestyle
80 disabled: "{disable-job}"
83 - lf-infra-properties:
84 build-days-to-keep: 30
87 - lf-infra-parameters:
91 lftools-version: "{lftools-version}"
92 - lf-infra-maven-parameters:
93 mvn-opts: "{mvn-opts}"
94 mvn-params: "{mvn-params}"
95 mvn-version: "{mvn-version}"
96 - distribution-karaf-version:
97 karaf-version: "{karaf-version}"
98 - autorelease-release-tag:
99 release-tag: "{stream}"
101 name: ARCHIVE_ARTIFACTS
102 default: "{archive-artifacts}"
103 description: Artifacts to archive to the logs server.
105 name: STAGING_PROFILE_ID
106 default: "{staging-profile-id}"
107 description: Nexus staging profile ID.
111 credentials-id: "opendaylight-jenkins-ssh"
113 refspec: "$GERRIT_REFSPEC"
116 choosing-strategy: default
123 - opendaylight-infra-wrappers:
131 # force jenkins install of maven version before any shell scripts use it
133 mvn-version: "{mvn-version}"
134 - wipe-local-maven-repo
135 - lf-jacoco-nojava-workaround
136 - shell: "./scripts/list-project-dependencies.sh"
137 - autorelease-determine-merge-order
138 - lf-provide-maven-settings:
139 global-settings-file: "{mvn-global-settings}"
140 settings-file: "{mvn-settings}"
141 - autorelease-generate-release-patches
142 - autorelease-generate-artifact-versions
143 - lf-update-java-alternatives:
144 java-version: "{java-version}"
145 - autorelease-distribute-taglist
146 - distribute-build-url:
147 path: "integration/distribution/$KARAF_ARTIFACT/src/main/assembly"
148 # In a perfect world projects should be releasing separately and we consume them
149 # via a project that pulls the release bits from each project from Nexus.
150 # Keep the patches compatible with that ideal, but apply an edit
151 # to enable building in a single maven reactor afterwards.
152 - autorelease-fix-relative-paths
154 mvn-goals: "{mvn-goals}"
156 sign-artifacts: "{sign-artifacts}"
157 sign-dir: "$WORKSPACE/m2repo"
160 mvn-global-settings: "{mvn-global-settings}"
161 mvn-settings: "{mvn-settings}"
162 mvn-staging-id: "{mvn-staging-id}"
163 - autorelease-get-integration-test-variables
164 - autorelease-maven-sources:
165 opendaylight-infra-mvn-opts: "{opendaylight-infra-mvn-opts}"
166 maven-version: "{mvn-version}"
167 settings: "{mvn-settings}"
168 global-settings: "{mvn-global-settings}"
174 - opendaylight-infra-notify-status
175 - trigger-parameterized-builds:
176 - project: "integration-distribution-test-{integration-test}"
177 condition: UNSTABLE_OR_BETTER
178 property-file: variables.jenkins-trigger
179 fail-on-missing: true
180 - project: "integration-distribution-test-{integration-test}"
182 trigger-with-no-params: true
183 # Critical component of the OpenDaylight community
190 - shell: echo '#topic cookies'
191 mark-unstable-if-failed: false
195 name: "autorelease-update-submodules-{stream}"
197 ######################
198 # Default parameters #
199 ######################
204 #####################
205 # Job configuration #
206 #####################
208 project-type: freestyle
209 node: centos7-builder-2c-2g
210 disabled: "{disable-job}"
213 - lf-infra-properties:
214 build-days-to-keep: 7
217 - lf-infra-parameters:
218 project: releng/autorelease
221 refspec: "refs/heads/{branch}"
222 lftools-version: "{lftools-version}"
225 - lf-infra-gerrit-scm:
226 git-url: "$GIT_URL/$GERRIT_PROJECT"
228 refspec: "refs/heads/{branch}"
229 jenkins-ssh-credential: opendaylight-jenkins-ssh
230 submodule-disable: false
231 submodule-recursive: true
232 submodule-timeout: 10
233 choosing-strategy: default
238 jenkins-ssh-credential: opendaylight-jenkins-ssh
241 - timed: "{obj:cron}"
245 # Fetch latest head of branch
247 git checkout $GERRIT_BRANCH
248 git submodule update --remote
250 - lf-infra-push-gerrit-patch:
252 gerrit-user: "jenkins-$SILO"
253 gerrit-host: "git.opendaylight.org"
254 gerrit-topic: "autorelease-update-submodules"
255 gerrit-commit-message: "Update submodules to latest HEAD of branch"
256 reviewers-email: "jenkins-releng@opendaylight.org"
262 name: autorelease-update-validate-jobs-{stream}
264 ######################
265 # Default parameters #
266 ######################
271 #####################
272 # Job configuration #
273 #####################
275 project-type: freestyle
276 node: centos7-builder-2c-1g
277 disabled: "{disable-job}"
280 - lf-infra-properties:
281 build-days-to-keep: 7
284 - lf-infra-parameters:
285 project: releng/builder
288 lftools-version: "{lftools-version}"
291 - lf-infra-gerrit-scm:
292 git-url: "$GIT_URL/releng/builder"
294 refspec: "refs/heads/master"
295 jenkins-ssh-credential: opendaylight-jenkins-ssh
296 submodule-disable: false
297 submodule-recursive: true
298 submodule-timeout: 10
299 choosing-strategy: default
304 server-name: "{gerrit-server-name}"
306 - change-merged-event
307 - comment-added-contains-event:
308 comment-contains-value: remerge$
310 - project-compare-type: ANT
311 project-pattern: "{project}"
313 - branch-compare-type: ANT
314 branch-pattern: "**/{branch}"
322 jenkins-ssh-credential: opendaylight-jenkins-ssh
326 - autorelease-update-project-views
327 - autorelease-update-validate-projects
328 - lf-infra-push-gerrit-patch:
330 gerrit-user: "jenkins-$SILO"
331 gerrit-host: "git.opendaylight.org"
332 gerrit-topic: "autorelease-update-validate-jobs-{stream}"
333 gerrit-commit-message: "Update validate-ar jobs for {stream}"
334 reviewers-email: "jenkins-releng@opendaylight.org"
340 name: autorelease-version-bump-{stream}-{mvn-version}-{java-version}
342 #####################
343 # Default variables #
344 #####################
346 mvn-global-settings: global-settings
347 mvn-settings: autorelease-settings
351 #####################
352 # Job configuration #
353 #####################
355 project-type: freestyle
357 disabled: "{disable-job}"
360 - opendaylight-infra-properties:
361 build-days-to-keep: 7
364 - lf-infra-parameters:
365 project: releng/autorelease
368 refspec: "refs/heads/{branch}"
369 lftools-version: "{lftools-version}"
374 Release that is being version bumped.
375 Eg. Lithium, Beryllium, Boron, Carbon, Carbon-SR1, Carbon-SR2...
380 If BRANCH_CUT is enabled, perform version bump for branch cutting
381 workflow, else perform version bump for simultaneous release
387 If DRY_RUN is enabled modifications are not published to Gerrit
388 and artifacts are not pushed to Nexus. Instead the build will be
389 performed using the goals "clean install".
391 maven-version: "{mvn-version}"
394 - lf-infra-gerrit-scm:
395 git-url: "$GIT_URL/$GERRIT_PROJECT"
397 refspec: "refs/heads/{branch}"
398 jenkins-ssh-credential: opendaylight-jenkins-ssh
399 submodule-disable: false
400 submodule-recursive: true
401 submodule-timeout: 10
402 choosing-strategy: default
407 jenkins-ssh-credential: opendaylight-jenkins-ssh
411 # force jenkins install of maven version before any shell scripts use it
412 - lf-update-java-alternatives:
413 java-version: "{java-version}"
415 mvn-version: "{mvn-version}"
416 - lf-provide-maven-settings:
417 global-settings-file: "{mvn-global-settings}"
418 settings-file: "{mvn-settings}"
419 - shell: !include-raw-escape:
426 name: "autorelease-generate-release-notes-{stream}"
428 ######################
429 # Default parameters #
430 ######################
432 build-node: "centos8-builder-2c-8g"
434 gerrit_merge_triggers:
435 - comment-added-contains-event:
436 comment-contains-value: generate-release-notes .+$
438 #####################
439 # Job Configuration #
440 #####################
442 project-type: freestyle
444 disabled: "{disable-job}"
447 - lf-infra-properties:
448 build-days-to-keep: 7
451 - lf-infra-parameters:
455 lftools-version: "{lftools-version}"
459 Release to generate release notes for.
460 Eg. Potassium-SR1, Calcium-SR1 ...
462 - lf-infra-gerrit-scm:
463 git-url: "$GIT_URL/$GERRIT_PROJECT"
464 branch: "$GERRIT_BRANCH"
465 refspec: "$GERRIT_REFSPEC"
466 jenkins-ssh-credential: opendaylight-jenkins-ssh
467 submodule-disable: false
468 submodule-recursive: true
469 submodule-timeout: 10
470 choosing-strategy: default
475 jenkins-ssh-credential: opendaylight-jenkins-ssh
479 server-name: "{gerrit-server-name}"
480 trigger-on: "{obj:gerrit_merge_triggers}"
482 - project-compare-type: ANT
483 project-pattern: "{project}"
485 - branch-compare-type: ANT
486 branch-pattern: "**/{branch}"
490 - autorelease-generate-release-notes
496 name: "{project-name}-validate-autorelease-{stream}"
498 #####################
499 # Default variables #
500 #####################
502 java-version: openjdk17
503 mvn-global-settings: global-settings
504 mvn-settings: autorelease-settings
508 #####################
509 # Job Configuration #
510 #####################
512 project-type: freestyle
513 # Note: This NEEDS to be hardcoded as projects should NOT be allowed to
514 # override the build node.
515 node: centos8-builder-2c-8g
517 jdk: "{java-version}"
518 disabled: "{disable-job}"
521 - lf-infra-properties:
522 build-days-to-keep: 7
525 - lf-infra-parameters:
529 lftools-version: "{lftools-version}"
530 - autorelease-release-tag:
531 release-tag: validate
534 default: "{git-url}/releng/autorelease"
535 description: "Autorelease clone URL"
540 credentials-id: "opendaylight-jenkins-ssh"
550 - opendaylight-infra-wrappers:
551 build-timeout: "{build-timeout}"
554 - gerrit-trigger-patch-submitted:
555 gerrit-server-name: "{gerrit-server-name}"
563 - lf-update-java-alternatives:
564 java-version: "{java-version}"
565 - autorelease-checkout-gerrit-patch
566 - lf-jacoco-nojava-workaround
567 - shell: "./scripts/list-project-dependencies.sh"
568 - autorelease-determine-merge-order
569 - autorelease-generate-release-patches
570 # In a perfect world projects should be releasing separately and we consume them
571 # via a project that pulls the release bits from each project from Nexus.
572 # Keep the patches compatible with that ideal, but apply an edit
573 # to enable building in a single maven reactor afterwards.
574 - autorelease-fix-relative-paths
576 maven-version: "{mvn-version}"
577 pom: validate-pom.xml
579 clean install dependency:tree
582 {opendaylight-infra-mvn-opts}
585 settings: "{mvn-settings}"
587 global-settings: "{mvn-global-settings}"
588 global-settings-type: cfp
590 maven-version: "{mvn-version}"
595 {opendaylight-infra-mvn-opts}
597 - "-Xmx8g -Dmaven.compile.fork=true"
598 settings: "{mvn-settings}"
600 global-settings: "{mvn-global-settings}"
601 global-settings-type: cfp
607 - email-notification:
608 email-recipients: "{email-recipients}"
609 email-prefix: "[autorelease] [{project-name}]"