fix bad path in functest to source rc file
[releng.git] / jjb / functest / functest.yml
index 8ef9269..9ea7b24 100644 (file)
@@ -1,31 +1,96 @@
+###################################
+# job configuration for functest
+###################################
 - project:
     name: functest
 
+    installer:
+        - fuel:
+            node: 'opnfv-jump-2'
+            installer_type: 'fuel'
+            installer_ip: '10.20.0.2'
+        - foreman:
+            node: 'opnfv-jump-2'
+            installer_type: 'foreman'
+            installer_ip: '172.30.10.73'
+    pod:
+        - orange-build:
+            node: 'orange-build'
+            installer_type: 'foreman'
+            installer_ip: '172.30.10.73'
+
     jobs:
-        - 'functest-vim_bench-test'
-        - 'functest-vim_tempest-test'
-        - 'functest-odl-test'
-        - 'functest-vims-test'
-        - 'functest-vping-test'
+        - 'set-functest-env-{pod}'
+        - 'functest-{pod}'
+        - 'clean-functest-env-{pod}'
+        - 'set-functest-env-{installer}-{stream}'
+        - 'functest-{installer}-{stream}'
+        - 'clean-functest-env-{installer}-{stream}'
+        - 'functest-openstack-bench-test-{pod}'
+        - 'functest-openstack-tempest-smoke-test-{pod}'
+        - 'functest-odl-test-{pod}'
+        - 'functest-vims-test-{pod}'
+        - 'functest-vping-test-{pod}'
         - 'functest-daily-{stream}'
-        - 'functest-merge'
-        - 'functest-verify'
+        - 'functest-merge-{stream}'
+        - 'functest-verify-{stream}'
 
-    # stream:    branch with - in place of / (eg. stable-helium)
-    # branch:    branch (eg. stable/helium)
+    # stream:    branch with - in place of / (eg. stable-arno)
+    # branch:    branch (eg. stable/arno)
     stream:
         - master:
             branch: 'master'
+            gs-pathname: ''
+        - stable-arno:
+            branch: 'stable/arno'
+            gs-pathname: '/arno'
 
     project: 'functest'
     somevar: 'foo'
+################################
+# job template
+################################
+- job-template:
+    name: set-functest-env-{pod}
+
+    project-type: freestyle
+
+    node: '{pod}'
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - shell: |
+            #!/bin/bash
+            set +e
+
+            echo "Functest: prepare Functest environment"
+            mkdir -p $HOME/functest/
+            # source openstack vars
+            if [[ ! -f $HOME/opnfv-openrc.sh ]]; then
+                echo "Unable to access file $HOME/opnfv-openrc.sh"
+                exit 1
+            fi
+            source $HOME/opnfv-openrc.sh
+
+            # WORKSPACE is the root of the functest repo
+            # go into WORKSPACE where the functest repo is cloned
+            cd $WORKSPACE
+
+            # prepare
+            echo "Functest: prepare Functest environment"
+            python $WORKSPACE/testcases/config_functest.py --debug $WORKSPACE/ start
 
 - job-template:
-    name: functest-vim_bench-test
+    name: clean-functest-env-{pod}
 
     project-type: freestyle
 
-    node: orange-build
+    node: '{pod}'
 
     logrotate:
         daysToKeep: 30
 
     builders:
         - shell: |
-            python run_rally.py keystone
+            #!/bin/bash
+            set +e
+
+            # collect results
+            echo "Functest: copy results and clean Functest environment"
+            mkdir -p $HOME/functest/results
+
+            # save ODL results
+            cp -Rf $WORSPACE/testcases/Controllers/ODL/CI/logs $HOME/functest/results/ODL
+
+            # save tempest.conf for further troubleshooting
+            cp $HOME/.rally/tempest/for-deployment-*/tempest.conf $HOME/functest/results
+
+            # cleanup
+            python $WORKSPACE/testcases/config_functest.py --debug --force $WORKSPACE/ clean
 
 - job-template:
-    name: functest-vim_tempest-test
+    name: set-functest-env-{installer}-{stream}
 
     project-type: freestyle
 
-    node: orange-build
+    node: '{node}'
 
     logrotate:
         daysToKeep: 30
 
     builders:
         - shell: |
-            rally verify start
+            #!/bin/bash
+            set +e
+
+            echo "Functest: prepare Functest environment"
+            mkdir -p $HOME/functest/
+            # source openstack vars
+            if [[ ! -f $HOME/opnfv-openrc.sh ]]; then
+                echo "Unable to access file $HOME/opnfv-openrc.sh"
+                exit 1
+            fi
+            source $HOME/opnfv-openrc.sh
+
+            # WORKSPACE is the root of the functest repo
+            # go into WORKSPACE where the functest repo is cloned
+            cd $WORKSPACE
+
+            # prepare
+            echo "Functest: prepare Functest environment"
+            python $WORKSPACE/testcases/config_functest.py --debug $WORKSPACE/ start
 
 - job-template:
-    name: functest-odl-test
+    name: clean-functest-env-{installer}-{stream}
 
     project-type: freestyle
 
-    node: ericsson-build
+    node: '{node}'
 
     logrotate:
         daysToKeep: 30
 
     builders:
         - shell: |
-            echo "put your CI scenario here"
+            #!/bin/bash
+            set +e
+
+            # collect results
+            echo "Functest: copy results and clean Functest environment"
+            mkdir -p $HOME/functest/results
+
+            # save ODL results
+            cp -Rf $WORSPACE/testcases/Controllers/ODL/CI/logs $HOME/functest/results/ODL
+
+            # save tempest.conf for further troubleshooting
+            cp $HOME/.rally/tempest/for-deployment-*/tempest.conf $HOME/functest/results
+
+            # cleanup
+            python $WORKSPACE/testcases/config_functest.py --debug --force $WORKSPACE/ clean
 
 - job-template:
-    name: functest-vims-test
+    name: functest-openstack-bench-test-{pod}
 
     project-type: freestyle
 
-    node: ericsson-build
+    node: '{pod}'
 
     logrotate:
         daysToKeep: 30
 
     builders:
         - shell: |
-            echo "put your CI scenario here"
+            #!/bin/bash
+            set +e
 
+            echo "Functest: run Functest Rally Bench suites"
+            python $WORKSPACE/testcases/VIM/OpenStack/CI/libraries/run_rally.py --debug $WORKSPACE/ all
 
 - job-template:
-    name: functest-vping-test
+    name: functest-openstack-tempest-smoke-test-{pod}
 
     project-type: freestyle
 
+    node: '{pod}'
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - shell: |
+            #!/bin/bash
+            set +e
+
+            # tempest
+            echo "Functest: run Tempest suite"
+            rally verify start smoke
+            rally verify list
+
+- job-template:
+    name: functest-odl-test-{pod}
+
+    project-type: freestyle
+
+    node: '{pod}'
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - shell: |
+            #!/bin/bash
+            set +e
+
+            echo "Functest: run ODL suite"
+            $WORKSPACE/testcases/Controllers/ODL/CI/start_tests.sh
+
+- job-template:
+    name: functest-vims-test-{pod}
+
+    project-type: freestyle
+
+    node: '{pod}'
+
     logrotate:
         daysToKeep: 30
         numToKeep: 10
             echo "put your CI scenario here"
 
 
+- job-template:
+    name: functest-vping-test-{pod}
+
+    project-type: freestyle
+
+    node: '{pod}'
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - shell: |
+            #!/bin/bash
+            set +e
+
+            # vPing
+            echo "Functest: run vPing"
+            python $WORKSPACE/testcases/vPing/CI/libraries/vPing.py --debug $WORKSPACE/
+
+- job-template:
+    name: functest-{pod}
+
+    project-type: freestyle
+
+    node: '{pod}'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - string:
+            name: INSTALLER_TYPE
+            default: '{installer_type}'
+            description: "Installer name that is used for deployment."
+        - string:
+            name: INSTALLER_IP
+            default: '{installer_ip}'
+            description: "Installer IP."
+        - '{pod}'
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: master
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - 'functest-fetch-os-creds'
+        - 'functest-all'
+        - 'functest-store-results'
+        - 'functest-cleanup'
+
+- job-template:
+    name: functest-{installer}-{stream}
+
+    project-type: freestyle
+
+    node: '{node}'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - string:
+            name: INSTALLER_TYPE
+            default: '{installer_type}'
+            description: "Installer name that is used for deployment."
+        - string:
+            name: INSTALLER_IP
+            default: '{installer_ip}'
+            description: "Installer IP."
+        - string:
+            name: GIT_BASE
+            default: ssh://gerrit.opnfv.org:29418/$PROJECT
+            description: "Override GIT_BASE"
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: master
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - 'functest-fetch-os-creds'
+        - 'functest-all'
+        - 'functest-store-results'
+        - 'functest-cleanup'
 
 - job-template:
     name: 'functest-daily-{stream}'
 
+    node: master
+
     # Job template for daily builders
     #
     # Required Variables:
     parameters:
         - project-parameter:
             project: '{project}'
+        - functest-parameter:
+            gs-pathname: '{gs-pathname}'
 
     scm:
         - git-scm:
             credentials-id: '{ssh-credentials}'
             refspec: ''
-            branch: '{branch}'
+            branch: '{stream}'
 
     wrappers:
         - ssh-agent-credentials:
             user: '{ssh-credentials}'
 
     triggers:
-        - timed: 'H H * * *'
+        - 'functest-{stream}'
 
     prebuilders:
         - test-macro
 
     builders:
         - shell:
-            !include-raw build-upload-docu.sh
+            !include-raw ../opnfvdocs/docu-build.sh
 
     postbuilders:
         - test-macro
 
 - job-template:
