Rework the way Java version is set in CSIT jobs
[releng/builder.git] / jjb / integration / integration-test-jobs.yaml
index 34bbd2035cd8efc0af2cc01eb2cb0f2c3db1fac0..3d84b991499767293fecfdac844113b919fbc5e1 100644 (file)
@@ -2,14 +2,17 @@
 - project:
     name: integration-test-jobs
     jobs:
-        - 'integration-csit-verify-1node-{stream}'
-        - 'integration-distribution-offline-{stream}'
+        - 'integration-verify-python'
+        - 'integration-csit-verify-1node-library'
         - 'integration-distribution-test-{stream}'
         - 'integration-patch-test-{stream}'
+        - 'integration-multipatch-test-{stream}'
 
     stream:
-        - beryllium:
+        - boron:
             branch: 'master'
+            jdk: 'openjdk8'
+            jre: 'openjdk8'
             csit-list: >
                 aaa-csit-1node-authn-only-{stream},
                 aaa-csit-1node-authn-all-{stream},
                 bgpcep-csit-1node-userfeatures-all-{stream},
                 capwap-csit-1node-ac-only-{stream},
                 capwap-csit-1node-ac-all-{stream},
-                controller-csit-1node-netconf-only-{stream},
-                controller-csit-1node-netconf-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-deploy-{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-all-only-{stream},
-                lispflowmapping-csit-1node-all-all-{stream},
+                lispflowmapping-csit-1node-msmr-only-{stream},
+                lispflowmapping-csit-1node-msmr-all-{stream},
+                nemo-csit-1node-engine-all-{stream},
+                nemo-csit-1node-engine-only-{stream},
+                netconf-csit-1node-userfeatures-all-{stream},
+                netconf-csit-1node-userfeatures-only-{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-flow-services-more-only-{stream},
-                openflowplugin-csit-1node-flow-services-more-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},
+                openflowplugin-csit-3node-clustering-helium-design-only-{stream},
+                openflowplugin-csit-3node-clustering-only-{stream},
+                ovsdb-csit-3node-clustering-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},
+                packetcable-csit-1node-pcmm-only-{stream},
+                packetcable-csit-1node-pcmm-all-{stream},
                 snmp-csit-1node-basic-only-{stream},
                 snmp-csit-1node-basic-all-{stream},
-                tsdr-csit-1node-h2-datastore-only-{stream},
-                tsdr-csit-1node-h2-datastore-all-{stream},
+                sxp-csit-1node-basic-only-{stream},
+                sxp-csit-1node-basic-all-{stream},
+                sxp-csit-1node-filtering-only-{stream},
+                sxp-csit-1node-filtering-all-{stream},
+                sxp-csit-1node-topology-only-{stream},
+                sxp-csit-1node-topology-all-{stream},
+                topoprocessing-csit-1node-topology-operations-all-{stream},
+                topoprocessing-csit-1node-topology-operations-only-{stream},
+                tsdr-csit-1node-hbase-datastore-only-{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'
+            jre: '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},
+                integration-csit-3node-basic-only-{stream},
+                integration-distribution-offline-{stream},
+                integration-distribution-deploy-{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},
+                nemo-csit-1node-engine-all-{stream},
+                nemo-csit-1node-engine-only-{stream},
+                netconf-csit-1node-userfeatures-all-{stream},
+                netconf-csit-1node-userfeatures-only-{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},
+                openflowplugin-csit-3node-clustering-helium-design-only-{stream},
+                openflowplugin-csit-3node-clustering-only-{stream},
+                ovsdb-csit-3node-clustering-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},
+                packetcable-csit-1node-pcmm-only-{stream},
+                packetcable-csit-1node-pcmm-all-{stream},
+                snmp-csit-1node-basic-only-{stream},
+                snmp-csit-1node-basic-all-{stream},
+                sxp-csit-1node-basic-only-{stream},
+                sxp-csit-1node-basic-all-{stream},
+                sxp-csit-1node-filtering-only-{stream},
+                sxp-csit-1node-filtering-all-{stream},
+                sxp-csit-1node-topology-only-{stream},
+                sxp-csit-1node-topology-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},
-                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'
+            jre: 'openjdk7'
             csit-list: >
                 aaa-csit-1node-authn-only-{stream},
                 aaa-csit-1node-authn-all-{stream},
                 bgpcep-csit-1node-userfeatures-all-{stream},
                 capwap-csit-1node-ac-only-{stream},
                 capwap-csit-1node-ac-all-{stream},
