2 # Autorelease build jobs
4 name: 'autorelease-release-{stream}'
10 java-version: openjdk8
18 project-type: freestyle
19 node: centos7-builder-4c-16g
24 - lf-infra-properties:
25 build-days-to-keep: 30
29 maven-version: 'mvn33'
30 - lf-infra-parameters:
34 lftools-version: '{lftools-version}'
35 - distribution-karaf-version:
36 karaf-version: '{karaf-version}'
37 - autorelease-release-tag:
38 release-tag: '{next-release-tag}'
41 default: '{extra-mvn-opts}'
43 Additional optional Maven Options to pass to the Maven Goals
47 -Dskip.karaf.featureTest=true # To disable karaf SingleFeatureTests
48 --fail-never # NEVER fail the build, regardless of project result
49 --fail-at-end # Only fail the build afterwards; allow all non-impacted builds to continue
51 name: ARCHIVE_ARTIFACTS
52 default: '{archive-artifacts}'
53 description: Artifacts to archive to the logs server.
57 credentials-id: 'opendaylight-jenkins-ssh'
59 refspec: '$GERRIT_REFSPEC'
62 choosing-strategy: default
69 - opendaylight-infra-wrappers:
76 # force jenkins install of maven version before any shell scripts use it
78 mvn-version: '{mvn-version}'
79 - wipe-local-maven-repo
80 - jacoco-nojava-workaround
81 - shell: "./scripts/list-project-dependencies.sh"
82 - autorelease-determine-merge-order
84 autorelease-settings: 'autorelease-settings'
85 global-settings: 'odl-global-settings'
86 - autorelease-generate-release-patches
87 - autorelease-generate-artifact-versions
88 - autorelease-distribute-taglist
89 - distribute-build-url:
90 path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
91 # In a perfect world projects should be releasing separately and we consume them
92 # via a project that pulls the release bits from each project from Nexus.
93 # Keep the patches compatible with that ideal, but apply an edit
94 # to enable building in a single maven reactor afterwards.
95 - autorelease-fix-relative-paths
97 maven-version: 'mvn33'
102 -Pintegrationtests,docs,repoBuild
103 -Dcheckstyle.skip=true
104 -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage
105 {opendaylight-infra-mvn-opts}
107 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
108 settings: 'autorelease-settings'
110 global-settings: 'global-settings'
111 global-settings-type: cfp
112 - autorelease-maven-deploy
113 - autorelease-get-integration-test-variables
114 - autorelease-maven-sources:
115 opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
116 maven-version: 'mvn33'
117 settings: 'autorelease-settings'
118 global-settings: 'global-settings'
119 - autorelease-maven-sources-post-process
125 - opendaylight-infra-notify-status
126 - trigger-parameterized-builds:
127 - project: 'integration-distribution-test-{integration-test}'
128 condition: UNSTABLE_OR_BETTER
129 property-file: variables.jenkins-trigger
130 fail-on-missing: true
131 - project: 'integration-distribution-test-{integration-test}'
133 trigger-with-no-params: true
134 - project: 'integration-sanity-test-{integration-test}'
135 condition: UNSTABLE_OR_BETTER
136 property-file: variables.jenkins-trigger
137 fail-on-missing: true
138 - project: 'integration-sanity-test-{integration-test}'
140 trigger-with-no-params: true
141 - project: 'packaging-build-rpm-{stream}'
142 condition: UNSTABLE_OR_BETTER
143 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
144 property-file: variables.jenkins-trigger
145 fail-on-missing: true
146 - project: 'packaging-build-deb-{stream}'
147 condition: UNSTABLE_OR_BETTER
148 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
149 property-file: variables.jenkins-trigger
150 fail-on-missing: true
154 name: autorelease-update-validate-jobs-{stream}
155 project-type: freestyle
156 node: centos7-builder-2c-8g
159 - lf-infra-properties:
160 build-days-to-keep: 7
163 - lf-infra-parameters:
164 project: releng/builder
167 lftools-version: '{lftools-version}'
170 - lf-infra-gerrit-scm:
171 git-url: '$GIT_URL/releng/builder'
173 refspec: 'refs/heads/master'
174 jenkins-ssh-credential: opendaylight-jenkins-ssh
175 submodule-recursive: true
176 choosing-strategy: default
180 server-name: '{gerrit-server-name}'
182 - change-merged-event
183 - comment-added-contains-event:
184 comment-contains-value: remerge$
186 - project-compare-type: ANT
187 project-pattern: '{project}'
189 - branch-compare-type: ANT
190 branch-pattern: '**/{branch}'
198 jenkins-ssh-credential: opendaylight-jenkins-ssh
201 - shell: !include-raw-escape:
202 - update-validate-autorelease-projects.sh
203 - opendaylight-infra-push-gerrit-patch:
204 project: 'releng/builder'
205 gerrit-topic: 'autorelease-update-validate-jobs-{stream}'
206 gerrit-commit-message: |
207 Update validate autorelease projects for {stream}
213 name: autorelease-version-bump-{stream}
214 project-type: freestyle
215 node: centos7-builder-4c-16g
218 - opendaylight-infra-properties:
219 build-days-to-keep: 7
222 - lf-infra-parameters:
223 project: releng/autorelease
226 refspec: 'refs/heads/{branch}'
227 lftools-version: '{lftools-version}'
230 default: '{next-release-tag}'
232 Release that is being version bumped.
233 Eg. Lithium, Beryllium, Boron, Carbon, Carbon-SR1, Carbon-SR2...
238 If DRY_RUN is enabled modifications are not published to Gerrit.
243 - lf-infra-gerrit-scm:
244 git-url: '$GIT_URL/$GERRIT_PROJECT'
246 refspec: 'refs/heads/{branch}'
247 jenkins-ssh-credential: opendaylight-jenkins-ssh
248 submodule-recursive: true
249 choosing-strategy: default
254 jenkins-ssh-credential: opendaylight-jenkins-ssh
257 # force jenkins install of maven version before any shell scripts use it
261 settings: autorelease-settings
263 global-settings: global-settings
264 global-settings-type: cfp
266 - shell: !include-raw-escape:
267 - ../global-jjb/shell/lftools-install.sh
274 name: 'autorelease-generate-release-notes-{stream}'
276 ######################
277 # Default parameters #
278 ######################
280 gerrit_merge_triggers:
281 - comment-added-contains-event:
282 comment-contains-value: generate-release-notes .+$
284 #####################
285 # Job Configuration #
286 #####################
288 project-type: freestyle
289 node: centos7-builder-2c-8g
292 - lf-infra-properties:
293 build-days-to-keep: 7
296 - lf-infra-parameters:
300 lftools-version: '{lftools-version}'
303 description: Release to generate release notes for.
306 - lf-infra-gerrit-scm:
307 git-url: '$GIT_URL/$GERRIT_PROJECT'
308 branch: '$GERRIT_BRANCH'
309 refspec: '$GERRIT_REFSPEC'
310 jenkins-ssh-credential: opendaylight-jenkins-ssh
311 submodule-recursive: true
312 choosing-strategy: default
317 jenkins-ssh-credential: opendaylight-jenkins-ssh
321 server-name: '{gerrit-server-name}'
322 trigger-on: '{obj:gerrit_merge_triggers}'
324 - project-compare-type: ANT
325 project-pattern: '{project}'
327 - branch-compare-type: ANT
328 branch-pattern: '**/{branch}'
331 - autorelease-generate-release-notes
337 name: '{project-name}-validate-autorelease-{stream}'
343 java-version: openjdk8
345 #####################
346 # Job Configuration #
347 #####################
350 project-type: freestyle
353 jdk: '{java-version}'
356 - lf-infra-properties:
357 build-days-to-keep: 7
360 - lf-infra-parameters:
364 lftools-version: '{lftools-version}'
365 - autorelease-release-tag:
366 release-tag: validate
369 default: '{git-url}/releng/autorelease'
370 description: "Autorelease clone URL"
375 credentials-id: 'opendaylight-jenkins-ssh'
385 - opendaylight-infra-wrappers:
386 build-timeout: '{build-timeout}'
389 - gerrit-trigger-patch-submitted:
390 gerrit-server-name: '{gerrit-server-name}'
396 - autorelease-checkout-gerrit-patch
397 - jacoco-nojava-workaround
398 - shell: "./scripts/list-project-dependencies.sh"
399 - autorelease-determine-merge-order
400 - autorelease-generate-release-patches
401 # In a perfect world projects should be releasing separately and we consume them
402 # via a project that pulls the release bits from each project from Nexus.
403 # Keep the patches compatible with that ideal, but apply an edit
404 # to enable building in a single maven reactor afterwards.
405 - autorelease-fix-relative-paths
408 pom: validate-pom.xml
410 clean install dependency:tree
413 {opendaylight-infra-mvn-opts}
416 settings: autorelease-settings
418 global-settings: global-settings
419 global-settings-type: cfp
426 {opendaylight-infra-mvn-opts}
428 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
429 settings: autorelease-settings
431 global-settings: global-settings
432 global-settings-type: cfp
438 - email-notification:
439 email-recipients: '{email-recipients}'
440 email-prefix: '[autorelease] [{project-name}]'