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 - distribution-karaf-version:
27 karaf-version: '{karaf-version}'
28 - autorelease-release-tag:
29 release-tag: '{next-release-tag}'
32 default: '{extra-mvn-opts}'
34 Additional optional Maven Options to pass to the Maven Goals
38 -Dskip.karaf.featureTest=true # To disable karaf SingleFeatureTests
39 --fail-never # NEVER fail the build, regardless of project result
40 --fail-at-end # Only fail the build afterwards; allow all non-impacted builds to continue
42 name: ARCHIVE_ARTIFACTS
43 default: '{archive-artifacts}'
44 description: Artifacts to archive to the logs server.
46 name: TRIGGER_DOWNSTREAM_JOBS
49 Used by the post-build-script step to determine if downstream
50 jobs should be triggered for this run or not.
54 credentials-id: 'opendaylight-jenkins-ssh'
56 refspec: '$GERRIT_REFSPEC'
59 choosing-strategy: default
66 - opendaylight-infra-wrappers:
73 # force jenkins install of maven version before any shell scripts use it
75 mvn-version: '{mvn-version}'
76 - wipe-local-maven-repo
77 - jacoco-nojava-workaround
78 - shell: "./scripts/list-project-dependencies.sh"
79 - autorelease-determine-merge-order
81 autorelease-settings: 'autorelease-settings'
82 global-settings: 'odl-global-settings'
83 - autorelease-generate-release-patches
84 - autorelease-distribute-taglist
85 - distribute-build-url:
86 path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
87 # In a perfect world projects should be releasing separately and we consume them
88 # via a project that pulls the release bits from each project from Nexus.
89 # Keep the patches compatible with that ideal, but apply an edit
90 # to enable building in a single maven reactor afterwards.
91 - autorelease-fix-relative-paths
93 maven-version: 'mvn33'
98 -Pintegrationtests,docs,repoBuild
99 -Dcheckstyle.skip=true
100 -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage
101 {opendaylight-infra-mvn-opts}
103 - '-Xmx10g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
104 settings: 'autorelease-settings'
106 global-settings: 'global-settings'
107 global-settings-type: cfp
108 - autorelease-maven-deploy
109 - autorelease-get-integration-test-variables
110 - autorelease-maven-sources:
111 opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
112 maven-version: 'mvn33'
113 settings: 'autorelease-settings'
114 global-settings: 'global-settings'
115 - autorelease-maven-sources-post-process
121 - opendaylight-infra-notify-status
125 condition-kind: boolean-expression
126 condition-expression: $TRIGGER_DOWNSTREAM_JOBS
129 - project: 'integration-distribution-test-{integration-test}'
130 condition: UNSTABLE_OR_BETTER
131 property-file: variables.jenkins-trigger
132 fail-on-missing: true
133 - project: 'integration-distribution-test-{integration-test}'
135 trigger-with-no-params: true
136 - project: 'integration-sanity-test-{integration-test}'
137 condition: UNSTABLE_OR_BETTER
138 property-file: variables.jenkins-trigger
139 fail-on-missing: true
140 - project: 'integration-sanity-test-{integration-test}'
142 trigger-with-no-params: true
143 - project: 'packaging-build-rpm-{stream}'
144 condition: UNSTABLE_OR_BETTER
145 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
146 property-file: variables.jenkins-trigger
147 fail-on-missing: true
148 - project: 'packaging-build-deb-{stream}'
149 condition: UNSTABLE_OR_BETTER
150 predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
151 property-file: variables.jenkins-trigger
152 fail-on-missing: true
153 script-only-if-succeeded: false
154 script-only-if-failed: false
158 name: autorelease-update-validate-jobs-{stream}
159 project-type: freestyle
160 node: centos7-java-builder-2c-4g
163 - lf-infra-properties:
164 build-days-to-keep: 7
167 - lf-infra-parameters:
168 project: releng/builder
173 - lf-infra-gerrit-scm:
174 git-url: '$GIT_URL/releng/builder'
176 refspec: 'refs/heads/master'
177 jenkins-ssh-credential: opendaylight-jenkins-ssh
178 submodule-recursive: true
179 choosing-strategy: default
183 server-name: '{gerrit-server-name}'
185 - change-merged-event
186 - comment-added-contains-event:
187 comment-contains-value: remerge$
189 - project-compare-type: ANT
190 project-pattern: '{project}'
192 - branch-compare-type: ANT
193 branch-pattern: '**/{branch}'
201 jenkins-ssh-credential: opendaylight-jenkins-ssh
204 - shell: !include-raw-escape:
205 - update-validate-autorelease-projects.sh
206 - opendaylight-infra-push-gerrit-patch:
207 project: 'releng/builder'
208 gerrit-topic: 'autorelease-update-validate-jobs-{stream}'
209 gerrit-commit-message: |
210 Update validate autorelease projects for {stream}
216 name: autorelease-version-bump-{stream}
217 project-type: freestyle
218 node: centos7-autorelease-4c-16g
221 - opendaylight-infra-properties:
222 build-days-to-keep: 7
225 - lf-infra-parameters:
226 project: releng/autorelease
229 refspec: 'refs/heads/{branch}'
232 default: '{next-release-tag}'
234 Release that is being version bumped.
235 Eg. Lithium, Beryllium, Boron, Carbon, Carbon-SR1, Carbon-SR2...
240 If DRY_RUN is enabled modifications are not published to Gerrit.
245 - lf-infra-gerrit-scm:
246 git-url: '$GIT_URL/$GERRIT_PROJECT'
248 refspec: 'refs/heads/{branch}'
249 jenkins-ssh-credential: opendaylight-jenkins-ssh
250 submodule-recursive: true
251 choosing-strategy: default
256 jenkins-ssh-credential: opendaylight-jenkins-ssh
259 # force jenkins install of maven version before any shell scripts use it
263 settings: autorelease-settings
265 global-settings: global-settings
266 global-settings-type: cfp
268 - shell: !include-raw-escape:
269 - ../global-jjb/shell/lftools-install.sh
273 - trigger-parameterized-builds:
274 - project: 'autorelease-generate-release-notes-{stream}'
275 condition: UNSTABLE_OR_BETTER
276 trigger-with-no-params: true
280 name: 'autorelease-generate-release-notes-{stream}'
282 project-type: freestyle
283 node: centos7-java-builder-2c-4g
286 - lf-infra-properties:
287 build-days-to-keep: 7
290 - lf-infra-parameters:
296 - lf-infra-gerrit-scm:
297 git-url: '$GIT_URL/$GERRIT_PROJECT'
299 refspec: 'refs/heads/{branch}'
300 jenkins-ssh-credential: opendaylight-jenkins-ssh
301 submodule-recursive: true
302 choosing-strategy: default
307 jenkins-ssh-credential: opendaylight-jenkins-ssh
317 pom: '$WORKSPACE/scripts/release_notes_management/pom.xml'
320 {opendaylight-infra-mvn-opts}
321 settings: autorelease-settings
323 global-settings: global-settings
324 global-settings-type: cfp
325 - autorelease-generate-release-notes
331 name: '{project-name}-validate-autorelease-{stream}'
334 project-type: freestyle
340 - lf-infra-properties:
341 build-days-to-keep: 7
344 - lf-infra-parameters:
348 - autorelease-release-tag:
349 release-tag: validate
352 default: '{git-url}/releng/autorelease'
353 description: "Autorelease clone URL"
358 credentials-id: 'opendaylight-jenkins-ssh'
368 - opendaylight-infra-wrappers:
369 build-timeout: '{build-timeout}'
372 - gerrit-trigger-patch-submitted:
373 server: '{server-name}'
379 - jacoco-nojava-workaround
380 - autorelease-checkout-gerrit-patch
381 - autorelease-generate-release-patches
382 # In a perfect world projects should be releasing separately and we consume them
383 # via a project that pulls the release bits from each project from Nexus.
384 # Keep the patches compatible with that ideal, but apply an edit
385 # to enable building in a single maven reactor afterwards.
386 - autorelease-fix-relative-paths
389 pom: validate-pom.xml
391 clean install dependency:tree
394 {opendaylight-infra-mvn-opts}
397 settings: autorelease-settings
399 global-settings: global-settings
400 global-settings-type: cfp
407 {opendaylight-infra-mvn-opts}
409 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
410 settings: autorelease-settings
412 global-settings: global-settings
413 global-settings-type: cfp
416 - email-notification:
417 email-recipients: '{email-recipients}'
418 email-prefix: '[autorelease] [{project-name}]'