2 # Template used for running CLM scans
4 # {name} - Project Shortname
5 # {project} - Fully qualified project name
6 # {mvn-settings} - Project maven settings file
9 name: '{project-name}-clm-{stream}'
11 project-type: freestyle
16 daysToKeep: '{build-days-to-keep}'
17 numToKeep: '{build-num-to-keep}'
20 - opendaylight-infra-parameters:
23 refspec: 'refs/heads/{branch}'
24 artifacts: '{archive-artifacts}'
32 - opendaylight-infra-wrappers:
33 build-timeout: '{build-timeout}'
39 - provide-maven-settings:
40 global-settings-file: 'odl-global-settings'
41 settings-file: '{mvn-settings}'
43 maven-version: 'mvn33'
45 goals: 'clean install dependency:tree com.sonatype.clm:clm-maven-plugin:index -V -B -Pq -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
47 - '-Xmx4096m -XX:MaxPermSize=512m'
48 settings: '{mvn-settings}'
50 global-settings: 'odl-global-settings'
51 global-settings-type: cfp
52 - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
54 application-name: '{project-name}'
58 email-recipients: '{email-recipients}'
59 email-prefix: '[{project-name}]'
60 - opendaylight-infra-shiplogs:
61 maven-version: 'mvn33'
64 name: '{project-name}-distribution-{stream}'
67 # stream: release stream (eg. boron or carbon)
68 # branch: git branch (eg. stable/boron or master)
70 # Need to keep jobs that deploy to Nexus at end of build as Maven
71 # projects. Maybe reconsider this once upstream moves deploy to a
73 # https://issues.apache.org/jira/browse/MNG-5666
79 daysToKeep: '{build-days-to-keep}'
80 numToKeep: '{build-num-to-keep}'
81 artifactDaysToKeep: '{build-artifact-days-to-keep}'
82 artifactNumToKeep: '{build-artifact-num-to-keep}'
85 - opendaylight-infra-parameters:
86 project: 'integration/distribution'
88 refspec: 'refs/heads/{branch}'
89 artifacts: '{archive-artifacts} **/dependency_tree.txt **/target/surefire-reports/*-output.txt'
97 - opendaylight-infra-wrappers:
98 build-timeout: '{build-timeout}'
102 jobs: '{project}-merge-{stream}'
106 - provide-maven-settings:
107 global-settings-file: 'odl-global-settings'
108 settings-file: '{mvn-settings}'
113 goals: 'clean install dependency:tree -DoutputFile=dependency_tree.txt -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
114 maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
115 settings: 'integration-distribution-settings'
117 global-settings: 'odl-global-settings'
118 global-settings-type: cfp
121 - email-notification:
122 email-recipients: '{email-recipients}'
123 email-prefix: '[{project}]'
127 deploy-unstable: false
128 - opendaylight-infra-shiplogs:
129 maven-version: 'mvn33'
132 # Template: {name}-distribution-check-{stream}
133 # Goal: Build a patch and make sure the distribution can deploy with this change
134 # Operation: This job template builds a patch, creates a distribution containing
135 # the patch, and triggers the distribution deploy test
137 name: '{project-name}-distribution-check-{stream}'
140 project-type: freestyle
146 daysToKeep: '{build-days-to-keep}'
147 numToKeep: '{build-num-to-keep}'
148 artifactDaysToKeep: '{build-artifact-days-to-keep}'
149 artifactNumToKeep: '{build-artifact-num-to-keep}'
152 - opendaylight-infra-parameters:
155 refspec: 'refs/heads/{branch}'
156 artifacts: '{archive-artifacts} **/dependency_tree.txt **/target/surefire-reports/*-output.txt'
157 - integration-distribution-git-url:
161 - integration-gerrit-scm:
162 basedir: '$GERRIT_PROJECT'
163 refspec: '$GERRIT_REFSPEC'
165 - integration-distribution-scm:
169 - opendaylight-infra-wrappers:
170 # Distro-check jobs typically run within 10 - 30 minutes
171 # with 45 minutes being the occassional edge case.
172 # enforce a 60 minute limit to ensure stuck jobs get
178 server-name: '{server-name}'
180 - patchset-created-event:
181 exclude-drafts: 'true'
182 exclude-trivial-rebase: 'false'
183 exclude-no-code-change: 'true'
184 - draft-published-event
185 - comment-added-contains-event:
186 comment-contains-value: 'redistcheck'
187 - comment-added-contains-event:
188 comment-contains-value: 'recheck'
190 - project-compare-type: 'ANT'
191 project-pattern: '{project}'
193 - branch-compare-type: 'ANT'
194 branch-pattern: '**/{branch}'
203 maven-version: 'mvn33'
204 pom: '$GERRIT_PROJECT/pom.xml'
205 goals: 'clean install dependency:tree -DoutputFile=dependency_tree.txt -V -B -Pq -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Dstream={stream}'
207 - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
208 settings: '{mvn-settings}'
210 global-settings: 'odl-global-settings'
211 global-settings-type: cfp
213 maven-version: 'mvn33'
214 pom: 'distribution/pom.xml'
215 goals: 'clean install dependency:tree -DoutputFile=dependency_tree.txt -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
217 - '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
218 settings: '{mvn-settings}'
220 global-settings: 'odl-global-settings'
221 global-settings-type: cfp
222 - integration-distribution-check
225 - email-notification:
226 email-recipients: '{email-recipients}'
227 email-prefix: '[{project-name}]'
232 mkdir -p $WORKSPACE/archives
233 cp karaf*.log $WORKSPACE/archives
234 script-only-if-succeeded: False
235 script-only-if-failed: False
236 mark-unstable-if-failed: True
239 - opendaylight-infra-shiplogs:
240 maven-version: 'mvn33'
243 name: '{project-name}-integration-{stream}'
245 # Job template for ODL integration verify jobs
247 # This is similar to a normal verify job, but it runs
248 # when a project that's a dependency of your project
249 # is successfully built.
251 # Required Variables:
252 # stream: release stream (eg. boron or carbon)
253 # branch: git branch (eg. stable/boron or master)
255 project-type: freestyle
260 daysToKeep: '{build-days-to-keep}'
261 numToKeep: '{build-num-to-keep}'
262 artifactDaysToKeep: '{build-artifact-days-to-keep}'
263 artifactNumToKeep: '{build-artifact-num-to-keep}'
266 - opendaylight-infra-parameters:
269 refspec: 'refs/heads/{branch}'
270 artifacts: '{archive-artifacts}'
278 - opendaylight-infra-wrappers:
279 build-timeout: '{build-timeout}'
283 jobs: '{dependencies}'
287 - jacoco-nojava-workaround
288 - provide-maven-settings:
289 global-settings-file: 'odl-global-settings'
290 settings-file: '{mvn-settings}'
292 maven-version: 'mvn33'
293 goals: '{mvn-goals} -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
296 settings: '{mvn-settings}'
298 global-settings: 'odl-global-settings'
299 global-settings-type: cfp
302 - email-notification:
303 email-recipients: '{email-recipients}'
304 email-prefix: '{email-upstream}'
307 - opendaylight-infra-shiplogs:
308 maven-version: 'mvn33'
311 name: '{project-name}-merge-{stream}'
313 # Job template for ODL merge jobs
315 # The purpose of this job template is to setup a ODL merge job
316 # and deploy artifacts to Nexus.
318 # Required Variables:
319 # stream: release stream (eg. boron or carbon)
320 # branch: git branch (eg. stable/boron or master)
322 # Need to keep jobs that deploy to Nexus at end of build as Maven
323 # projects. Maybe reconsider this once upstream moves deploy to a
324 # separate lifecycle:
325 # https://issues.apache.org/jira/browse/MNG-5666
333 artifactDaysToKeep: '{build-artifact-days-to-keep}'
334 artifactNumToKeep: '{build-artifact-num-to-keep}'
337 - opendaylight-infra-parameters:
340 refspec: 'refs/heads/{branch}'
341 artifacts: '{archive-artifacts}'
344 - gerrit-trigger-scm:
346 choosing-strategy: 'default'
349 - opendaylight-infra-wrappers:
350 build-timeout: '{build-timeout}'
354 - gerrit-trigger-patch-merged:
355 server-name: '{server-name}'
360 - jacoco-nojava-workaround
361 - provide-maven-settings:
362 global-settings-file: 'odl-global-settings'
363 settings-file: '{mvn-settings}'
367 goals: '{mvn-goals} -V -B -Djenkins -Dmerge -Dstream={stream} -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
368 maven-opts: '{mvn-opts}'
369 settings: '{mvn-settings}'
371 global-settings: 'odl-global-settings'
372 global-settings-type: cfp
373 post-step-run-condition: UNSTABLE
377 condition-kind: file-exists
378 condition-filename: deploy-site.xml
379 condition-basedir: workspace
381 # The strategy here is intentional to run Maven site:deploy twice
382 # once using regular pom.xml to produce a staged-site which is
383 # then used by deploy-site.xml to push to Nexus. This is a
384 # workaround to Maven Site's default linking code which creates
385 # incorrect URLs for sites due to auto-detection assuming your
386 # project is configured in a certain way which ODL is not.
389 maven-version: 'mvn33'
391 goals: 'site:deploy -V -B -Dstream={stream}'
394 settings: '{mvn-settings}'
396 global-settings: 'odl-global-settings'
397 global-settings-type: cfp
399 maven-version: 'mvn33'
401 goals: 'site:deploy -V -B -Dstream={stream}'
404 settings: '{mvn-settings}'
406 global-settings: 'odl-global-settings'
407 global-settings-type: cfp
413 - email-notification:
414 email-recipients: '{email-recipients}'
415 email-prefix: '[{project-name}]'
419 deploy-unstable: false
421 - opendaylight-infra-shiplogs:
422 maven-version: 'mvn33'
425 name: '{project-name}-periodic-{stream}'
427 # Job template for periodic builders
429 # The purpose of this job template is to setup a periodic
432 # Required Variables:
433 # stream: release stream (eg. boron or carbon)
434 # branch: git branch (eg. stable/boron or master)
436 project-type: freestyle
444 - opendaylight-infra-parameters:
447 refspec: 'refs/heads/{branch}'
448 artifacts: '{archive-artifacts}'
456 - opendaylight-infra-wrappers:
457 build-timeout: '{build-timeout}'
463 - jacoco-nojava-workaround
464 - provide-maven-settings:
465 global-settings-file: 'odl-global-settings'
466 settings-file: '{mvn-settings}'
468 maven-version: 'mvn33'
469 goals: '{mvn-goals} -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
472 settings: '{mvn-settings}'
474 global-settings: 'odl-global-settings'
475 global-settings-type: cfp
478 - email-notification:
479 email-recipients: '{email-recipients}'
480 email-prefix: '[{project-name}]'
483 - opendaylight-infra-shiplogs:
484 maven-version: 'mvn33'
487 name: '{project-name}-sonar'
490 project-type: freestyle
497 artifactDaysToKeep: '1'
498 artifactNumToKeep: '1'
501 - opendaylight-infra-parameters:
504 refspec: 'refs/heads/{branch}'
505 artifacts: '{archive-artifacts}'
513 - opendaylight-infra-wrappers:
514 build-timeout: '{build-timeout}'
518 - gerrit-trigger-patch-sonar:
519 server-name: '{server-name}'
523 - jacoco-nojava-workaround
524 - provide-maven-settings:
525 global-settings-file: 'odl-global-settings'
526 settings-file: '{mvn-settings}'
528 maven-version: 'mvn33'
529 goals: '{mvn-goals} -V -B -Djenkins -Dsonar -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
532 settings: '{mvn-settings}'
534 global-settings: 'odl-global-settings'
535 global-settings-type: cfp
537 maven-version: 'mvn33'
538 # We should switch to the recommended configuration of sonar once
539 # JJB adds support for configurating the Sonar wrapper:
540 # http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Jenkins
541 goals: 'sonar:sonar -V -B -Djenkins -Dsonar -Dsonar.host.url=https://sonar.opendaylight.org -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
544 settings: '{mvn-settings}'
546 global-settings: 'odl-global-settings'
547 global-settings-type: cfp
550 - email-notification:
551 email-recipients: '{email-recipients}'
552 email-prefix: '[{project-name}]'
555 - opendaylight-infra-shiplogs:
556 maven-version: 'mvn33'
559 name: '{project-name}-validate-autorelease-{stream}'
562 project-type: freestyle
571 - opendaylight-infra-parameters:
574 refspec: 'refs/heads/{branch}'
575 artifacts: '{archive-artifacts}'
576 - autorelease-release-tag:
577 release-tag: 'validate'
578 - autorelease-release-branch:
579 release-branch: '{branch}'
582 default: '{git-url}/releng/autorelease'
583 description: "Autorelease clone URL"
588 credentials-id: 'opendaylight-jenkins-ssh'
598 - opendaylight-infra-wrappers:
599 build-timeout: '{build-timeout}'
603 server-name: '{server-name}'
605 - patchset-created-event:
606 exclude-drafts: 'true'
607 exclude-trivial-rebase: 'false'
608 exclude-no-code-change: 'true'
609 - draft-published-event
610 - comment-added-contains-event:
611 comment-contains-value: 'recheck'
612 - comment-added-contains-event:
613 comment-contains-value: 'revalidate'
615 - project-compare-type: 'ANT'
616 project-pattern: '{project}'
618 - branch-compare-type: 'ANT'
619 branch-pattern: '**/{branch}'
625 - jacoco-nojava-workaround
626 - autorelease-checkout-gerrit-patch
627 - autorelease-generate-release-patches
629 maven-version: 'mvn33'
630 pom: validate-pom.xml
631 goals: 'clean install dependency:tree -V -B -T1.5C -Pq -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
634 settings: 'autorelease-settings'
636 global-settings: 'odl-global-settings'
637 global-settings-type: cfp
639 maven-version: 'mvn33'
641 goals: 'clean validate -V -B -Pq -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
643 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
644 settings: 'autorelease-settings'
646 global-settings: 'odl-global-settings'
647 global-settings-type: cfp
648 - autorelease-sys-stats
651 - email-notification:
652 email-recipients: '{email-recipients}'
653 email-prefix: '[autorelease] [{project-name}]'
654 - opendaylight-infra-shiplogs:
655 maven-version: 'mvn33'
658 name: '{project-name}-verify-{stream}-{maven}-{jdks}'
660 # Job template for ODL verify jobs
662 # The purpose of this job template is to setup a ODL verify job
664 # Required Variables:
665 # stream: release stream (eg. boron or carbon)
666 # branch: git branch (eg. stable/boron or master)
668 project-type: freestyle
677 - opendaylight-infra-parameters:
680 refspec: 'refs/heads/{branch}'
681 artifacts: '{archive-artifacts}'
684 - gerrit-trigger-scm:
685 refspec: '$GERRIT_REFSPEC'
686 choosing-strategy: 'gerrit'
689 - opendaylight-infra-wrappers:
690 build-timeout: '{build-timeout}'
693 - gerrit-trigger-patch-submitted:
694 server-name: '{server-name}'
699 - jacoco-nojava-workaround
700 - provide-maven-settings:
701 global-settings-file: 'odl-global-settings'
702 settings-file: '{mvn-settings}'
704 maven-version: '{mvn-version}'
705 goals: '{mvn-goals} -V -B -Djenkins -Dstream={stream} -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
708 settings: '{mvn-settings}'
710 global-settings: 'odl-global-settings'
711 global-settings-type: cfp
715 - email-notification:
716 email-recipients: '{email-recipients}'
717 email-prefix: '[{project-name}]'
719 - opendaylight-infra-shiplogs:
720 maven-version: '{mvn-version}'