Make Java version for CSIT jobs configurable
[releng/builder.git] / jjb / integration / integration-test-jobs.yaml
index bda824055534b2fee8e4c62080ef7bc25a621901..5464d411073671d7790f5215f5832348cd576b59 100644 (file)
@@ -4,13 +4,14 @@
     jobs:
         - 'integration-verify-python'
         - 'integration-csit-verify-1node-library'
-        - 'integration-distribution-offline-{stream}'
         - 'integration-distribution-test-{stream}'
         - 'integration-patch-test-{stream}'
+        - 'integration-multipatch-test-{stream}'
 
     stream:
-        - beryllium:
+        - boron:
             branch: 'master'
+            jdk: 'openjdk8'
             csit-list: >
                 aaa-csit-1node-authn-only-{stream},
                 aaa-csit-1node-authn-all-{stream},
                 l2switch-csit-1node-switch-all-{stream},
                 l2switch-csit-1node-scalability-only-{stream},
                 l2switch-csit-1node-scalability-all-{stream},
-                lispflowmapping-csit-1node-all-only-{stream},
-                lispflowmapping-csit-1node-all-all-{stream},
+                lispflowmapping-csit-1node-msmr-only-{stream},
+                lispflowmapping-csit-1node-msmr-all-{stream},
+                nic-csit-1node-basic-all-{stream},
+                nic-csit-1node-basic-only-{stream},
+                openflowplugin-csit-1node-flow-services-only-{stream},
+                openflowplugin-csit-1node-flow-services-lithium-redesign-only-{stream},
+                openflowplugin-csit-1node-flow-services-all-{stream},
+                openflowplugin-csit-1node-scalability-only-{stream},
+                openflowplugin-csit-1node-scalability-lithium-redesign-only-{stream},
+                openflowplugin-csit-1node-scalability-all-{stream},
+                openflowplugin-csit-1node-cbench-performance-only-{stream},
+                openflowplugin-csit-1node-cbench-performance-lithium-redesign-only-{stream},
+                openflowplugin-csit-1node-config-performance-only-{stream},
+                openflowplugin-csit-1node-config-performance-lithium-redesign-only-{stream},
+                ovsdb-csit-1node-netvirt-only-{stream},
+                ovsdb-csit-1node-netvirt-all-{stream},
+                ovsdb-csit-1node-southbound-only-{stream},
+                ovsdb-csit-1node-southbound-all-{stream},
+                snmp-csit-1node-basic-only-{stream},
+                snmp-csit-1node-basic-all-{stream},
+                topoprocessing-csit-1node-topology-operations-all-{stream},
+                topoprocessing-csit-1node-topology-operations-only-{stream},
+                tsdr-csit-1node-hbase-datastore-only-{stream},
+                tsdr-csit-1node-hbase-datastore-all-{stream},
+                usc-csit-1node-channel-only-{stream},
+                usc-csit-1node-channel-all-{stream},
+                vpnservice-csit-1node-vpnservice-only-{stream},
+                vpnservice-csit-1node-vpnservice-all-{stream},
+                vtn-csit-1node-manager-only-{stream}
+
+        - beryllium:
+            branch: 'stable/beryllium'
+            jdk: 'openjdk7'
+            csit-list: >
+                aaa-csit-1node-authn-only-{stream},
+                aaa-csit-1node-authn-all-{stream},
+                bgpcep-csit-1node-userfeatures-only-{stream},
+                bgpcep-csit-1node-userfeatures-all-{stream},
+                capwap-csit-1node-ac-only-{stream},
+                capwap-csit-1node-ac-all-{stream},
+                controller-csit-3node-clustering-only-{stream},
+                controller-csit-3node-clustering-all-{stream},
+                integration-csit-3node-basic-only-{stream},
+                integration-csit-3node-basic-all-{stream},
+                integration-distribution-offline-{stream},
+                l2switch-csit-1node-switch-only-{stream},
+                l2switch-csit-1node-switch-all-{stream},
+                l2switch-csit-1node-scalability-only-{stream},
+                l2switch-csit-1node-scalability-all-{stream},
+                lispflowmapping-csit-1node-msmr-only-{stream},
+                lispflowmapping-csit-1node-msmr-all-{stream},
                 nic-csit-1node-basic-all-{stream},
                 nic-csit-1node-basic-only-{stream},
                 openflowplugin-csit-1node-flow-services-only-{stream},
@@ -49,8 +99,6 @@
                 snmp-csit-1node-basic-all-{stream},
                 topoprocessing-csit-1node-topology-operations-all-{stream},
                 topoprocessing-csit-1node-topology-operations-only-{stream},
