Adjust for karaf 4 not happening in carbon
[releng/builder.git] / jjb / integration / integration-test-jobs.yaml
index 05475de15590e55fa0134de96cc2363ff886f520..bee3932227ff6c7b798c6ab6b940a2e8c8aaa430 100644 (file)
@@ -3,35 +3,65 @@
     name: integration-test
     project: integration/test
     project-name: integration-test
+    test-branch: master
     jobs:
-      - '{project-name}-verify-tox-{stream}'
+      - '{project-name}-verify-tox-master'
       - 'integration-csit-verify-1node-library'
       - 'integration-distribution-test-{stream}'
+      - 'integration-sanity-test-{stream}'
       - 'integration-patch-test-{stream}'
       - 'integration-multipatch-test-{stream}'
+      - 'integration-distribution-weekly-test-trigger-{stream}'
+      - 'integration-distribution-high-frequency-test-trigger-{stream}'
 
     # CSIT Lists in releng-defaults.yaml
     stream:
-      - carbon:
+      - nitrogen:
           branch: 'master'
+          karaf-version: karaf3
+          jre: 'openjdk8'
+          csit-list: '{csit-list-nitrogen}'
+          csit-sanity-list: '{csit-sanity-list-nitrogen}'
+          csit-weekly-list: '{csit-weekly-list-nitrogen}'
+          schedule-weekly: 'H 12 * * 0'
+          csit-high-frequency-list: ''
+          schedule-high-frequency: ''
+
+      - carbon:
+          branch: 'stable/carbon'
+          karaf-version: karaf3
           jdk: 'openjdk8'
           jre: 'openjdk8'
           csit-list: '{csit-list-carbon}'
-          schedule: 'H H * * 0-4'
+          csit-sanity-list: '{csit-sanity-list-carbon}'
+          csit-weekly-list: '{csit-weekly-list-carbon}'
+          schedule-weekly: 'H 12 * * 0'
+          csit-high-frequency-list: '{csit-high-frequency-list-carbon}'
+          schedule-high-frequency: 'H H/4 * * *'
 
       - boron:
           branch: 'stable/boron'
+          karaf-version: karaf3
           jdk: 'openjdk8'
           jre: 'openjdk8'
           csit-list: '{csit-list-boron}'
-          schedule: 'H H * * 0-4'
+          csit-sanity-list: '{csit-sanity-list-boron}'
+          csit-weekly-list: '{csit-weekly-list-boron}'
+          schedule-weekly: 'H 12 * * 0'
+          csit-high-frequency-list: ''
+          schedule-high-frequency: ''
 
       - beryllium:
           branch: 'stable/beryllium'
+          karaf-version: karaf3
           jdk: 'openjdk7'
           jre: 'openjdk7'
           csit-list: '{csit-list-beryllium}'
-          schedule: 'H H * * 6'
+          csit-sanity-list: ''
+          csit-weekly-list: ''
+          schedule-weekly: 'H 12 * * 0'
+          csit-high-frequency-list: ''
+          schedule-high-frequency: ''
 
     # tools system image
     tools_system_image: Ubuntu 14.04 - mininet-ovs-25 - 20170210-0300
@@ -52,8 +82,6 @@
     branch: stable/boron
     scope: only
     jre: openjdk8
-    # Integration/Test branch remains hardcoded to 'master' as int/test does not have any other branch.
-    test-branch: master
 
     properties:
       - opendaylight-infra-properties:
 
     parameters:
       - opendaylight-infra-parameters:
+          os-cloud: '{os-cloud}'
           project: '{project}'
           branch: '{test-branch}'
           refspec: 'refs/heads/{test-branch}'
           artifacts: '{archive-artifacts}'
       - integration-distribution-branch:
-          branch: '{branch}'
+          branch: '{verify-branch}'
       - integration-distribution-stream:
-          stream: '{dist-stream}'
-      - integration-bundleurl:
-          bundleurl: '{bundleurl}'
+          stream: '{verify-stream}'
+      - integration-bundle-url:
+          bundle-url: '{bundle-url}'
       - integration-controller-scope:
           controller-scope: '{scope}'
       - integration-controller-features:
       - integration-test-options:
           test-options: '-v TIMEOUT_BUG_4220:10s -v USE_NETCONF_CONNECTOR:True'
       - integration-stream-test-plan:
-          stream-test-plan: 'test-libraries-{dist-stream}.txt'
+          stream-test-plan: 'test-libraries-{verify-stream}.txt'
       - integration-test-plan:
           test-plan: 'test-libraries.txt'
       - integration-patch-refspec:
           branch: '$GERRIT_REFSPEC'
       - integration-jdk-version:
           jdkversion: '{jre}'
+      - distribution-karaf-version:
+          karaf-version: '{verify-karaf-version}'
 
     scm:
       - integration-gerrit-scm:
       - integration-get-slave-addresses
       - inject:
           properties-file: 'slave_addresses.txt'
-      - integration-get-bundle-vars
-      - inject:
-          properties-file: 'bundle_vars.txt'
+      - integration-detect-variables
       - integration-deploy-controller-run-test
       - integration-cleanup-tmp
 
 
 # Template: integration-distribution-test-{stream}
 # Goal: Verify a distribution through all system test available
-# Operation: This daily job template takes a distribution and passes all available system test
+# Operation: This template takes a distribution and passes all available system test
 
 - job-template:
     name: 'integration-distribution-test-{stream}'
           build-days-to-keep: '{build-days-to-keep}'
 
     parameters:
-      - integration-bundleurl:
-          bundleurl: '{bundleurl}'
-      - integration-jdk-version:
-          jdkversion: '{jre}'
-
-    triggers:
-      - timed: '{schedule}'
+      - integration-bundle-url:
+          bundle-url: '{bundle-url}'
+      - distribution-karaf-version:
+          karaf-version: '{karaf-version}'
 
     builders:
       - trigger-builds:
           - project: '{csit-list}'
             block: true
             predefined-parameters:
-              BUNDLEURL=$BUNDLEURL
+              BUNDLE_URL=$BUNDLE_URL
+
+    publishers:
+      - email-notification:
+          email-recipients: '{email-recipients}'
+          email-prefix: '[integration]'
+
+# Template: integration-sanity-test-{stream}
+# Goal: Verify a distribution through sanity test
+# Operation: This template takes a distribution and passes sanity test
+
+- job-template:
+    name: 'integration-sanity-test-{stream}'
+
+    project-type: freestyle
+    node: centos7-robot-2c-2g
+
+    properties:
+      - opendaylight-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+
+    parameters:
+      - integration-bundle-url:
+          bundle-url: '{bundle-url}'
+      - distribution-karaf-version:
+          karaf-version: '{karaf-version}'
+
+    builders:
+      - trigger-builds:
+          - project: '{csit-sanity-list}'
+            block: true
+            predefined-parameters: |
+              BUNDLE_URL=$BUNDLE_URL
+              KARAF_VERSION=$KARAF_VERSION
 
     publishers:
       - email-notification:
 - job-template:
     name: 'integration-patch-test-{stream}'
 
-    project-type: maven
+    project-type: freestyle
     node: centos7-java-builder-2c-8g
-    jdk: '{jdk}'
 
     properties:
       - opendaylight-infra-properties:
 
     parameters:
       - opendaylight-infra-parameters:
+          os-cloud: '{os-cloud}'
           project: '$GERRIT_PROJECT'
           branch: '{branch}'
           refspec: '$GERRIT_REFSPEC'
           artifacts: '{archive-artifacts} **/dependency_tree.txt'
       - integration-distribution-branch:
           branch: '{branch}'
+      - distribution-karaf-version:
+          karaf-version: '{karaf-version}'
       - integration-distribution-git-url:
           git-url: '{git-url}'
+      - maven-exec:
+          maven-version: mvn33
 
     scm:
       - integration-gerrit-scm:
             unstable: true
             notbuilt: true
 
