---
-- job-template:
- # Template used for running CLM scans
- # Arguements:
- # {name} - Project Shortname
- # {project} - Fully qualified project name
- # {mvn-settings} - Project maven settings file
- # {stream}
- # {jdk}
- name: '{project-name}-clm-{stream}'
-
- project-type: freestyle
- node: '{build-node}'
- jdk: '{jdk}'
-
- properties:
- - opendaylight-infra-properties:
- build-days-to-keep: '{build-days-to-keep}'
-
- parameters:
- - opendaylight-infra-parameters:
- os-cloud: '{os-cloud}'
- 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: 'H H * * 6'
-
- builders:
- - provide-maven-settings:
- global-settings-file: 'global-settings'
- settings-file: '{mvn-settings}'
- - maven-target:
- maven-version: 'mvn33'
- pom: 'pom.xml'
- goals: |
- clean install dependency:tree com.sonatype.clm:clm-maven-plugin:index
- -Pq
- {opendaylight-infra-mvn-opts}
- java-opts:
- - '-Xmx4096m -XX:MaxPermSize=512m'
- settings: '{mvn-settings}'
- settings-type: cfp
- global-settings: 'global-settings'
- global-settings-type: cfp
- - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
- - check-clm:
- application-name: '{project-name}'
-
- publishers:
- - email-notification:
- email-recipients: '{email-recipients}'
- email-prefix: '[{project-name}]'
- - lf-infra-publish
+- job-group:
+ name: odl-maven-jobs
+
+ jobs:
+ - gerrit-maven-clm
+
+ # TODO: Figure out what's wrong with the gerrit-maven-merge job.
+ # - gerrit-maven-merge:
+ # post_build_trigger:
+ # - project:
+ # - 'distribution-merge-{stream}'
+ # condition: SUCCESS
+ # trigger-with-no-params: true
+ - '{project-name}-merge-{stream}':
+ build-timeout: 180
+ mvn-goals: clean install -V -Dmaven.compile.fork=true -Dintegrationtests -Dvtn.build.jobs=2
+
+ - gerrit-maven-release
+ - gerrit-maven-verify
+ - gerrit-maven-verify-dependencies:
+ build-timeout: 180
- 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. boron or carbon)
- # branch: git branch (eg. stable/boron or master)
+ ######################
+ # Default parameters #
+ ######################
+
+ archive-artifacts: >
+ **/*.log
+ **/hs_err_*.log
+ **/target/**/feature.xml
+ **/target/failsafe-reports/failsafe-summary.xml
+ **/target/surefire-reports/*-output.txt
+ mvn-goals: clean install
+
+ #####################
+ # Job Configuration #
+ #####################
project-type: freestyle
node: '{build-node}'
- jdk: '{jdk}'
+ jdk: '{java-version}'
properties:
- opendaylight-infra-properties:
global-settings-file: 'global-settings'
settings-file: '{mvn-settings}'
- maven-target:
- maven-version: 'mvn33'
+ maven-version: 'mvn35'
goals: |
{mvn-goals}
{opendaylight-infra-mvn-opts}
email-recipients: '{email-recipients}'
email-prefix: '{email-upstream}'
- findbugs
- - jacoco-report
+ - lf-jacoco-report
- lf-infra-publish
- 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. boron or carbon)
- # branch: git branch (eg. stable/boron or master)
+ ######################
+ # Default parameters #
+ ######################
+
+ archive-artifacts: >
+ **/*.log
+ **/hs_err_*.log
+ **/target/**/feature.xml
+ **/target/failsafe-reports/failsafe-summary.xml
+ **/target/surefire-reports/*-output.txt
+ cron: 'H H * * 0'
+ mvn-opts: ''
+ mvn-version: mvn35
+ java-version: openjdk8
+
+ #####################
+ # Job Configuration #
+ #####################
# Need to keep jobs that deploy to Nexus at end of build as Maven
# projects. Maybe reconsider this once upstream moves deploy to a
# https://issues.apache.org/jira/browse/MNG-5666
project-type: maven
node: '{build-node}'
- jdk: '{jdk}'
+ jdk: '{java-version}'
properties:
- opendaylight-infra-properties:
build-timeout: '{build-timeout}'
triggers:
- - timed: 'H H * * 0'
+ - timed: '{obj:cron}'
- gerrit-trigger-patch-merged:
- server-name: '{server-name}'
+ gerrit-server-name: '{gerrit-server-name}'
name: '{project}'
branch: '{branch}'
- provide-maven-settings:
global-settings-file: 'global-settings'
settings-file: '{mvn-settings}'
+ - lf-maven-install:
+ mvn-version: '{mvn-version}'
# TODO: Do we want to apply sophisticated checks as in *-distribution-check-*?
maven:
- maven-name: 'mvn33'
+ maven-name: '{mvn-version}'
goals: >
{mvn-goals}
-Dmerge
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: 'global-settings'
- global-settings-type: cfp
- - opendaylight-infra-deploy-maven-site:
- settings-file: '{mvn-settings}'
-
reporters:
- findbugs
id: ''
unique-version: true
deploy-unstable: false
- - jacoco-report
+ - lf-jacoco-report
- lf-infra-publish
- trigger:
project: 'distribution-merge-{stream}'
threshold: SUCCESS
-
-- job-template:
- name: '{project-name}-sonar'
- disabled: false
-
- project-type: freestyle
- node: '{build-node}'
- jdk: 'openjdk8'
-
- properties:
- - opendaylight-infra-properties:
- build-days-to-keep: 7
-
- parameters:
- - opendaylight-infra-parameters:
- os-cloud: '{os-cloud}'
- 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:
- server-name: '{server-name}'
- name: '{project}'
- # FIXME: Make sure this does not alter Gerrit votes, then update docs.
-
- builders:
- - jacoco-nojava-workaround
- - provide-maven-settings:
- global-settings-file: 'global-settings'
- settings-file: '{mvn-settings}'
- - maven-target:
- maven-version: 'mvn33'
- goals: |
- {mvn-goals}
- -Dsonar
- {opendaylight-infra-mvn-opts}
- maven-opts:
- - '{mvn-opts}'
- settings: '{mvn-settings}'
- settings-type: cfp
- global-settings: 'global-settings'
- global-settings-type: cfp
- - maven-target:
- maven-version: 'mvn33'
- # We should switch to the recommended configuration of sonar once
- # JJB adds support for configurating the Sonar wrapper:
- # http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Jenkins
- goals: |
- sonar:sonar
- -Dsonar
- -Dsonar.host.url=https://sonar.opendaylight.org
- {opendaylight-infra-mvn-opts}
- maven-opts:
- - '{mvn-opts}'
- settings: '{mvn-settings}'
- settings-type: cfp
- global-settings: 'global-settings'
- global-settings-type: cfp
-
- publishers:
- - email-notification:
- email-recipients: '{email-recipients}'
- email-prefix: '[{project-name}]'
- - jacoco-report
- - findbugs
- - lf-infra-publish
-
-- job-template:
- name: '{project-name}-validate-autorelease-{stream}'
- disabled: false
-
- project-type: freestyle
- node: '{build-node}'
- concurrent: true
- jdk: '{jdk}'
-
- properties:
- - opendaylight-infra-properties:
- build-days-to-keep: 7
-
- parameters:
- - opendaylight-infra-parameters:
- os-cloud: '{os-cloud}'
- 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: '{git-url}/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-trigger-patch-submitted:
- server: '{server-name}'
- project: '{project}'
- branch: '{branch}'
- files: '**/*.xml'
-
- builders:
- - jacoco-nojava-workaround
- - autorelease-checkout-gerrit-patch
- - autorelease-generate-release-patches
- # In a perfect world projects should be releasing separately and we consume them
- # via a project that pulls the release bits from each project from Nexus.
- # Keep the patches compatible with that ideal, but apply an edit
- # to enable building in a single maven reactor afterwards.
- - autorelease-fix-relative-paths
- - maven-target:
- maven-version: 'mvn33'
- pom: validate-pom.xml
- goals: |
- clean install dependency:tree
- -T1.5C
- -Pq
- {opendaylight-infra-mvn-opts}
- java-opts:
- - '-Xmx8g'
- settings: 'autorelease-settings'
- settings-type: cfp
- global-settings: 'global-settings'
- global-settings-type: cfp
- - maven-target:
- maven-version: 'mvn33'
- pom: 'pom.xml'
- goals: |
- clean validate
- -Pq
- {opendaylight-infra-mvn-opts}
- java-opts:
- - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
- settings: 'autorelease-settings'
- settings-type: cfp
- global-settings: 'global-settings'
- global-settings-type: cfp
-
- publishers:
- - email-notification:
- email-recipients: '{email-recipients}'
- email-prefix: '[autorelease] [{project-name}]'
- - lf-infra-publish
-
-- 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. boron or carbon)
- # branch: git branch (eg. stable/boron or master)
-
- project-type: freestyle
- node: '{build-node}'
- concurrent: true
- jdk: '{jdks}'
-
- properties:
- - opendaylight-infra-properties:
- build-days-to-keep: 7
-
- parameters:
- - opendaylight-infra-parameters:
- os-cloud: '{os-cloud}'
- 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:
- server: '{server-name}'
- project: '{project}'
- branch: '{branch}'
- files: '**'
-
- builders:
- - jacoco-nojava-workaround
- - provide-maven-settings:
- global-settings-file: 'global-settings'
- settings-file: '{mvn-settings}'
- - maven-target:
- maven-version: '{mvn-version}'
- goals: |
- {mvn-goals}
- -Dstream={stream}
- {opendaylight-infra-mvn-opts}
- java-opts:
- - '{mvn-opts}'
- settings: '{mvn-settings}'
- settings-type: cfp
- global-settings: 'global-settings'
- global-settings-type: cfp
-
- publishers:
- - findbugs
- - email-notification:
- email-recipients: '{email-recipients}'
- email-prefix: '[{project-name}]'
- - jacoco-report
- - lf-infra-publish