Merge "Auto Update CSIT Jobs to run for nitrogen"
[releng/builder.git] / jjb / integration / integration-macros.yaml
index 4c22732f8158c58e061c569100a0f0b077226fd4..5b1dad87199fedd92cefe00370211015511dbd07 100644 (file)
       - opendaylight-infra-stack:
           stack-template: 'csit-3-instance-type.yaml'
 
+# Macro: integration-infra-stack-4-type
+# Operation: Sets environment and then calls opendaylight-infra-stack to spin
+#            up csit lab using openstack-heat.
+# Used by: {project}-csit-* job templates
+
+- builder:
+    name: integration-infra-stack-4-type
+    builders:
+      - integration-cleanup-workspace
+      - shell: |
+          #!/bin/bash
+          # Setup openstack envirnoment file for use by
+          # the opendaylight-infra-stack macro
+          cat > $WORKSPACE/opendaylight-infra-environment.yaml << EOF
+          parameters:
+              vm_0_count: {vm_0_count}
+              vm_0_flavor: {vm_0_flavor}
+              vm_0_image: {vm_0_image}
+              vm_1_count: {vm_1_count}
+              vm_1_flavor: {vm_1_flavor}
+              vm_1_image: {vm_1_image}
+              vm_2_count: {vm_2_count}
+              vm_2_flavor: {vm_2_flavor}
+              vm_2_image: {vm_2_image}
+              vm_3_count: {vm_3_count}
+              vm_3_flavor: {vm_3_flavor}
+              vm_3_image: {vm_3_image}
+          EOF
+          echo "Contents of opendaylight-infra-environment.yaml ..."
+          cat $WORKSPACE/opendaylight-infra-environment.yaml
+      - opendaylight-infra-stack:
+          stack-template: 'csit-4-instance-type.yaml'
+
 # Macro: integration-get-slave-addresses
 # Operation: this macro gets the IP addresses of the dynamic vms
 # Used by: {project}-csit-* job templates
 - builder:
     name: integration-get-slave-addresses
     builders:
-      - shell: !include-raw: include-raw-integration-get-slave-addresses.sh
+      - shell: !include-raw: integration-get-slave-addresses.sh
 
 - builder:
     name: integration-set-variables
 - builder:
     name: integration-deploy-controller-run-test
     builders:
-      - shell: !include-raw: include-raw-integration-deploy-controller-run-test.sh
+      - shell: !include-raw: integration-deploy-controller-run-test.sh
 
 # Macro: integration-configure-clustering
 # Operation: this macro configures the clustering
 - builder:
     name: integration-configure-clustering
     builders:
-      - shell: !include-raw: include-raw-integration-configure-clustering.sh
+      - shell: !include-raw: integration-configure-clustering.sh
 
 # Macro: integration-start-cluster-run-test
 # Operation: this macro starts the 3-node cluster and runs test
 - builder:
     name: integration-start-cluster-run-test
     builders:
-      - shell: !include-raw: include-raw-integration-start-cluster-run-test.sh
+      - shell: !include-raw: integration-start-cluster-run-test.sh
 
 # Macro: integration-install-robotframework
 # Operation: Installs robotframework using pip to a virtualenv
 - builder:
     name: integration-install-robotframework
     builders:
-      - shell: !include-raw: include-raw-integration-install-robotframework.sh
+      - shell: !include-raw: integration-install-robotframework.sh
 
 # Macro: integration-cleanup-tmp
 # Operation: Cleans up temporary files created by build
 - builder:
     name: integration-cleanup-tmp
     builders:
-      - shell: !include-raw: include-raw-integration-cleanup-tmp.sh
+      - shell: !include-raw: integration-cleanup-tmp.sh
 
 # Macro: integration-multipatch-builder
 # Operation: checks out multiple patches and builds custom distribution
 - builder:
     name: integration-multipatch-builder
     builders:
-      - shell: !include-raw: include-raw-integration-multipatch-distribution-test.sh
+      - shell: !include-raw: multipatch-distribution.sh
 
 # Macro: integration-cleanup-workspace
 # Operation: Cleans up files possibly left there by the previous build
 - builder:
     name: integration-cleanup-workspace
     builders:
