2 # Autorelease build jobs
4 name: 'autorelease-release-{stream}'
6 project-type: freestyle
7 node: centos7-autorelease-4c-16g
11 # Default variable values
16 - lf-infra-properties:
17 build-days-to-keep: 30
21 maven-version: 'mvn33'
22 - lf-infra-parameters:
26 lftools-version: '{lftools-version}'
27 - distribution-karaf-version:
28 karaf-version: '{karaf-version}'
29 - autorelease-release-tag:
30 release-tag: '{next-release-tag}'
33 default: '{extra-mvn-opts}'
35 Additional optional Maven Options to pass to the Maven Goals
39 -Dskip.karaf.featureTest=true # To disable karaf SingleFeatureTests
40 --fail-never # NEVER fail the build, regardless of project result
41 --fail-at-end # Only fail the build afterwards; allow all non-impacted builds to continue
43 name: ARCHIVE_ARTIFACTS
44 default: '{archive-artifacts}'
45 description: Artifacts to archive to the logs server.
49 credentials-id: 'opendaylight-jenkins-ssh'
51 refspec: '$GERRIT_REFSPEC'
54 choosing-strategy: default
61 - opendaylight-infra-wrappers:
68 # force jenkins install of maven version before any shell scripts use it
70 mvn-version: '{mvn-version}'
71 - wipe-local-maven-repo
72 - jacoco-nojava-workaround
73 - shell: "./scripts/list-project-dependencies.sh"
74 - autorelease-determine-merge-order
76 autorelease-settings: 'autorelease-settings'
77 global-settings: 'odl-global-settings'
78 - autorelease-generate-release-patches
79 - autorelease-generate-artifact-versions
80 - autorelease-distribute-taglist
81 - distribute-build-url:
82 path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
83 # In a perfect world projects should be releasing separately and we consume them
84 # via a project that pulls the release bits from each project from Nexus.
85 # Keep the patches compatible with that ideal, but apply an edit
86 # to enable building in a single maven reactor afterwards.
87 - autorelease-fix-relative-paths
89 maven-version: 'mvn33'
94 -Pintegrationtests,docs,repoBuild
95 -Dcheckstyle.skip=true
96 -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage
97 {opendaylight-infra-mvn-opts}
99 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
100 settings: 'autorelease-settings'
102 global-settings: 'global-settings'
103 global-settings-type: cfp
104 - autorelease-maven-deploy
105 - autorelease-get-integration-test-variables
106 - autorelease-maven-sources:
107 opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
108 maven-version: 'mvn33'
109 settings: 'autorelease-settings'
110 global-settings: 'global-settings'
111 - autorelease-maven-sources-post-process
117 - opendaylight-infra-notify-status
118 - trigger-parameterized-builds:
119 - project: 'integration-distribution-test-{integration-test}'
120 condition: UNSTABLE_OR_BETTER
121 property-file: variables.jenkins-trigger
122 fail-on-missing: true
123 - project: 'integration-distribution-test-{integration-test}'
125 trigger-with-no-params: true
126 - project: 'integration-sanity-test-{integration-test}'
127 condition: UNSTABLE_OR_BETTER
128 property-file: variables.jenkins-trigger
129 fail-on-missing: true
130 - project: 'integration-sanity-test-{integration-test}'
132 trigger-with-no-params: true
133 - project: 'packaging-build-rpm-{stream}'
134 condition: UNSTABLE_OR_BETTER
135 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
136 property-file: variables.jenkins-trigger
137 fail-on-missing: true
138 - project: 'packaging-build-deb-{stream}'
139 condition: UNSTABLE_OR_BETTER
140 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
141 property-file: variables.jenkins-trigger
142 fail-on-missing: true
146 name: autorelease-update-validate-jobs-{stream}
147 project-type: freestyle
148 node: centos7-java-builder-2c-4g
151 - lf-infra-properties:
152 build-days-to-keep: 7
155 - lf-infra-parameters:
156 project: releng/builder
159 lftools-version: '{lftools-version}'
162 - lf-infra-gerrit-scm:
163 git-url: '$GIT_URL/releng/builder'
165 refspec: 'refs/heads/master'
166 jenkins-ssh-credential: opendaylight-jenkins-ssh
167 submodule-recursive: true
168 choosing-strategy: default
172 server-name: '{gerrit-server-name}'
174 - change-merged-event
175 - comment-added-contains-event:
176 comment-contains-value: remerge$
178 - project-compare-type: ANT
179 project-pattern: '{project}'
181 - branch-compare-type: ANT
182 branch-pattern: '**/{branch}'
190 jenkins-ssh-credential: opendaylight-jenkins-ssh
193 - shell: !include-raw-escape:
194 - update-validate-autorelease-projects.sh
195 - opendaylight-infra-push-gerrit-patch:
196 project: 'releng/builder'
197 gerrit-topic: 'autorelease-update-validate-jobs-{stream}'
198 gerrit-commit-message: |
199 Update validate autorelease projects for {stream}
205 name: autorelease-version-bump-{stream}
206 project-type: freestyle
207 node: centos7-autorelease-4c-16g
210 - opendaylight-infra-properties:
211 build-days-to-keep: 7
214 - lf-infra-parameters:
215 project: releng/autorelease
218 refspec: 'refs/heads/{branch}'
219 lftools-version: '{lftools-version}'
222 default: '{next-release-tag}'
224 Release that is being version bumped.
225 Eg. Lithium, Beryllium, Boron, Carbon, Carbon-SR1, Carbon-SR2...
230 If DRY_RUN is enabled modifications are not published to Gerrit.
235 - lf-infra-gerrit-scm:
236 git-url: '$GIT_URL/$GERRIT_PROJECT'
238 refspec: 'refs/heads/{branch}'
239 jenkins-ssh-credential: opendaylight-jenkins-ssh
240 submodule-recursive: true
241 choosing-strategy: default
246 jenkins-ssh-credential: opendaylight-jenkins-ssh
249 # force jenkins install of maven version before any shell scripts use it
253 settings: autorelease-settings
255 global-settings: global-settings
256 global-settings-type: cfp
258 - shell: !include-raw-escape:
259 - ../global-jjb/shell/lftools-install.sh
266 name: 'autorelease-generate-release-notes-{stream}'
268 ######################
269 # Default parameters #
270 ######################
272 gerrit_merge_triggers:
273 - comment-added-contains-event:
274 comment-contains-value: generate-release-notes .+$
276 #####################
277 # Job Configuration #
278 #####################
280 project-type: freestyle
281 node: centos7-java-builder-2c-4g
284 - lf-infra-properties:
285 build-days-to-keep: 7
288 - lf-infra-parameters:
292 lftools-version: '{lftools-version}'
295 description: Release to generate release notes for.
298 - lf-infra-gerrit-scm:
299 git-url: '$GIT_URL/$GERRIT_PROJECT'
300 branch: '$GERRIT_BRANCH'
301 refspec: '$GERRIT_REFSPEC'
302 jenkins-ssh-credential: opendaylight-jenkins-ssh
303 submodule-recursive: true
304 choosing-strategy: default
309 jenkins-ssh-credential: opendaylight-jenkins-ssh
313 server-name: '{gerrit-server-name}'
314 trigger-on: '{obj:gerrit_merge_triggers}'
316 - project-compare-type: ANT
317 project-pattern: '{project}'
319 - branch-compare-type: ANT
320 branch-pattern: '**/{branch}'
323 - autorelease-generate-release-notes
329 name: '{project-name}-validate-autorelease-{stream}'
332 project-type: freestyle
338 - lf-infra-properties:
339 build-days-to-keep: 7
342 - lf-infra-parameters:
346 lftools-version: '{lftools-version}'
347 - autorelease-release-tag:
348 release-tag: validate
351 default: '{git-url}/releng/autorelease'
352 description: "Autorelease clone URL"
357 credentials-id: 'opendaylight-jenkins-ssh'
367 - opendaylight-infra-wrappers:
368 build-timeout: '{build-timeout}'
371 - gerrit-trigger-patch-submitted:
372 server: '{server-name}'
378 - autorelease-checkout-gerrit-patch
379 - jacoco-nojava-workaround
380 - autorelease-generate-release-patches
381 # In a perfect world projects should be releasing separately and we consume them
382 # via a project that pulls the release bits from each project from Nexus.
383 # Keep the patches compatible with that ideal, but apply an edit
384 # to enable building in a single maven reactor afterwards.
385 - autorelease-fix-relative-paths
388 pom: validate-pom.xml
390 clean install dependency:tree
393 {opendaylight-infra-mvn-opts}
396 settings: autorelease-settings
398 global-settings: global-settings
399 global-settings-type: cfp
406 {opendaylight-infra-mvn-opts}
408 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
409 settings: autorelease-settings
411 global-settings: global-settings
412 global-settings-type: cfp
415 - email-notification:
416 email-recipients: '{email-recipients}'
417 email-prefix: '[autorelease] [{project-name}]'