-                controller-csit-1node-netconf-only-{stream},
-                controller-csit-1node-netconf-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-all-{stream},
                 lispflowmapping-csit-1node-all-only-{stream},
                 lispflowmapping-csit-1node-all-all-{stream},
+                netconf-csit-1node-userfeatures-all-{stream},
+                netconf-csit-1node-userfeatures-only-{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-flow-services-more-only-{stream},
-                openflowplugin-csit-1node-flow-services-more-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},
                 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'
+            jre: 'openjdk7'
             csit-list: >
                 aaa-csit-1node-imds-authn-only-{stream},
                 aaa-csit-1node-imds-authn-all-{stream},
-                controller-csit-1node-imds-netconf-only-{stream},
-                controller-csit-1node-imds-netconf-all-{stream},
                 controller-csit-1node-imds-nsf-only-{stream},
                 controller-csit-1node-imds-nsf-all-{stream},
                 integration-csit-3node-basic-only-{stream},
-                integration-csit-3node-basic-all-{stream},
                 l2switch-csit-1node-imds-switch-only-{stream},
                 l2switch-csit-1node-imds-switch-all-{stream},
                 lispflowmapping-csit-1node-imds-all-only-{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-csit-verify-1node-{stream}
-# Goal: Verify changes in csit folder not covered by projects suite verify jobs (e.g. library or variables)
-# Operation: This job template performs a base openflow test every time there is a change in the csit folder.
+# Template: integration-verify-python
+# Goal: Verify python scripts correct syntax
+# Operation: This job template performs a python tox check on any integration/test patch
 
 - job-template:
-    name: 'integration-csit-verify-1node-{stream}'
+    name: 'integration-verify-python'
 
     project-type: freestyle
-    node: dynamic_robot
+    node: dynamic_verify
+    concurrent: true
 
     logrotate:
         daysToKeep: '{build-days-to-keep}'
 
     parameters:
         - project-parameter:
-            project: 'integration'
-        - integration-branch:
-            branch: '{branch}'
-        - integration-bundleurl:
-            bundleurl: 'last'
-        - integration-controller-scope:
-            controller-scope: 'only'
-        - integration-controller-features:
-            controller-features: 'odl-openflowplugin-flow-services-ui'
-        - integration-test-options:
-            test-options: '-e adsal'
-        - integration-test-plan:
-            test-plan: 'openflowplugin-flow-services.txt'
+            project: 'integration/test'
+        - integration-patch-refspec:
+            branch: '$GERRIT_REFSPEC'
 
     scm:
-        - gerrit-trigger-scm:
+        - integration-gerrit-scm:
             credentials-id: '{ssh-credentials}'
-            refspec: '$GERRIT_REFSPEC'
-            choosing-strategy: 'gerrit'
+            basedir: 'test'
+            refspec: '$PATCHREFSPEC'
+            branch: 'master'
 
     wrappers:
         - build-timeout
-        - integration-jclouds-controller-mininet:
-            controller-vms: 1
-            mininet-image: '{mininet-image}'
-            mininet-vms: '{mininet-vms}'
         - ssh-agent-credentials:
             users:
                 - '{ssh-credentials}'
 
     triggers:
-        - integration-csit-gerrit-trigger-patch-submitted:
-            name: 'integration'
-            branch: '{branch}'
+        - integration-trigger-patch-submitted:
+            name: 'integration/test'
+            branch: 'master'
+            pattern: '**'
 
     builders:
-        - integration-get-slave-addresses
-        - inject:
-            properties-file: 'slave_addresses.txt'
-        - integration-deploy-controller-run-test
+        - shell: |
+            virtualenv $WORKSPACE/venv-tox
+            source $WORKSPACE/venv-tox/bin/activate
+            pip install tox argparse
+            tox --version
+            cd $WORKSPACE/test
+            tox
 
     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 daily job template deployes the controller removing any external repository definition
+# Template: integration-csit-verify-1node-library
+# Goal: Verify changes in csit folder not covered by projects suite verify jobs (e.g. libraries or variables)
+# Operation: This job template performs a base openflow test when there is a change in the libraries folder
 
 - job-template:
-    name: 'integration-distribution-offline-{stream}'
+    name: 'integration-csit-verify-1node-library'
 
     project-type: freestyle
-    node: dynamic_controller
+    node: dynamic_robot
 
     logrotate:
         daysToKeep: '{build-days-to-keep}'
 
     parameters:
         - project-parameter:
-            project: 'integration'
+            project: 'integration/test'
         - integration-branch:
-            branch: '{branch}'
+            branch: 'stable/beryllium'
         - integration-bundleurl:
             bundleurl: 'last'
+        - integration-controller-scope:
+            controller-scope: 'only'
+        - integration-controller-features:
+            controller-features: >
+                odl-clustering-test-app,
+                odl-openflowplugin-flow-services-ui,
+                odl-bgpcep-pcep,
+                odl-bgpcep-bgp,
+                odl-netconf-connector-all
+        - integration-test-options:
+            test-options: '-e adsal -v TIMEOUT_BUG_4220:10s'
+        - integration-test-plan:
+            test-plan: 'test-libraries.txt'
+        - integration-patch-refspec:
+            branch: '$GERRIT_REFSPEC'
+        - integration-jdk-version:
+            jdkversion: 'openjdk7'
+            # TODO: Switch to openjdk8 from Boron on.
 
     scm:
-        - git-scm:
+        - integration-gerrit-scm:
             credentials-id: '{ssh-credentials}'
-            refspec: ''
-            branch: '{branch}'
+            basedir: 'test'
+            refspec: '$PATCHREFSPEC'
+            branch: 'master'
 
     wrappers:
         - build-timeout
+        - integration-jclouds-controller-mininet:
+            controller-vms: 1
+            mininet-image: '{mininet-image}'
+            mininet-vms: '{mininet-vms}'
+            mininet-cloud-name: '{mininet-cloud-name}'
         - ssh-agent-credentials:
             users:
                 - '{ssh-credentials}'
 
     triggers:
-        - reverse:
-            jobs: '{trigger-jobs}'
-            result: 'success'
+        - integration-trigger-patch-submitted:
+            name: 'integration/test'
+            branch: 'master'
+            pattern: 'csit/libraries/*'
 
     builders:
-        - integration-deploy-controller-offline
+        - integration-cleanup-workspace
+        - integration-install-robotframework
+        - inject:
+            properties-file: 'env.properties'
+        - integration-get-slave-addresses
+        - inject:
+            properties-file: 'slave_addresses.txt'
+        - integration-get-bundle-vars
+        - inject:
+            properties-file: 'bundle_vars.txt'
+        - integration-deploy-controller-run-test
+        - integration-cleanup-tmp
 
     publishers:
+        - integration-robot:
+            unstable-if: 0.0
+            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: '{jre}'
 
     triggers:
-        - timed: 'H H * * *'
+        - timed: 'H H * * 6'
 
     builders:
         - trigger-builds:
               block: true
               predefined-parameters:
                   BUNDLEURL=$BUNDLEURL
+                  JDKVERSION=$JDKVERSION
 
     publishers:
         - email-notification:
 
 # 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:
         artifactNumToKeep: '{build-artifact-num-to-keep}'
 
     parameters:
+        - gerrit-project-parameter:
+            project: '$GERRIT_PROJECT'
+        - gerrit-refspec-parameter:
+            refspec: '$GERRIT_REFSPEC'
         - project-parameter:
             project: '$GERRIT_PROJECT'
+        - integration-branch:
+            branch: '{branch}'
         - integration-distribution-git-url
 
     scm:
         - integration-gerrit-scm:
             credentials-id: '{ssh-credentials}'
+            basedir: '$GERRIT_PROJECT'
+            refspec: '$GERRIT_REFSPEC'
             branch: '{branch}'
         - integration-distribution-scm:
             credentials-id: '{ssh-credentials}'
                 notbuilt: true
 
     prebuilders:
+        - integration-rebase-gerrit-patch
         - integration-get-bundle-url
         - inject:
             properties-file: 'bundle.txt'
         - 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]'