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
51 -Dmaven.repo.local=/tmp/r
52 -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
54 - '-Xmx4096m -XX:MaxPermSize=512m'
55 settings: '{mvn-settings}'
57 global-settings: 'odl-global-settings'
58 global-settings-type: cfp
59 - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
61 application-name: '{project-name}'
65 email-recipients: '{email-recipients}'
66 email-prefix: '[{project-name}]'
67 - opendaylight-infra-shiplogs:
68 maven-version: 'mvn33'
71 # Template: {project-name}-distribution-check-{stream}
72 # Goal: Build a patch and make sure the distribution can deploy with this change.
73 # Operation: This job template builds a patch, creates a distribution containing
74 # the patch (making sure dependencies are specified),
75 # and performs the distribution deploy test.
77 name: '{project-name}-distribution-check-{stream}'
80 project-type: freestyle
86 - opendaylight-infra-properties:
87 build-days-to-keep: '{build-days-to-keep}'
90 - opendaylight-infra-parameters:
91 os-cloud: '{os-cloud}'
94 refspec: 'refs/heads/{branch}'
95 artifacts: '{archive-artifacts} **/dependency_tree.txt **/target/surefire-reports/*-output.txt'
96 - 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 - distribution-check-verify-groupid:
127 gerrit-project: '$GERRIT_PROJECT'
128 - distribution-check-download-deps:
129 dist-pom: 'distribution/pom.xml'
130 - distribution-check-delete-snapshots
131 - distribution-check-configure-remotes
132 - distribution-check-repeat-build:
133 dist-pom: 'distribution/pom.xml'
134 - integration-distribution-check
137 - email-notification:
138 email-recipients: '{email-recipients}'
139 email-prefix: '[{project-name}]'
144 mkdir -p $WORKSPACE/archives
145 cp karaf*.log $WORKSPACE/archives
146 script-only-if-succeeded: false
147 script-only-if-failed: false
148 mark-unstable-if-failed: true
151 - opendaylight-infra-shiplogs:
152 maven-version: 'mvn33'
155 name: '{project-name}-integration-{stream}'
157 # Job template for ODL integration verify jobs
159 # This is similar to a normal verify job, but it runs
160 # when a project that's a dependency of your project
161 # is successfully built.
163 # Required Variables:
164 # stream: release stream (eg. boron or carbon)
165 # branch: git branch (eg. stable/boron or master)
167 project-type: freestyle
172 - opendaylight-infra-properties:
173 build-days-to-keep: '{build-days-to-keep}'
176 - opendaylight-infra-parameters:
177 os-cloud: '{os-cloud}'
180 refspec: 'refs/heads/{branch}'
181 artifacts: '{archive-artifacts}'
189 - opendaylight-infra-wrappers:
190 build-timeout: '{build-timeout}'
194 jobs: '{dependencies}'
198 - jacoco-nojava-workaround
199 - provide-maven-settings:
200 global-settings-file: 'odl-global-settings'
201 settings-file: '{mvn-settings}'
203 maven-version: 'mvn33'
204 goals: '{mvn-goals} -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
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-*?
284 -Dmaven.repo.local=/tmp/r
285 -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
286 maven-opts: '{mvn-opts}'
287 settings: '{mvn-settings}'
289 global-settings: 'odl-global-settings'
290 global-settings-type: cfp
291 post-step-run-condition: UNSTABLE
295 condition-kind: file-exists
296 condition-filename: deploy-site.xml
297 condition-basedir: workspace
299 # The strategy here is intentional to run Maven site:deploy twice
300 # once using regular pom.xml to produce a staged-site which is
301 # then used by deploy-site.xml to push to Nexus. This is a
302 # workaround to Maven Site's default linking code which creates
303 # incorrect URLs for sites due to auto-detection assuming your
304 # project is configured in a certain way which ODL is not.
307 maven-version: 'mvn33'
309 goals: 'site:deploy -V -B -Dstream={stream}'
312 settings: '{mvn-settings}'
314 global-settings: 'odl-global-settings'
315 global-settings-type: cfp
317 maven-version: 'mvn33'
319 goals: 'site:deploy -V -B -Dstream={stream}'
322 settings: '{mvn-settings}'
324 global-settings: 'odl-global-settings'
325 global-settings-type: cfp
331 - email-notification:
332 email-recipients: '{email-recipients}'
333 email-prefix: '[{project-name}]'
337 deploy-unstable: false
339 - opendaylight-infra-shiplogs:
340 maven-version: 'mvn33'
342 project: 'distribution-merge-{stream}'
346 name: '{project-name}-sonar'
349 project-type: freestyle
354 - opendaylight-infra-properties:
355 build-days-to-keep: 7
358 - opendaylight-infra-parameters:
359 os-cloud: '{os-cloud}'
362 refspec: 'refs/heads/{branch}'
363 artifacts: '{archive-artifacts}'
371 - opendaylight-infra-wrappers:
372 build-timeout: '{build-timeout}'
376 - gerrit-trigger-patch-sonar:
377 server-name: '{server-name}'
379 # FIXME: Make sure this does not alter Gerrit votes, then update docs.
382 - jacoco-nojava-workaround
383 - provide-maven-settings:
384 global-settings-file: 'odl-global-settings'
385 settings-file: '{mvn-settings}'
387 maven-version: 'mvn33'
393 -Dmaven.repo.local=/tmp/r
394 -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
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
410 -Dsonar.host.url=https://sonar.opendaylight.org
411 -Dmaven.repo.local=/tmp/r
412 -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
415 settings: '{mvn-settings}'
417 global-settings: 'odl-global-settings'
418 global-settings-type: cfp
421 - email-notification:
422 email-recipients: '{email-recipients}'
423 email-prefix: '[{project-name}]'
426 - opendaylight-infra-shiplogs:
427 maven-version: 'mvn33'
430 name: '{project-name}-validate-autorelease-{stream}'
433 project-type: freestyle
439 - opendaylight-infra-properties:
440 build-days-to-keep: 7
443 - opendaylight-infra-parameters:
444 os-cloud: '{os-cloud}'
447 refspec: 'refs/heads/{branch}'
448 artifacts: '{archive-artifacts}'
449 - autorelease-release-tag:
450 release-tag: 'validate'
451 - autorelease-release-branch:
452 release-branch: '{branch}'
455 default: '{git-url}/releng/autorelease'
456 description: "Autorelease clone URL"
461 credentials-id: 'opendaylight-jenkins-ssh'
471 - opendaylight-infra-wrappers:
472 build-timeout: '{build-timeout}'
475 - gerrit-trigger-patch-submitted:
476 server: '{server-name}'
482 - jacoco-nojava-workaround
483 - autorelease-checkout-gerrit-patch
484 - autorelease-generate-release-patches
485 # In a perfect world projects should be releasing separately and we consume them
486 # via a project that pulls the release bits from each project from Nexus.
487 # Keep the patches compatible with that ideal, but apply an edit
488 # to enable building in a single maven reactor afterwards.
489 - autorelease-fix-relative-paths
491 maven-version: 'mvn33'
492 pom: validate-pom.xml
494 clean install dependency:tree
497 -Dmaven.repo.local=/tmp/r
498 -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
501 settings: 'autorelease-settings'
503 global-settings: 'odl-global-settings'
504 global-settings-type: cfp
506 maven-version: 'mvn33'
512 -Dmaven.repo.local=/tmp/r
513 -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
515 - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
516 settings: 'autorelease-settings'
518 global-settings: 'odl-global-settings'
519 global-settings-type: cfp
520 - autorelease-sys-stats
523 - email-notification:
524 email-recipients: '{email-recipients}'
525 email-prefix: '[autorelease] [{project-name}]'
526 - opendaylight-infra-shiplogs:
527 maven-version: 'mvn33'
530 name: '{project-name}-verify-{stream}-{maven}-{jdks}'
532 # Job template for ODL verify jobs
534 # The purpose of this job template is to setup a ODL verify job
536 # Required Variables:
537 # stream: release stream (eg. boron or carbon)
538 # branch: git branch (eg. stable/boron or master)
540 project-type: freestyle
546 - opendaylight-infra-properties:
547 build-days-to-keep: 7
550 - opendaylight-infra-parameters:
551 os-cloud: '{os-cloud}'
554 refspec: 'refs/heads/{branch}'
555 artifacts: '{archive-artifacts}'
558 - gerrit-trigger-scm:
559 refspec: '$GERRIT_REFSPEC'
560 choosing-strategy: 'gerrit'
563 - opendaylight-infra-wrappers:
564 build-timeout: '{build-timeout}'
567 - gerrit-trigger-patch-submitted:
568 server: '{server-name}'
574 - jacoco-nojava-workaround
575 - provide-maven-settings:
576 global-settings-file: 'odl-global-settings'
577 settings-file: '{mvn-settings}'
579 maven-version: '{mvn-version}'
584 -Dmaven.repo.local=/tmp/r
585 -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
588 settings: '{mvn-settings}'
590 global-settings: 'odl-global-settings'
591 global-settings-type: cfp
595 - email-notification:
596 email-recipients: '{email-recipients}'
597 email-prefix: '[{project-name}]'
599 - opendaylight-infra-shiplogs:
600 maven-version: '{mvn-version}'