3 # Template used for running CLM scans
5 # {name} - Project Shortname
6 # {project} - Fully qualified project name
7 # {mvn-settings} - Project maven settings file
10 name: '{project-name}-clm-{stream}'
12 project-type: freestyle
17 - opendaylight-infra-properties:
18 build-days-to-keep: '{build-days-to-keep}'
21 - opendaylight-infra-parameters:
22 os-cloud: '{os-cloud}'
25 refspec: 'refs/heads/{branch}'
26 artifacts: '{archive-artifacts}'
34 - opendaylight-infra-wrappers:
35 build-timeout: '{build-timeout}'
41 - provide-maven-settings:
42 global-settings-file: 'odl-global-settings'
43 settings-file: '{mvn-settings}'
45 maven-version: 'mvn33'
48 clean install dependency:tree com.sonatype.clm:clm-maven-plugin:index
50 {opendaylight-infra-mvn-opts}
52 - '-Xmx4096m -XX:MaxPermSize=512m'
53 settings: '{mvn-settings}'
55 global-settings: 'odl-global-settings'
56 global-settings-type: cfp
57 - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
59 application-name: '{project-name}'
63 email-recipients: '{email-recipients}'
64 email-prefix: '[{project-name}]'
65 - opendaylight-infra-shiplogs:
66 maven-version: 'mvn33'
69 # Template: {project-name}-distribution-check-{stream}
70 # Goal: Build a patch and make sure the distribution can deploy with this change.
71 # Operation: This job template builds a patch, creates a distribution containing
72 # the patch (making sure dependencies are specified),
73 # and performs the distribution deploy test.
75 name: '{project-name}-distribution-check-{stream}'
78 project-type: freestyle
84 - opendaylight-infra-properties:
85 build-days-to-keep: '{build-days-to-keep}'
88 - opendaylight-infra-parameters:
89 os-cloud: '{os-cloud}'
92 refspec: 'refs/heads/{branch}'
93 artifacts: '{archive-artifacts} **/dependency_tree.txt **/target/surefire-reports/*-output.txt'
94 - integration-distribution-git-url:
98 - integration-gerrit-scm:
99 basedir: '$GERRIT_PROJECT'
100 refspec: '$GERRIT_REFSPEC'
102 - integration-distribution-scm:
103 branch: '{distribution_branch}'
106 - opendaylight-infra-wrappers:
107 # Distro-check jobs typically run within 10 - 30 minutes
108 # with 45 minutes being the occassional edge case.
109 # enforce a 60 minute limit to ensure stuck jobs get
114 - gerrit-trigger-patch-submitted:
115 server: '{server-name}'
121 - distribution-check-wipe
122 - distribution-check-build-project:
123 pom: '$GERRIT_PROJECT/pom.xml'
124 - distribution-check-verify-groupid:
125 gerrit-project: '$GERRIT_PROJECT'
126 - distribution-check-download-deps:
127 dist-pom: 'distribution/pom.xml'
128 - distribution-check-delete-snapshots
129 - distribution-check-configure-remotes
130 - distribution-check-repeat-build:
131 dist-pom: 'distribution/pom.xml'
132 - integration-distribution-check
135 - email-notification:
136 email-recipients: '{email-recipients}'
137 email-prefix: '[{project-name}]'
142 mkdir -p $WORKSPACE/archives
143 cp karaf*.log $WORKSPACE/archives
144 script-only-if-succeeded: false
145 script-only-if-failed: false
146 mark-unstable-if-failed: true
149 - opendaylight-infra-shiplogs:
150 maven-version: 'mvn33'
153 name: '{project-name}-integration-{stream}'
155 # Job template for ODL integration verify jobs
157 # This is similar to a normal verify job, but it runs
158 # when a project that's a dependency of your project
159 # is successfully built.
161 # Required Variables:
162 # stream: release stream (eg. boron or carbon)
163 # branch: git branch (eg. stable/boron or master)
165 project-type: freestyle
170 - opendaylight-infra-properties:
171 build-days-to-keep: '{build-days-to-keep}'
174 - opendaylight-infra-parameters:
175 os-cloud: '{os-cloud}'
178 refspec: 'refs/heads/{branch}'
179 artifacts: '{archive-artifacts}'
187 - opendaylight-infra-wrappers:
188 build-timeout: '{build-timeout}'
192 jobs: '{dependencies}'
196 - jacoco-nojava-workaround
197 - provide-maven-settings:
198 global-settings-file: 'odl-global-settings'
199 settings-file: '{mvn-settings}'
201 maven-version: 'mvn33'
204 {opendaylight-infra-mvn-opts}
207 settings: '{mvn-settings}'
209 global-settings: 'odl-global-settings'
210 global-settings-type: cfp
213 - email-notification:
214 email-recipients: '{email-recipients}'
215 email-prefix: '{email-upstream}'
218 - opendaylight-infra-shiplogs:
219 maven-version: 'mvn33'
222 name: '{project-name}-merge-{stream}'
224 # Job template for ODL merge jobs
226 # The purpose of this job template is to setup a ODL merge job
227 # and deploy artifacts to Nexus.
229 # Required Variables:
230 # stream: release stream (eg. boron or carbon)
231 # branch: git branch (eg. stable/boron or master)
233 # Need to keep jobs that deploy to Nexus at end of build as Maven
234 # projects. Maybe reconsider this once upstream moves deploy to a
235 # separate lifecycle:
236 # https://issues.apache.org/jira/browse/MNG-5666
242 - opendaylight-infra-properties:
243 build-days-to-keep: 14
246 - opendaylight-infra-parameters:
247 os-cloud: '{os-cloud}'
250 refspec: 'refs/heads/{branch}'
251 artifacts: '{archive-artifacts}'
254 - gerrit-trigger-scm:
256 choosing-strategy: 'default'
259 - opendaylight-infra-wrappers:
260 build-timeout: '{build-timeout}'
264 - gerrit-trigger-patch-merged:
265 server-name: '{server-name}'
270 - jacoco-nojava-workaround
271 - provide-maven-settings:
272 global-settings-file: 'odl-global-settings'
273 settings-file: '{mvn-settings}'
275 # TODO: Do we want to apply sophisticated checks as in *-distribution-check-*?
282 {opendaylight-infra-mvn-opts}
283 maven-opts: '{mvn-opts}'
284 settings: '{mvn-settings}'
286 global-settings: 'odl-global-settings'
287 global-settings-type: cfp
288 post-step-run-condition: UNSTABLE
292 condition-kind: file-exists
293 condition-filename: deploy-site.xml
294 condition-basedir: workspace
296 # The strategy here is intentional to run Maven site:deploy twice
297 # once using regular pom.xml to produce a staged-site which is
298 # then used by deploy-site.xml to push to Nexus. This is a
299 # workaround to Maven Site's default linking code which creates
300 # incorrect URLs for sites due to auto-detection assuming your
301 # project is configured in a certain way which ODL is not.
304 maven-version: 'mvn33'
306 goals: 'site:deploy -V -B -Dstream={stream}'
309 settings: '{mvn-settings}'
311 global-settings: 'odl-global-settings'
312 global-settings-type: cfp
314 maven-version: 'mvn33'
316 goals: 'site:deploy -V -B -Dstream={stream}'
319 settings: '{mvn-settings}'
321 global-settings: 'odl-global-settings'
322 global-settings-type: cfp
328 - email-notification:
329 email-recipients: '{email-recipients}'
330 email-prefix: '[{project-name}]'
334 deploy-unstable: false
336 - opendaylight-infra-shiplogs:
337 maven-version: 'mvn33'
339 project: 'distribution-merge-{stream}'
343 name: '{project-name}-sonar'
346 project-type: freestyle
351 - opendaylight-infra-properties:
352 build-days-to-keep: 7
355 - opendaylight-infra-parameters:
356 os-cloud: '{os-cloud}'
359 refspec: 'refs/heads/{branch}'
360 artifacts: '{archive-artifacts}'
368 - opendaylight-infra-wrappers:
369 build-timeout: '{build-timeout}'
373 - gerrit-trigger-patch-sonar:
374 server-name: '{server-name}'
376 # FIXME: Make sure this does not alter Gerrit votes, then update docs.
379 - jacoco-nojava-workaround
380 - provide-maven-settings:
381 global-settings-file: 'odl-global-settings'
382 settings-file: '{mvn-settings}'
384 maven-version: 'mvn33'
388 {opendaylight-infra-mvn-opts}
391 settings: '{mvn-settings}'
393 global-settings: 'odl-global-settings'
394 global-settings-type: cfp
396 maven-version: 'mvn33'
397 # We should switch to the recommended configuration of sonar once
398 # JJB adds support for configurating the Sonar wrapper:
399 # http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Jenkins
403 -Dsonar.host.url=https://sonar.opendaylight.org
404 {opendaylight-infra-mvn-opts}
407 settings: '{mvn-settings}'
409 global-settings: 'odl-global-settings'
410 global-settings-type: cfp
413 - email-notification:
414 email-recipients: '{email-recipients}'
415 email-prefix: '[{project-name}]'
418 - opendaylight-infra-shiplogs:
419 maven-version: 'mvn33'
422 name: '{project-name}-validate-autorelease-{stream}'
425 project-type: freestyle
431 - opendaylight-infra-properties:
432 build-days-to-keep: 7
435 - opendaylight-infra-parameters:
436 os-cloud: '{os-cloud}'
439 refspec: 'refs/heads/{branch}'
440 artifacts: '{archive-artifacts}'
441 - autorelease-release-tag:
442 release-tag: 'validate'
443 - autorelease-release-branch:
444 release-branch: '{branch}'
447 default: '{git-url}/releng/autorelease'
448 description: "Autorelease clone URL"
453 credentials-id: 'opendaylight-jenkins-ssh'
463 - opendaylight-infra-wrappers:
464 build-timeout: '{build-timeout}'
467 - gerrit-trigger-patch-submitted:
468 server: '{server-name}'
474 - jacoco-nojava-workaround
475 - autorelease-checkout-gerrit-patch
476 - autorelease-generate-release-patches
477 # In a perfect world projects should be releasing separately and we consume them
478 # via a project that pulls the release bits from each project from Nexus.
479 # Keep the patches compatible with that ideal, but apply an edit
480 # to enable building in a single maven reactor afterwards.
481 - autorelease-fix-relative-paths
483 maven-version: 'mvn33'
484 pom: validate-pom.xml
486 clean install dependency:tree
489 {opendaylight-infra-mvn-opts}
492 settings: 'autorelease-settings'
494 global-settings: 'odl-global-settings'
495 global-settings-type: cfp
497 maven-version: 'mvn33'
502 {opendaylight-infra-mvn-opts}
504 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
505 settings: 'autorelease-settings'
507 global-settings: 'odl-global-settings'
508 global-settings-type: cfp
509 - autorelease-sys-stats
512 - email-notification:
513 email-recipients: '{email-recipients}'
514 email-prefix: '[autorelease] [{project-name}]'
515 - opendaylight-infra-shiplogs:
516 maven-version: 'mvn33'
519 name: '{project-name}-verify-{stream}-{maven}-{jdks}'
521 # Job template for ODL verify jobs
523 # The purpose of this job template is to setup a ODL verify job
525 # Required Variables:
526 # stream: release stream (eg. boron or carbon)
527 # branch: git branch (eg. stable/boron or master)
529 project-type: freestyle
535 - opendaylight-infra-properties:
536 build-days-to-keep: 7
539 - opendaylight-infra-parameters:
540 os-cloud: '{os-cloud}'
543 refspec: 'refs/heads/{branch}'
544 artifacts: '{archive-artifacts}'
547 - gerrit-trigger-scm:
548 refspec: '$GERRIT_REFSPEC'
549 choosing-strategy: 'gerrit'
552 - opendaylight-infra-wrappers:
553 build-timeout: '{build-timeout}'
556 - gerrit-trigger-patch-submitted:
557 server: '{server-name}'
563 - jacoco-nojava-workaround
564 - provide-maven-settings:
565 global-settings-file: 'odl-global-settings'
566 settings-file: '{mvn-settings}'
568 maven-version: '{mvn-version}'
572 {opendaylight-infra-mvn-opts}
575 settings: '{mvn-settings}'
577 global-settings: 'odl-global-settings'
578 global-settings-type: cfp
582 - email-notification:
583 email-recipients: '{email-recipients}'
584 email-prefix: '[{project-name}]'
586 - opendaylight-infra-shiplogs:
587 maven-version: '{mvn-version}'