-      - shell: !include-raw: include-raw-integration-cleanup-workspace.sh
+      - shell: !include-raw: integration-cleanup-workspace.sh
 
 # Macro: integration-rebase-patch
 # Operation: For cloned project, rebase checked-out Gerrit patch onto $DISTROBRANCH.
 - builder:
     name: integration-rebase-gerrit-patch
     builders:
-      - shell: !include-raw: include-raw-integration-rebase-gerrit-patch.sh
+      - shell: !include-raw: integration-rebase-gerrit-patch.sh
 
 - builder:
     name: integration-deploy-openstack-run-test
     builders:
-      - shell: !include-raw: include-raw-integration-deploy-openstack-run-test.sh
-
-# Macro: integration-list-jobs
-# Operation: queries Jenkins jobs from jenkins.opendaylight.org and
-#   writes a list of the jobs corresponding to the search terms to a file.
-# Used by: builder-merge job template
-#
-# This script requires the following JJB variables to be passed in:
-#   {search_string}     Job type to act as a primary filter (e.g. csit)
-#   {blacklist}         List of sub-projects to filter out (e.g. longevity)
-#   {stream}            Development release name (e.g. boron)
-#   {jobs-filename}     Filename to write list into (e.g. carbon-jobs.lst)
-# NOTE: Requires xmlstarlet installed on node.
-
-- builder:
-    name: integration-list-jobs
-    builders:
-      - shell: !include-raw: include-raw-integration-list-jobs.sh
-
-# Macro: integration-replace-block-text
-# Operation: using starting and ending regex to
-# replace a block of text in a file with the text in
-# another file. Regex should be basic and work with sed
-# Used by: builder-merge job template
-#
-# This script requires the following JJB variables to be passed in:
-#   {starting-regex}
-#   {ending-regex}
-#   {file-with-changes-to-insert}
-#   {file-to-change}
-
-- builder:
-    name: integration-replace-block-text
-    builders:
-      - shell: !include-raw: include-raw-integration-replace-block-text.sh
-
+      - shell: !include-raw: integration-deploy-openstack-run-test.sh
 
 - builder:
     name: integration-compare-distributions
     # Required bash variables:
     #   KARAF_ARTIFACT: 'karaf' or 'distribution-karaf'. Use integration-set-variables.
     builders:
-      - shell: !include-raw: include-raw-integration-compare-distributions.sh
+      - shell: !include-raw: integration-compare-distributions.sh
 
 - builder:
     name: integration-upload-distribution
     builders:
       - config-file-provider:
           files:
-            - file-id: odl-global-settings
+            - file-id: global-settings
               variable: GLOBAL_SETTINGS_FILE
             - file-id: integration-settings
               variable: SETTINGS_FILE
           script-only-if-succeeded: 'False'
           script-only-if-failed: 'False'
           mark-unstable-if-failed: 'True'
+
+- publisher:
+    name: integration-csit-run-postscript
+    publishers:
+      - postbuildscript:
+          builders:
+            - config-file-provider:
+                files:
+                  - file-id: 'odl-elastic-cloud'
+                    target: '${HOME}/.netrc'
+            - shell: |
+                #!/bin/bash
+                #The following script runs any configurable postplan stored in test/csit/postplans.
+                if [ -f "${WORKSPACE}/test/csit/postplans/${TESTPLAN}" ]; then
+                    echo "postplan exists!!!"
+                    echo "Changing the postplan path..."
+                    script_name=${WORKSPACE}/test/csit/postplans/${TESTPLAN}
+                    cat ${script_name} | sed "s:integration:${WORKSPACE}:" > postplan.txt
+                    cat postplan.txt
+                    egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' postplan.txt | while read -r line ; do
+                        echo "Executing ${line}..."
+                        ${line}
+                    done
+                fi
+                rm ${HOME}/.netrc
+          script-only-if-succeeded: 'False'
+          script-only-if-failed: 'False'
+          mark-unstable-if-failed: 'True'