-    prebuilders:
+    builders:
       - 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'
       - maven-target:
           maven-version: 'mvn33'
           pom: '$GERRIT_PROJECT/pom.xml'
-          goals: >
+          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
+              -Pq
               -Dstream={stream}
+              {opendaylight-infra-mvn-opts}
           java-opts:
             - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
-          settings: 'integration-settings'
+          settings: integration-settings
           settings-type: cfp
-          global-settings: 'odl-global-settings'
+          global-settings: odl-global-settings
           global-settings-type: cfp
-
-    maven:
-      maven-name: 'mvn33'
-      root-pom: 'distribution/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-settings'
-      settings-type: cfp
-      global-settings: 'odl-global-settings'
-      global-settings-type: cfp
-      ignore-upstream-changes: true
-      post-step-run-condition: 'SUCCESS'
-
-    postbuilders:
+      - maven-target:
+          maven-version: mvn33
+          pom: distribution/pom.xml
+          goals: |
+              clean install dependency:tree -DoutputFile=dependency_tree.txt
+              {opendaylight-infra-mvn-opts}
+          java-opts:
+            - '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
+          settings: integration-settings
+          settings-type: cfp
+          global-settings: odl-global-settings
+          global-settings-type: cfp
+      - integration-upload-distribution:
+          dist-pom: distribution/pom.xml
       - trigger-builds:
           - project: '{csit-list}'
             block: true
-            predefined-parameters:
-              BUNDLEURL=$BUNDLEURL
+            predefined-parameters: |
+              BUNDLE_URL=$BUNDLE_URL
+              KARAF_VERSION=$KARAF_VERSION
 
     publishers:
       - opendaylight-infra-shiplogs:
           email-recipients: '{email-recipients}'
           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}'
+    # 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
+    # TODO: Move the following to appropriate readthedocs document.
+    # Recommended Sandbox usage:
+    # 0. Create this job and a CSIT job you want to run on the new .zip in Sandbox (disable timed triggers).
+    # 1. Copy the csit job name to clipboard.
+    # 2. Navigate to Sandbox page of this job.
+    # 3. Click "Configure".
+    # 4. Locate "Trigger/call builds on other projects" (under "Post Steps" tab).
+    # 5. Delete the long value of "Projects to build" field and paste the job name from clipboard (ctrl+a, ctrl+v).
+    # 6. Click "Save" button.
+    # 7. Click "Build with Parameters".
+    # yamllint disable-line rule:line-length
+    # 8. Start the job with your parameters, see https://wiki.opendaylight.org/view/Integration/Test/Running_System_Tests#Running_System_Tests_Using_Custom_Distribution_Built_From_Multiple_Patches
+    # 9. The multipatch job waits for the csit job to finish, so abort csit if you see something went wrong.
+    # 10. Navigate to Sandbox page of the csit job, click the run triggered from multipatch.
+    # 11. Click Parameters and copy the long value of BUNDLE_URL field to clipboard.
+    # 12. Run the same csit job woth different patchset or test options, or other csit jobs, with this BUNDLE_URL value
+    #     so you do not have to wait for multipatch build. Repeat step 12.
+    # 13. Currently, the .zip lasts 24 hours (?) so you may need to jump to step 2 (or 0) after some time.
 
-    project-type: maven
+    project-type: freestyle
     node: centos7-java-builder-8c-8g
     jdk: '{jdk}'
 
     parameters:
       - patches-to-build-parameter:
           patches_to_build: '$PATCHES_TO_BUILD'
+      - run-test-parameter:
+          run-test: 'false'
       - integration-distribution-branch:
           branch: '{branch}'
+      - distribution-karaf-version:
+          karaf-version: '{karaf-version}'
       - opendaylight-infra-parameters:
+          os-cloud: '{os-cloud}'
           project: 'integration/distribution'
           branch: '{branch}'
           refspec: 'refs/heads/{branch}'
           artifacts: '{archive-artifacts} **/dependency_tree.txt'
+      - maven-exec:
+          maven-version: mvn33
 
