# {mvn-settings} - Project maven settings file
# {stream}
# {jdk}
- name: '{name}-clm-{stream}'
+ name: '{project-name}-clm-{stream}'
project-type: maven
- node: dynamic_verify
+ node: '{build-node}'
jdk: '{jdk}'
logrotate:
numToKeep: '{build-num-to-keep}'
parameters:
- - project-parameter:
+ - opendaylight-infra-parameters:
project: '{project}'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
scm:
- git-scm:
maven:
maven-name: '{mvn33}'
root-pom: 'pom.xml'
- goals: 'clean install com.sonatype.clm:clm-maven-plugin:index -V -B -Djenkins -DskipTests=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ goals: 'clean install dependency:tree com.sonatype.clm:clm-maven-plugin:index -V -B -Djenkins -DskipTests=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
maven-opts: '-Xmx4096m -XX:MaxPermSize=512m'
settings: '{mvn-settings}'
settings-type: cfp
postbuilders:
- shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
- check-clm:
- application-name: '{name}'
+ application-name: '{project-name}'
publishers:
- email-notification:
- email-prefix: '[{name}]'
+ email-prefix: '[{project-name}]'
- archive-build:
maven-version: '{mvn33}'
-# Template: integration-patch-distribution-{stream}
-# Goal: Build a patch and make sure the distribution can deploy with this change
-# Operation: This job template builds a patch, creates a distribution containing
-# the patch, and triggers the distribution deploy test
+- job-template:
+ name: '{project-name}-distribution-{stream}'
+
+ # Required variables:
+ # stream: release stream (eg. stable-lithium or beryllium)
+ # branch: git branch (eg. stable/lithium or master)
+
+ project-type: maven
+ node: '{build-node}'
+ jdk: '{jdk}'
+
+ logrotate:
+ daysToKeep: '{build-days-to-keep}'
+ numToKeep: '{build-num-to-keep}'
+ artifactDaysToKeep: '{build-artifact-days-to-keep}'
+ artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+ parameters:
+ - opendaylight-infra-parameters:
+ project: 'integration/distribution'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts} **/dependency_tree.txt'
+
+ scm:
+ - git-scm:
+ refspec: ''
+ branch: '{branch}'
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - reverse:
+ jobs: '{project}-merge-{stream}'
+ result: 'success'
+
+ prebuilders:
+ - provide-maven-settings:
+ global-settings-file: 'odl-global-settings'
+ settings-file: '{mvn-settings}'
+
+ maven:
+ maven-name: '{mvn33}'
+ root-pom: 'pom.xml'
+ 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'
+ maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
+ settings: 'integration-distribution-settings'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+
+ publishers:
+ - email-notification:
+ email-prefix: '[{project}]'
+ - maven-deploy:
+ id: ''
+ unique-version: true
+ deploy-unstable: false
+ - archive-build:
+ maven-version: '{mvn33}'
- job-template:
- name: '{name}-distribution-check-{stream}'
+ # Template: {name}-distribution-check-{stream}
+ # Goal: Build a patch and make sure the distribution can deploy with this change
+ # Operation: This job template builds a patch, creates a distribution containing
+ # the patch, and triggers the distribution deploy test
+
+ name: '{project-name}-distribution-check-{stream}'
disabled: '{obj:disable_distribution_check}'
project-type: maven
- node: dynamic_verify
+ node: '{build-node}'
concurrent: true
jdk: '{jdk}'
artifactNumToKeep: '{build-artifact-num-to-keep}'
parameters:
- - gerrit-parameters:
+ - opendaylight-infra-parameters:
project: '{project}'
branch: '{branch}'
refspec: 'refs/heads/{branch}'
- - project-parameter:
- project: '{project}'
+ artifacts: '{archive-artifacts} **/dependency_tree.txt'
- integration-distribution-git-url
scm:
comment-contains-value: 'recheck'
projects:
- project-compare-type: 'ANT'
- project-pattern: '{name}'
+ project-pattern: '{project}'
branches:
- branch-compare-type: 'ANT'
branch-pattern: '**/{branch}'
- maven-target:
maven-version: '{mvn33}'
pom: '$GERRIT_PROJECT/pom.xml'
- goals: 'clean install -V -B -Djenkins -DskipTests -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true -Dmaven.site.skip=true -DgenerateReports=false -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Dstream={stream}'
+ 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}'
java-opts:
- '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
settings: '{mvn-settings}'
maven:
maven-name: '{mvn33}'
root-pom: 'distribution/pom.xml'
- goals: 'clean install -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ 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'
maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
settings: '{mvn-settings}'
settings-type: cfp
publishers:
- email-notification:
- email-prefix: '[{name}]'
+ email-prefix: '[{project-name}]'
- postbuildscript:
builders:
- shell: |
mark-unstable-if-failed: True
- archive-build:
maven-version: '{mvn33}'
+
+- job-template:
+ name: '{project-name}-integration-{stream}'
+
+ # Job template for ODL integration verify jobs
+ #
+ # This is similar to a normal verify job, but it runs
+ # when a project that's a dependency of your project
+ # is successfully built.
+ #
+ # Required Variables:
+ # stream: release stream (eg. stable-lithium or beryllium)
+ # branch: git branch (eg. stable/lithium or master)
+
+ project-type: maven
+ node: '{build-node}'
+ jdk: '{jdk}'
+
+ logrotate:
+ daysToKeep: '{build-days-to-keep}'
+ numToKeep: '{build-num-to-keep}'
+ artifactDaysToKeep: '{build-artifact-days-to-keep}'
+ artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+ parameters:
+ - opendaylight-infra-parameters:
+ project: '{project}'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
+
+ scm:
+ - git-scm:
+ refspec: ''
+ branch: '{branch}'
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - reverse:
+ jobs: '{dependencies}'
+ result: 'success'
+
+ prebuilders:
+ - jacoco-nojava-workaround
+ - provide-maven-settings:
+ global-settings-file: 'odl-global-settings'
+ settings-file: '{mvn-settings}'
+
+ maven:
+ maven-name: '{mvn33}'
+ goals: '{mvn-goals} -V -B -Djenkins'
+ maven-opts: '{mvn-opts}'
+ settings: '{mvn-settings}'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+
+ reporters:
+ - findbugs
+
+ publishers:
+ - email-notification:
+ email-prefix: '{email-upstream}'
+ - jacoco-report
+ - archive-build:
+ maven-version: '{mvn33}'
+
+- job-template:
+ name: '{project-name}-merge-{stream}'
+
+ # Job template for ODL merge jobs
+ #
+ # The purpose of this job template is to setup a ODL merge job
+ # and deploy artifacts to Nexus.
+ #
+ # Required Variables:
+ # stream: release stream (eg. stable-lithium or beryllium)
+ # branch: git branch (eg. stable/lithium or master)
+
+ project-type: maven
+ node: '{build-node}'
+ jdk: '{jdk}'
+
+ logrotate:
+ daysToKeep: '14'
+ numToKeep: '10'
+ artifactDaysToKeep: '{build-artifact-days-to-keep}'
+ artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+ parameters:
+ - opendaylight-infra-parameters:
+ project: '{project}'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
+
+ scm:
+ - gerrit-trigger-scm:
+ refspec: ''
+ choosing-strategy: 'default'
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - timed: 'H H * * 0'
+ - gerrit-trigger-patch-merged:
+ name: '{project}'
+ branch: '{branch}'
+
+ prebuilders:
+ - jacoco-nojava-workaround
+ - provide-maven-settings:
+ global-settings-file: 'odl-global-settings'
+ settings-file: '{mvn-settings}'
+
+ maven:
+ maven-name: '{mvn33}'
+ goals: '{mvn-goals} -V -B -Djenkins -Dmerge -Dstream={stream}'
+ maven-opts: '{mvn-opts}'
+ settings: '{mvn-settings}'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+ post-step-run-condition: UNSTABLE
+
+ postbuilders:
+ - conditional-step:
+ condition-kind: file-exists
+ condition-filename: deploy-site.xml
+ condition-basedir: workspace
+
+ # The strategy here is intentional to run Maven site:deploy twice
+ # once using regular pom.xml to produce a staged-site which is
+ # then used by deploy-site.xml to push to Nexus. This is a
+ # workaround to Maven Site's default linking code which creates
+ # incorrect URLs for sites due to auto-detection assuming your
+ # project is configured in a certain way which ODL is not.
+ steps:
+ - maven-target:
+ maven-version: '{mvn33}'
+ pom: pom.xml
+ goals: 'site:deploy -V -B -Dstream={stream}'
+ java-opts:
+ - '-Xmx2g'
+ settings: '{mvn-settings}'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+ - maven-target:
+ maven-version: '{mvn33}'
+ pom: deploy-site.xml
+ goals: 'site:deploy -V -B -Dstream={stream}'
+ java-opts:
+ - '-Xmx2g'
+ settings: '{mvn-settings}'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+
+ reporters:
+ - findbugs
+
+ publishers:
+ - email-notification:
+ email-prefix: '[{project-name}]'
+ - maven-deploy:
+ id: ''
+ unique-version: true
+ deploy-unstable: false
+ - jacoco-report
+ - archive-build:
+ maven-version: '{mvn33}'
+
+- job-template:
+ name: '{project-name}-periodic-{stream}'
+
+ # Job template for periodic builders
+ #
+ # The purpose of this job template is to setup a periodic
+ # builder.
+ #
+ # Required Variables:
+ # stream: release stream (eg. stable-lithium or beryllium)
+ # branch: git branch (eg. stable/lithium or master)
+
+ project-type: maven
+ node: '{build-node}'
+ jdk: '{jdk}'
+
+ logrotate:
+ daysToKeep: '14'
+
+ parameters:
+ - opendaylight-infra-parameters:
+ project: '{project}'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
+
+ scm:
+ - git-scm:
+ refspec: ''
+ branch: '{branch}'
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - timed: '@daily'
+
+ prebuilders:
+ - jacoco-nojava-workaround
+ - provide-maven-settings:
+ global-settings-file: 'odl-global-settings'
+ settings-file: '{mvn-settings}'
+
+ maven:
+ maven-name: '{mvn33}'
+ goals: '{mvn-goals} -V -B -Djenkins'
+ maven-opts: '{mvn-opts}'
+ settings: '{mvn-settings}'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+
+ reporters:
+ - findbugs
+
+ publishers:
+ - email-notification:
+ email-prefix: '[{project-name}]'
+ - jacoco-report
+ - archive-build:
+ maven-version: '{mvn33}'
+
+- job-template:
+ name: '{project-name}-sonar'
+ disabled: false
+
+ project-type: maven
+ node: '{build-node}'
+ jdk: 'openjdk8'
+
+ logrotate:
+ daysToKeep: '7'
+ numToKeep: '10'
+ artifactDaysToKeep: '1'
+ artifactNumToKeep: '1'
+
+ parameters:
+ - opendaylight-infra-parameters:
+ project: '{project}'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
+
+ scm:
+ - git-scm:
+ refspec: ''
+ branch: 'master'
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - timed: 'H H * * 6'
+ - gerrit-trigger-patch-sonar:
+ name: '{project}'
+
+ prebuilders:
+ - jacoco-nojava-workaround
+ - provide-maven-settings:
+ global-settings-file: 'odl-global-settings'
+ settings-file: '{mvn-settings}'
+
+ maven:
+ maven-name: '{mvn33}'
+ goals: '{mvn-goals} -V -B -Djenkins -Dsonar'
+ maven-opts: '{mvn-opts}'
+ settings: '{mvn-settings}'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+
+ reporters:
+ - findbugs
+
+ publishers:
+ - sonar:
+ language: 'java'
+ maven-opts: '-Xmx6144m -XX:MaxPermSize=1024m'
+ - email-notification:
+ email-prefix: '[{project-name}]'
+ - jacoco-report
+ - archive-build:
+ maven-version: '{mvn33}'
+
+- job-template:
+ name: '{project-name}-validate-autorelease-{stream}'
+ disabled: '{obj:disable_autorelease}'
+
+ project-type: maven
+ node: '{build-node}'
+ concurrent: true
+ jdk: '{jdk}'
+
+ logrotate:
+ daysToKeep: '{build-days-to-keep}'
+ numToKeep: '{build-num-to-keep}'
+ artifactDaysToKeep: '{build-artifact-days-to-keep}'
+ artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+ parameters:
+ - opendaylight-infra-parameters:
+ project: '{project}'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
+ - autorelease-release-tag:
+ release-tag: 'validate'
+ - autorelease-release-branch:
+ release-branch: '{branch}'
+ - string:
+ name: CLONE_URL
+ default: 'ssh://jenkins-$SILO@git.opendaylight.org:29418/releng/autorelease'
+ description: "Autorelease clone URL"
+
+ scm:
+ - git:
+ url: '$CLONE_URL'
+ credentials-id: 'opendaylight-jenkins-ssh'
+ refspec: ''
+ branches:
+ - 'origin/{branch}'
+ skip-tag: true
+ submodule:
+ recursive: true
+ timeout: 60
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - gerrit:
+ server-name: 'OpenDaylight'
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: 'true'
+ exclude-trivial-rebase: 'false'
+ exclude-no-code-change: 'true'
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: 'recheck'
+ - comment-added-contains-event:
+ comment-contains-value: 'reverify'
+ - comment-added-contains-event:
+ comment-contains-value: 'revalidate'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+ file-paths:
+ - compare-type: ANT
+ pattern: '**/*.xml'
+
+ prebuilders:
+ - jacoco-nojava-workaround
+ - autorelease-checkout-gerrit-patch
+ - autorelease-generate-release-patches
+ - maven-target:
+ maven-version: '{mvn33}'
+ pom: validate-pom.xml
+ goals: 'clean install dependency:tree -V -B -T1.5C -Djenkins -DskipTests -Dcheckstyle.skip=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ java-opts:
+ - '-Xmx8g'
+ settings: 'autorelease-settings'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+
+ maven:
+ maven-name: '{mvn33}'
+ root-pom: 'pom.xml'
+ goals: 'clean validate -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ maven-opts: '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
+ settings: 'autorelease-settings'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+ automatic-archiving: false
+ post-step-run-condition: UNSTABLE
+
+ postbuilders:
+ - autorelease-sys-stats
+
+ publishers:
+ - email-notification:
+ email-prefix: '[autorelease] [{project-name}]'
+ - archive-build:
+ maven-version: '{mvn33}'
+
+- job-template:
+ name: '{project-name}-verify-{stream}'
+
+ # Job template for ODL verify jobs
+ #
+ # The purpose of this job template is to setup a ODL verify job
+ #
+ # Required Variables:
+ # stream: release stream (eg. stable-lithium or beryllium)
+ # branch: git branch (eg. stable/lithium or master)
+
+ project-type: matrix
+ node: matrix_master
+ concurrent: true
+
+ axes:
+ - axis:
+ type: slave
+ name: nodes
+ values:
+ - '{build-node}'
+ - axis:
+ type: jdk
+ values: '{obj:jdks}'
+
+ logrotate:
+ daysToKeep: '14'
+
+ parameters:
+ - opendaylight-infra-parameters:
+ project: '{project}'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
+
+ scm:
+ - gerrit-trigger-scm:
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - gerrit-trigger-patch-submitted:
+ name: '{project}'
+ branch: '{branch}'
+
+ builders:
+ - jacoco-nojava-workaround
+ - provide-maven-settings:
+ global-settings-file: 'odl-global-settings'
+ settings-file: '{mvn-settings}'
+ - maven-target:
+ maven-version: '{mvn33}'
+ goals: '{mvn-goals} -V -B -Djenkins -Dstream={stream}'
+ java-opts:
+ - '{mvn-opts}'
+ settings: '{mvn-settings}'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+
+ publishers:
+ - findbugs
+ - email-notification:
+ email-prefix: '[{project-name}]'
+ - jacoco-report
+ - archive-build:
+ maven-version: '{mvn33}'
+
+- job-template:
+ name: '{project-name}-verify-{stream}-{maven}-{jdks}'
+
+ # Job template for ODL verify jobs
+ #
+ # The purpose of this job template is to setup a ODL verify job
+ #
+ # Required Variables:
+ # stream: release stream (eg. stable-lithium or beryllium)
+ # branch: git branch (eg. stable/lithium or master)
+
+ project-type: freestyle
+ node: '{build-node}'
+ concurrent: true
+ jdk: '{jdks}'
+
+ logrotate:
+ daysToKeep: '7'
+
+ parameters:
+ - opendaylight-infra-parameters:
+ project: '{project}'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
+
+ scm:
+ - gerrit-trigger-scm:
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - gerrit-trigger-patch-submitted:
+ name: '{project}'
+ branch: '{branch}'
+
+ builders:
+ - jacoco-nojava-workaround
+ - provide-maven-settings:
+ global-settings-file: 'odl-global-settings'
+ settings-file: '{mvn-settings}'
+ - maven-target:
+ maven-version: '{mvn-version}'
+ goals: '{mvn-goals} -V -B -Djenkins -Dstream={stream}'
+ java-opts:
+ - '{mvn-opts}'
+ settings: '{mvn-settings}'
+ settings-type: cfp
+ global-settings: 'odl-global-settings'
+ global-settings-type: cfp
+
+ publishers:
+ - findbugs
+ - email-notification:
+ email-prefix: '[{project-name}]'
+ - jacoco-report
+ - archive-build:
+ maven-version: '{mvn-version}'