-    name: 'functest-verify'
+    name: 'functest-verify-{stream}'
+
+    node: master
 
     project-type: freestyle
 
         - project-parameter:
             project: '{project}'
         - gerrit-parameter:
-            branch: 'master'
+            branch: '{branch}'
     scm:
         - gerrit-trigger-scm:
             credentials-id: '{ssh-credentials}'
                 project-pattern: 'functest'
                 branches:
                   - branch-compare-type: 'ANT'
-                    branch-pattern: '**/master'
+                    branch-pattern: '**/{branch}'
 
     builders:
         - shell:
-            !include-raw build-docu-verify.sh
+            !include-raw ../opnfvdocs/docu-build.sh
 
 - job-template:
-    name: 'functest-merge'
+    name: 'functest-merge-{stream}'
+
+    node: master
 
     # builder-merge job to run JJB update
     #
         - project-parameter:
             project: '{project}'
         - gerrit-parameter:
-            branch: 'master'
+            branch: '{branch}'
 
     scm:
         - gerrit-trigger-scm:
                 project-pattern: 'functest'
                 branches:
                     - branch-compare-type: 'ANT'
-                      branch-pattern: '**/master'
+                      branch-pattern: '**/{branch}'
+
+    builders:
+        - shell:
+            !include-raw ../opnfvdocs/docu-build.sh
+
+########################
+# parameter macros
+########################
+- parameter:
+    name: functest-parameter
+    parameters:
+        - string:
+            name: GS_PATHNAME
+            default: '{gs-pathname}'
+            description: "Version directory where the opnfv documents will be stored in gs repository"
+
+- parameter:
+    name: orange-build
+    parameters:
+        - string:
+            name: GIT_BASE
+            default: https://gerrit.opnfv.org/gerrit/$PROJECT
+            description: "Override GIT_BASE"
+
+- parameter:
+    name: opnfv-jump-1
+    parameters:
+        - string:
+            name: GIT_BASE
+            default: ssh://gerrit.opnfv.org:29418/$PROJECT
+            description: "Override GIT_BASE"
+
+- parameter:
+    name: opnfv-jump-2
+    parameters:
+        - string:
+            name: GIT_BASE
+            default: ssh://gerrit.opnfv.org:29418/$PROJECT
+            description: "Override GIT_BASE"
+########################
+# trigger macros
+########################
+- trigger:
+    name: 'functest-master'
+    triggers:
+        - pollscm: "H 9 * * *"
+
+- trigger:
+    name: 'functest-stable-arno'
+    triggers:
+        - pollscm: "H 21 * * *"
+
+########################
+# builder macros
+########################
+# macros
+- builder:
+    name: functest-all
+    builders:
+        - shell: |
+            #!/bin/bash
+            set +e
+
+            echo "Functest: prepare Functest environment"
+            mkdir -p $HOME/functest/
+            source $HOME/opnfv-openrc.sh
+
+            # WORKSPACE is the root of the functest repo
+            # go into WORKSPACE where the functest repo is cloned
+            cd $WORKSPACE
+
+            # prepare
+            echo "Functest: prepare Functest environment"
+            python $WORKSPACE/testcases/config_functest.py --debug $WORKSPACE/ start
+
+            # vPing
+            echo "Functest: run vPing"
+            python $WORKSPACE/testcases/vPing/CI/libraries/vPing.py --debug $WORKSPACE/
+
+            # ODL
+            echo "Functest: run ODL suite"
+            $WORKSPACE/testcases/Controllers/ODL/CI/start_tests.sh
+
+            # rally
+            echo "Functest: run Functest Rally Bench suites"
+            python $WORKSPACE/testcases/VIM/OpenStack/CI/libraries/run_rally.py --debug $WORKSPACE/ all
+
+            # tempest
+            echo "Functest: run Tempest suite"
+            rally verify start smoke
+            rally verify list
+
+            # collect results
+            echo "Functest: copy results and clean Functest environment"
+            mkdir -p $HOME/functest/results
 
+            # save ODL results
+            cp -Rf $WORKSPACE/testcases/Controllers/ODL/CI/logs $HOME/functest/results/ODL
+
+            # save tempest.conf for further troubleshooting
+            cp $HOME/.rally/tempest/for-deployment-*/tempest.conf $HOME/functest/results
+
+- builder:
+    name: functest-store-results
     builders:
-        - shell: 
-            !include-raw build-upload-docu.sh
+        - shell:
+            !include-raw res-build.sh
 
+- builder:
+    name: functest-cleanup
+    builders:
+        - shell: |
+            #!/bin/bash
+            set +e
+
+            # cleanup
+            python $WORKSPACE/testcases/config_functest.py --debug --force $WORKSPACE/ clean
+
+- builder:
+    name: functest-fetch-os-creds
+    builders:
+        - shell:
+            !include-raw ../../utils/fetch_os_creds.sh