Refactor functest job execute shell
[releng.git] / jjb / functest / functest.yml
index 7245260..661dffa 100644 (file)
@@ -1,8 +1,19 @@
 - project:
     name: functest
+
+    pod:
+        - 'opnfv-jump-1'
+        - 'opnfv-jump-2'
     jobs:
-        - 'functest-test'
-        - 'functest-daily-master'
+        - 'functest-{pod}'
+        - 'functest-openstack-bench-test'
+        - 'functest-openstack-tempest-smoke-test'
+        - 'functest-odl-test'
+        - 'functest-vims-test'
+        - 'functest-vping-test'
+        - 'functest-daily-{stream}'
+        - 'functest-merge'
+        - 'functest-verify'
 
     # stream:    branch with - in place of / (eg. stable-helium)
     # branch:    branch (eg. stable/helium)
     somevar: 'foo'
 
 - job-template:
-    name: functest-test
+    name: functest-openstack-bench-test
+
+    project-type: freestyle
+
+    node: opnfv-jump-2
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - shell: |
+            python $HOME/.functest/run_rally.py all
+
+- job-template:
+    name: functest-openstack-tempest-smoke-test
+
+    project-type: freestyle
+
+    node: opnfv-jump-2
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - shell: |
+            rally verify start smoke
+            rally verify list
+
+- job-template:
+    name: functest-odl-test
+
+    project-type: freestyle
+
+    node: opnfv-jump-2
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - shell: |
+            echo "put your CI scenario here"
+
+- job-template:
+    name: functest-vims-test
 
     project-type: freestyle
 
+    node: opnfv-jump-2
+
     logrotate:
         daysToKeep: 30
         numToKeep: 10
 
     builders:
         - shell: |
-            echo "Hello world from functest"
+            echo "put your CI scenario here"
+
+
+- job-template:
+    name: functest-vping-test
+
+    project-type: freestyle
+
+    node: opnfv-jump-2
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - shell: |
+            python $HOME/.functest/vPing/vPing.py
+
+- job-template:
+    name: functest-{pod}
+
+    project-type: freestyle
+
+    node: '{pod}'
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: master
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - 'functest-all'
 
 - job-template:
-    name: 'functest-daily-master'
+    name: 'functest-daily-{stream}'
+
+    node: master
 
     # Job template for daily builders
     #
         artifactDaysToKeep: '{build-artifact-days-to-keep}'
         artifactNumToKeep: '{build-artifact-num-to-keep}'
 
+    parameters:
+        - project-parameter:
+            project: '{project}'
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: '{branch}'
+
     wrappers:
         - ssh-agent-credentials:
             user: '{ssh-credentials}'
         - test-macro
 
     builders:
-        - shell: |
-            echo "Hello world from functest {somevar} daily"
-        - test-macro
+        - shell:
+            !include-raw docu-build.sh
 
     postbuilders:
         - test-macro
 
+- job-template:
+    name: 'functest-verify'
+
+    node: master
+
+    project-type: freestyle
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: 'master'
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: '$GERRIT_REFSPEC'
+            choosing-strategy: 'gerrit'
+
+    wrappers:
+        - ssh-agent-credentials:
+            user: '{ssh-credentials}'
+
+    triggers:
+        - gerrit:
+            trigger-on:
+                - patchset-created-event:
+                    exclude-drafts: 'false'
+                    exclude-trivial-rebase: 'false'
+                    exclude-no-code-change: 'false'
+                - draft-published-event
+                - comment-added-contains-event:
+                    comment-contains-value: 'recheck'
+                - comment-added-contains-event:
+                    comment-contains-value: 'reverify'
+            projects:
+              - project-compare-type: 'ANT'
+                project-pattern: 'functest'
+                branches:
+                  - branch-compare-type: 'ANT'
+                    branch-pattern: '**/master'
+
+    builders:
+        - shell:
+            !include-raw docu-verify.sh
+
+- job-template:
+    name: 'functest-merge'
+
+    node: master
+
+    # builder-merge job to run JJB update
+    #
+    # This job's purpose is to update all the JJB
+
+    project-type: freestyle
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 40
+        artifactDaysToKeep: -1
+        artifactNumToKeep: 5
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: 'master'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            choosing-strategy: 'default'
+
+    wrappers:
+        - ssh-agent-credentials:
+            user: '{ssh-credentials}'
+
+    triggers:
+        - gerrit:
+            trigger-on:
+                - change-merged-event
+                - comment-added-contains-event:
+                    comment-contains-value: 'remerge'
+            projects:
+              - project-compare-type: 'ANT'
+                project-pattern: 'functest'
+                branches:
+                    - branch-compare-type: 'ANT'
+                      branch-pattern: '**/master'
+
+    builders:
+        - shell:
+            !include-raw docu-build.sh
+
+# macros
+- builder:
+    name: functest-all
+    builders:
+        - shell: |
+            echo "Functest: prepare Functest environment"
+            mkdir -p $HOME/functest/
+            source $HOME/functest/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
+
+            # tempest
+            echo "Functest: run Tempest suite"
+            rally verify start smoke
+            rally verify list
+
+            # vPing
+            echo "Functest: run vPing"
+            python $WORKSPACE/testcases/vPing/CI/libraries/vPing.py --debug $WORKSPACE/
+
+            # rally
+            echo "Functest: run Functest Rally Bench suites"
+            python $WORKSPACE/testcases/VIM/OpenStack/CI/libraries/run_rally.py --debug $WORKSPACE/ all
+
+            # ODL
+            echo "Functest: run ODL suite"
+            $WORKSPACE/testcases/Controllers/ODL/CI/start_tests.sh
+
+            # collect results
+            echo "Functest: copy results and clean Functest environment"
+            mkdir -p $HOME/functest/results
+
+            # save tempest.conf for further troubleshooting
+            cp $HOME/.rally/for-deployment-*/tempest.conf $HOME/functest/results
+
+            # cleanup
+            python $WORKSPACE/testcases/config_functest.py --debug --force $WORKSPACE/ clean