-                tsdr-csit-1node-h2-datastore-only-{stream},
-                tsdr-csit-1node-h2-datastore-all-{stream},
                 tsdr-csit-1node-hbase-datastore-only-{stream},
                 tsdr-csit-1node-hbase-datastore-all-{stream},
                 usc-csit-1node-channel-only-{stream},
                 vpnservice-csit-1node-vpnservice-only-{stream},
                 vpnservice-csit-1node-vpnservice-all-{stream},
                 vtn-csit-1node-manager-only-{stream},
-                vtn-csit-1node-manager-all-{stream}
+                vtn-csit-1node-manager-all-{stream},
+                vtn-csit-1node-coordinator-only-{stream}
 
         - stable-lithium:
             branch: 'stable/lithium'
+            jdk: 'openjdk7'
             csit-list: >
                 aaa-csit-1node-authn-only-{stream},
                 aaa-csit-1node-authn-all-{stream},
                 capwap-csit-1node-ac-only-{stream},
                 capwap-csit-1node-ac-all-{stream},
                 controller-csit-3node-clustering-only-{stream},
-                controller-csit-3node-clustering-all-{stream},
                 integration-csit-3node-basic-only-{stream},
-                integration-csit-3node-basic-all-{stream},
                 integration-distribution-offline-{stream},
                 l2switch-csit-1node-switch-only-{stream},
                 l2switch-csit-1node-switch-all-{stream},
                 usc-csit-1node-channel-all-{stream},
                 vpnservice-csit-1node-vpnservice-only-{stream},
                 vpnservice-csit-1node-vpnservice-all-{stream},
-                vtn-csit-1node-manager-only-{stream},
-                vtn-csit-1node-manager-all-{stream}
+                vtn-csit-1node-manager-li-only-{stream},
+                vtn-csit-1node-manager-li-all-{stream},
+                vtn-csit-1node-coordinator-only-{stream}
 
         - stable-helium:
             branch: 'stable/helium'
+            jdk: 'openjdk7'
             csit-list: >
                 aaa-csit-1node-imds-authn-only-{stream},
                 aaa-csit-1node-imds-authn-all-{stream},
                 vtn-csit-1node-imds-manager-only-{stream},
                 vtn-csit-1node-imds-manager-all-{stream}
 
-    jdk: 'openjdk7'
 
-    # Trigger jobs (upstream dependencies)
-    trigger-jobs: >
-        odlparent-distribution-{stream},
-        yangtools-distribution-{stream},
-        controller-distribution-{stream},
-        aaa-distribution-{stream},
-        integration-distribution-merge-{stream}
 
 # Template: integration-verify-python
 # Goal: Verify python scripts correct syntax
         - project-parameter:
             project: 'integration/test'
         - integration-branch:
-            branch: 'master'
+            branch: 'stable/beryllium'
         - integration-bundleurl:
             bundleurl: 'last'
         - integration-controller-scope:
             controller-scope: 'only'
         - integration-controller-features:
-            controller-features: 'odl-openflowplugin-flow-services-ui,odl-bgpcep-pcep-all,odl-bgpcep-bgp-all,odl-bgpcep-bgp,odl-bgpcep-pcep,odl-netconf-connector-all'
+            controller-features: >
+                odl-openflowplugin-flow-services-ui,
+                odl-bgpcep-pcep,
+                odl-bgpcep-bgp,
+                odl-netconf-connector-all
         - integration-test-options:
             test-options: '-e adsal'
         - integration-test-plan:
             test-plan: 'test-libraries.txt'
         - integration-patch-refspec:
             branch: '$GERRIT_REFSPEC'
+        - integration-jdk-version:
+            # {jdk} is from releng-defaults
+            jdkversion: '{jdk}'
 
     scm:
         - integration-gerrit-scm:
             pattern: 'csit/libraries/*'
 
     builders:
+        - integration-cleanup-workspace
         - integration-install-robotframework
         - inject:
             properties-file: 'env.properties'
     publishers:
         - integration-robot:
             unstable-if: 0.0
-            pass-if: 0.0
-        - archive:
-            artifacts: 'karaf.log'
-        - email-notification:
-            email-prefix: '[integration]'
-
-# Template: integration-distribution-offline-{stream}
-# Goal: Verify distribution can start with no internet connection
-# Operation: This job deployes the controller removing any external repository definition
-# whenever there is a change in a kernel project (odlparent, controller, yangtools, etc...)
-
-- job-template:
-    name: 'integration-distribution-offline-{stream}'
-
-    project-type: freestyle
-    node: dynamic_controller
-
-    logrotate:
-        daysToKeep: '{build-days-to-keep}'
-        numToKeep: '{build-num-to-keep}'
-        artifactDaysToKeep: '{build-artifact-days-to-keep}'
-        artifactNumToKeep: '{build-artifact-num-to-keep}'
-
-    parameters:
-        - project-parameter:
-            project: 'integration/distribution'
-        - integration-branch:
-            branch: '{branch}'
-        - integration-bundleurl:
-            bundleurl: 'last'
-
-    wrappers:
-        - build-timeout
-        - ssh-agent-credentials:
-            users:
-                - '{ssh-credentials}'
-
-    triggers:
-        - reverse:
-            jobs: '{trigger-jobs}'
-            result: 'success'
-
-    builders:
-        - integration-get-bundle-vars
-        - inject:
-            properties-file: 'bundle_vars.txt'
-        - integration-deploy-controller-offline
-
-    publishers:
+            pass-if: 100.0
         - archive:
-            artifacts: 'karaf.log'
+            artifacts: 'karaf.log*'
         - email-notification:
             email-prefix: '[integration]'
 
     parameters:
         - integration-bundleurl:
             bundleurl: 'last'
+        - integration-jdk-version:
+            jdkversion: '{jdk}'
 
     triggers:
-        - timed: 'H H * * *'
+        - timed: 'H H * * 6'
 
     builders:
         - trigger-builds:
               predefined-parameters:
                   BUNDLEURL=$BUNDLEURL
 
+                  JDKVERSION=$JDKVERSION
+
     publishers:
         - email-notification:
             email-prefix: '[integration]'
 
 # Template: integration-patch-test-{stream}
 # Goal: Build a patch and run all available system test on a distribution containing the change
-# Operation: This job teamplate builds a patch, creates a distribution containing the patch, and
+# Operation: This job template builds a patch, creates a distribution containing the patch, and
 # triggers the distribution test when test-integration is used in gerrit comments
 
 - job-template:
             refspec: '$GERRIT_REFSPEC'
         - project-parameter:
             project: '$GERRIT_PROJECT'
+        - integration-branch:
+            branch: '{branch}'
         - integration-distribution-git-url
 
     scm:
                 notbuilt: true
 
     prebuilders:
+        - integration-rebase-gerrit-patch
         - integration-get-bundle-url
         - inject:
             properties-file: 'bundle.txt'
         - wipe-org-opendaylight-repo
-        - provide-maven-settings:
-            global-settings-file: '{odl-global-settings}'
-            settings-file: '{yangtools-settings}'
         - maven-target:
             maven-version: '{mvn33}'
             pom: '$GERRIT_PROJECT/pom.xml'
-            goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r source:jar javadoc:jar'
+            goals: 'clean install -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}'
             java-opts:
                 - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
             settings: '{integration-settings}'
     maven:
         maven-name: '{mvn33}'
         root-pom: 'distribution/pom.xml'
-        goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r source:jar javadoc:jar'
+        goals: 'clean install -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-settings}'
         global-settings: '{odl-global-settings}'
               predefined-parameters:
                   BUNDLEURL=$BUNDLEURL
 
+    publishers:
+        - email-notification:
+            email-prefix: '[$GERRIT_PROJECT]'
+
+# Template: integration-multipatch-test-{stream}
+# Goal: Build one or more patches and run all available system test on a distribution containing the change
+# Operation: This job template checks out and builds each patch provided in job parameters, creates a distribution
+# containing these patches, and triggers the distribution test job which includes most (if not all) available
+# CSIT jobs
+
+- job-template:
+    name: 'integration-multipatch-test-{stream}'
+
+    project-type: maven
+    node: dynamic_verify
+    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:
+        - patches-to-build-parameter:
+            patches_to_build: '$PATCHES_TO_BUILD'
+        - integration-branch:
+            branch: '{branch}'
+
+    wrappers:
+        - build-timeout
+        - ssh-agent-credentials:
+            users:
+                - '{ssh-credentials}'
+
+    prebuilders:
+        - wipe-org-opendaylight-repo
+        - integration-multipatch-builder
+        - inject:
+            properties-file: 'bundle.txt'
+        - provide-maven-settings:
+            global-settings-file: '{odl-global-settings}'
+            settings-file: '{yangtools-settings}'
+
+
+    maven:
+        maven-name: '{mvn33}'
+        root-pom: 'patch_tester/pom.xml'
+        # TODO: Make Maven option configurable. Currently tests are not skipped, everything elase is.
+        goals: 'clean install -f patch_tester/pom.xml -Djenkins -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}'
+        maven-opts: '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
+        settings: '{yangtools-settings}'
+        global-settings: '{odl-global-settings}'
+        post-step-run-condition: 'SUCCESS'
+
+    postbuilders:
+        - trigger-builds:
+            - project: 'integration-distribution-test-{stream}'
+              block: true
+              predefined-parameters:
+                  BUNDLEURL=$BUNDLEURL
+
     publishers:
         - email-notification:
             email-prefix: '[integration]'