-    prebuilders:
+    wrappers:
+      - opendaylight-infra-wrappers:
+          build-timeout: '1200'
+
+    builders:
       - 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-target:
+          maven-version: mvn33
+          pom: patch_tester/pom.xml
+          # TODO: Make Maven options configurable. Currently tests are not skipped, everything else is.
+          goals: |
+              clean install dependency:tree -DoutputFile=dependency_tree.txt
+              -Pq
+              -Dstream={stream}
+              {opendaylight-infra-mvn-opts}
+          java-opts:
+            - '-Xmx7168m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
+          settings: integration-settings
+          settings-type: cfp
+          global-settings: odl-global-settings
+          global-settings-type: cfp
+      - integration-upload-distribution:
+          dist-pom: patch_tester/distribution/pom.xml
+      - conditional-step:
+          condition-kind: boolean-expression
+          condition-expression: $RUNTEST
+          steps:
+            - trigger-builds:
+                - project: '{csit-list}'
+                  block: true
+                  predefined-parameters: |
+                    BUNDLE_URL=$BUNDLE_URL
+                    KARAF_VERSION=$KARAF_VERSION
 
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: '1200'
+    publishers:
+      - opendaylight-infra-shiplogs:
+          maven-version: 'mvn33'
+      - email-notification:
+          email-recipients: '{email-recipients}'
+          email-prefix: '[int/dist]'
+
+- job-template:
+    name: 'integration-distribution-weekly-test-trigger-{stream}'
 
-    maven:
-      maven-name: 'mvn33'
-      root-pom: 'patch_tester/pom.xml'
-      # TODO: Make Maven options configurable. Currently tests are not skipped, everything else is.
-      goals: >
-          clean install dependency:tree -DoutputFile=dependency_tree.txt
-          -f patch_tester/pom.xml -V -B -Pq -Djenkins
-          -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
-          -Dstream={stream}
-      maven-opts: '-Xmx7168m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
-      settings: 'yangtools-settings'
-      settings-type: cfp
-      global-settings: 'odl-global-settings'
-      global-settings-type: cfp
-      post-step-run-condition: 'SUCCESS'
-
-    postbuilders:
+    project-type: freestyle
+    node: centos7-robot-2c-2g
+
+    properties:
+      - opendaylight-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+
+    parameters:
+      - integration-bundle-url:
+          bundle-url: '{bundle-url}'
+      - distribution-karaf-version:
+          karaf-version: '{karaf-version}'
+
+    triggers:
+      - timed: '{schedule-weekly}'
+
+    builders:
       - trigger-builds:
-          - project: '{csit-list}'
+          - project: '{csit-weekly-list}'
             block: true
-            predefined-parameters:
-              BUNDLEURL=$BUNDLEURL
+            predefined-parameters: |
+              BUNDLE_URL=$BUNDLE_URL
+              KARAF_VERSION=$KARAF_VERSION
 
     publishers:
-      - opendaylight-infra-shiplogs:
-          maven-version: 'mvn33'
       - email-notification:
           email-recipients: '{email-recipients}'
-          email-prefix: '[int/dist]'
+          email-prefix: '[integration]'
+
+- job-template:
+    name: 'integration-distribution-high-frequency-test-trigger-{stream}'
+
+    project-type: freestyle
+    node: centos7-robot-2c-2g
+
+    properties:
+      - opendaylight-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+
+    parameters:
+      - integration-bundle-url:
+          bundle-url: '{bundle-url}'
+      - distribution-karaf-version:
+          karaf-version: '{karaf-version}'
+
+    triggers:
+      - timed: '{schedule-high-frequency}'
+
+    builders:
+      - trigger-builds:
+          - project: '{csit-high-frequency-list}'
+            block: true
+            predefined-parameters: |
+              BUNDLE_URL=$BUNDLE_URL
+              KARAF_VERSION=$KARAF_VERSION
+
+    publishers:
+      - email-notification:
+          email-recipients: '{email-recipients}'
+          email-prefix: '[integration]'