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:
100 - integration-gerrit-scm:
101 basedir: '$GERRIT_PROJECT'
102 refspec: '$GERRIT_REFSPEC'
104 - integration-distribution-scm:
105 branch: '{distribution_branch}'
108 - opendaylight-infra-wrappers:
109 # Distro-check jobs typically run within 10 - 30 minutes
110 # with 45 minutes being the occassional edge case.
111 # enforce a 60 minute limit to ensure stuck jobs get
116 - gerrit-trigger-patch-submitted:
117 server: '{server-name}'
123 - distribution-check-wipe
124 - distribution-check-build-project:
125 pom: '$GERRIT_PROJECT/pom.xml'
126 mvn-opts: '{opendaylight-infra-mvn-opts}'
127 - distribution-check-verify-groupid:
128 gerrit-project: '$GERRIT_PROJECT'
129 - distribution-check-download-deps:
130 dist-pom: 'distribution/pom.xml'
131 mvn-opts: '{opendaylight-infra-mvn-opts}'
132 - distribution-check-delete-snapshots
133 - distribution-check-configure-remotes
134 - distribution-check-repeat-build:
135 dist-pom: 'distribution/pom.xml'
136 mvn-opts: '{opendaylight-infra-mvn-opts}'
137 - distribution-check-deploy-distribution:
138 dist-pom: distribution/pom.xml
139 - integration-distribution-check
143 - email-notification:
144 email-recipients: '{email-recipients}'
145 email-prefix: '[{project-name}]'
150 mkdir -p $WORKSPACE/archives
151 cp karaf*.log $WORKSPACE/archives
152 script-only-if-succeeded: false
153 script-only-if-failed: false
154 mark-unstable-if-failed: true
155 - opendaylight-infra-shiplogs:
156 maven-version: 'mvn33'
159 name: '{project-name}-integration-{stream}'
161 # Job template for ODL integration verify jobs
163 # This is similar to a normal verify job, but it runs
164 # when a project that's a dependency of your project
165 # is successfully built.
167 # Required Variables:
168 # stream: release stream (eg. boron or carbon)
169 # branch: git branch (eg. stable/boron or master)
171 project-type: freestyle
176 - opendaylight-infra-properties:
177 build-days-to-keep: '{build-days-to-keep}'
180 - opendaylight-infra-parameters:
181 os-cloud: '{os-cloud}'
184 refspec: 'refs/heads/{branch}'
185 artifacts: '{archive-artifacts}'
193 - opendaylight-infra-wrappers:
194 build-timeout: '{build-timeout}'
198 jobs: '{dependencies}'
202 - jacoco-nojava-workaround
203 - provide-maven-settings:
204 global-settings-file: 'odl-global-settings'
205 settings-file: '{mvn-settings}'
207 maven-version: 'mvn33'
210 {opendaylight-infra-mvn-opts}
213 settings: '{mvn-settings}'
215 global-settings: 'odl-global-settings'
216 global-settings-type: cfp
219 - email-notification:
220 email-recipients: '{email-recipients}'
221 email-prefix: '{email-upstream}'
224 - opendaylight-infra-shiplogs:
225 maven-version: 'mvn33'
228 name: '{project-name}-merge-{stream}'
230 # Job template for ODL merge jobs
232 # The purpose of this job template is to setup a ODL merge job
233 # and deploy artifacts to Nexus.
235 # Required Variables:
236 # stream: release stream (eg. boron or carbon)
237 # branch: git branch (eg. stable/boron or master)
239 # Need to keep jobs that deploy to Nexus at end of build as Maven
240 # projects. Maybe reconsider this once upstream moves deploy to a
241 # separate lifecycle:
242 # https://issues.apache.org/jira/browse/MNG-5666
248 - opendaylight-infra-properties:
249 build-days-to-keep: 14
252 - opendaylight-infra-parameters:
253 os-cloud: '{os-cloud}'
256 refspec: 'refs/heads/{branch}'
257 artifacts: '{archive-artifacts}'
260 - gerrit-trigger-scm:
262 choosing-strategy: 'default'
265 - opendaylight-infra-wrappers:
266 build-timeout: '{build-timeout}'
270 - gerrit-trigger-patch-merged:
271 server-name: '{server-name}'
276 - jacoco-nojava-workaround
277 - provide-maven-settings:
278 global-settings-file: 'odl-global-settings'
279 settings-file: '{mvn-settings}'
281 # TODO: Do we want to apply sophisticated checks as in *-distribution-check-*?
288 {opendaylight-infra-mvn-opts}
289 maven-opts: '{mvn-opts}'
290 settings: '{mvn-settings}'
292 global-settings: 'odl-global-settings'
293 global-settings-type: cfp
294 post-step-run-condition: UNSTABLE
298 condition-kind: file-exists
299 condition-filename: deploy-site.xml
300 condition-basedir: workspace
302 # The strategy here is intentional to run Maven site:deploy twice
303 # once using regular pom.xml to produce a staged-site which is
304 # then used by deploy-site.xml to push to Nexus. This is a
305 # workaround to Maven Site's default linking code which creates
306 # incorrect URLs for sites due to auto-detection assuming your
307 # project is configured in a certain way which ODL is not.
310 maven-version: 'mvn33'
312 goals: 'site:deploy -V -B -Dstream={stream}'
315 settings: '{mvn-settings}'
317 global-settings: 'odl-global-settings'
318 global-settings-type: cfp
320 maven-version: 'mvn33'
322 goals: 'site:deploy -V -B -Dstream={stream}'
325 settings: '{mvn-settings}'
327 global-settings: 'odl-global-settings'
328 global-settings-type: cfp
334 - email-notification:
335 email-recipients: '{email-recipients}'
336 email-prefix: '[{project-name}]'
340 deploy-unstable: false
342 - opendaylight-infra-shiplogs:
343 maven-version: 'mvn33'
345 project: 'distribution-merge-{stream}'
349 name: '{project-name}-sonar'
352 project-type: freestyle
357 - opendaylight-infra-properties:
358 build-days-to-keep: 7
361 - opendaylight-infra-parameters:
362 os-cloud: '{os-cloud}'
365 refspec: 'refs/heads/{branch}'
366 artifacts: '{archive-artifacts}'
374 - opendaylight-infra-wrappers:
375 build-timeout: '{build-timeout}'
379 - gerrit-trigger-patch-sonar:
380 server-name: '{server-name}'
382 # FIXME: Make sure this does not alter Gerrit votes, then update docs.
385 - jacoco-nojava-workaround
386 - provide-maven-settings:
387 global-settings-file: 'odl-global-settings'
388 settings-file: '{mvn-settings}'
390 maven-version: 'mvn33'
394 {opendaylight-infra-mvn-opts}
397 settings: '{mvn-settings}'
399 global-settings: 'odl-global-settings'
400 global-settings-type: cfp
402 maven-version: 'mvn33'
403 # We should switch to the recommended configuration of sonar once
404 # JJB adds support for configurating the Sonar wrapper:
405 # http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Jenkins
409 -Dsonar.host.url=https://sonar.opendaylight.org
410 {opendaylight-infra-mvn-opts}
413 settings: '{mvn-settings}'
415 global-settings: 'odl-global-settings'
416 global-settings-type: cfp
419 - email-notification:
420 email-recipients: '{email-recipients}'
421 email-prefix: '[{project-name}]'
424 - opendaylight-infra-shiplogs:
425 maven-version: 'mvn33'
428 name: '{project-name}-validate-autorelease-{stream}'
431 project-type: freestyle
437 - opendaylight-infra-properties:
438 build-days-to-keep: 7
441 - opendaylight-infra-parameters:
442 os-cloud: '{os-cloud}'
445 refspec: 'refs/heads/{branch}'
446 artifacts: '{archive-artifacts}'
447 - autorelease-release-tag:
448 release-tag: 'validate'
449 - autorelease-release-branch:
450 release-branch: '{branch}'
453 default: '{git-url}/releng/autorelease'
454 description: "Autorelease clone URL"
459 credentials-id: 'opendaylight-jenkins-ssh'
469 - opendaylight-infra-wrappers:
470 build-timeout: '{build-timeout}'
473 - gerrit-trigger-patch-submitted:
474 server: '{server-name}'
480 - jacoco-nojava-workaround
481 - autorelease-checkout-gerrit-patch
482 - autorelease-generate-release-patches
483 # In a perfect world projects should be releasing separately and we consume them
484 # via a project that pulls the release bits from each project from Nexus.
485 # Keep the patches compatible with that ideal, but apply an edit
486 # to enable building in a single maven reactor afterwards.
487 - autorelease-fix-relative-paths
489 maven-version: 'mvn33'
490 pom: validate-pom.xml
492 clean install dependency:tree
495 {opendaylight-infra-mvn-opts}
498 settings: 'autorelease-settings'
500 global-settings: 'odl-global-settings'
501 global-settings-type: cfp
503 maven-version: 'mvn33'
508 {opendaylight-infra-mvn-opts}
510 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
511 settings: 'autorelease-settings'
513 global-settings: 'odl-global-settings'
514 global-settings-type: cfp
515 - autorelease-sys-stats
518 - email-notification:
519 email-recipients: '{email-recipients}'
520 email-prefix: '[autorelease] [{project-name}]'
521 - opendaylight-infra-shiplogs:
522 maven-version: 'mvn33'
525 name: '{project-name}-verify-{stream}-{maven}-{jdks}'
527 # Job template for ODL verify jobs
529 # The purpose of this job template is to setup a ODL verify job
531 # Required Variables:
532 # stream: release stream (eg. boron or carbon)
533 # branch: git branch (eg. stable/boron or master)
535 project-type: freestyle
541 - opendaylight-infra-properties:
542 build-days-to-keep: 7
545 - opendaylight-infra-parameters:
546 os-cloud: '{os-cloud}'
549 refspec: 'refs/heads/{branch}'
550 artifacts: '{archive-artifacts}'
553 - gerrit-trigger-scm:
554 refspec: '$GERRIT_REFSPEC'
555 choosing-strategy: 'gerrit'
558 - opendaylight-infra-wrappers:
559 build-timeout: '{build-timeout}'
562 - gerrit-trigger-patch-submitted:
563 server: '{server-name}'
569 - jacoco-nojava-workaround
570 - provide-maven-settings:
571 global-settings-file: 'odl-global-settings'
572 settings-file: '{mvn-settings}'
574 maven-version: '{mvn-version}'
578 {opendaylight-infra-mvn-opts}
581 settings: '{mvn-settings}'
583 global-settings: 'odl-global-settings'
584 global-settings-type: cfp
588 - email-notification:
589 email-recipients: '{email-recipients}'
590 email-prefix: '[{project-name}]'
592 - opendaylight-infra-shiplogs:
593 maven-version: '{mvn-version}'