the workaround of network configuration
[releng.git] / jjb / yardstick / yardstick.yml
index d25d851..b6a02dc 100644 (file)
@@ -1,7 +1,23 @@
 - project:
     name: yardstick
+
+    project: 'yardstick'
+
+    pod:
+        - lf:
+            node: 'opnfv-jump-2'
+            installer_type: 'fuel'
+            installer_ip: '10.20.0.2'
+        - ericsson:
+            node: 'yardstick-pod'
+            installer_type: 'fuel'
+            installer_ip: '10.20.0.2'
+
+    installer:
+        - fuel
+
     jobs:
-        - 'yardstick-daily-{stream}'
+        - 'yardstick-{installer}-{pod}-{stream}'
         - 'yardstick-merge'
         - 'yardstick-verify'
 
         - master:
             branch: 'master'
 
-    project: 'yardstick'
-    somevar: 'foo'
-
-- job-template:
-    name: 'yardstick-daily-{stream}'
-
-    # Job template for daily builders
-    #
-    # Required Variables:
-    #     stream:    branch with - in place of / (eg. stable)
-    #     branch:    branch (eg. stable)
-
-    node: ericsson-build
-
-    project-type: freestyle
-    varsetabove: '{somevar}'
-
-    logrotate:
-        daysToKeep: '{build-days-to-keep}'
-        numToKeep: '{build-num-to-keep}'
-        artifactDaysToKeep: '{build-artifact-days-to-keep}'
-        artifactNumToKeep: '{build-artifact-num-to-keep}'
-
-    parameters:
-        - project-parameter:
-            project: '{project}'
-        - string:
-            name: GIT_BASE
-            default: https://gerrit.opnfv.org/gerrit/$PROJECT
-            description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
-
-    scm:
-        - git-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
-            branch: '{branch}'
-
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
-    triggers:
-        - timed: 'H H * * *'
-
-    prebuilders:
-        - test-macro
-
-    builders:
-        - shell: |
-            pwd
-            find .
-            echo "Hello world from yardstick {somevar} daily"
-
-    postbuilders:
-        - test-macro
-
 - job-template:
     name: 'yardstick-verify'
 
-    project-type: freestyle
-
     node: ericsson-build
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
-
     parameters:
         - project-parameter:
             project: '{project}'
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
 
     builders:
         - shell: |
+            #!/bin/bash
+            set -o errexit
+            set -o pipefail
+
             echo "Running unit tests..."
             cd $WORKSPACE
+            virtualenv $WORKSPACE/yardstick_venv
+            source $WORKSPACE/yardstick_venv/bin/activate
+            easy_install -U setuptools
+            python setup.py develop
             ./run_tests.sh
+            deactivate
 
 - job-template:
     name: 'yardstick-merge'
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
     node: ericsson-build
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
-
     parameters:
         - project-parameter:
             project: '{project}'
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
 
     builders:
         - shell: |
+            #!/bin/bash
+            set -o errexit
+            set -o pipefail
+
             echo "Running unit tests..."
             cd $WORKSPACE
+            virtualenv $WORKSPACE/yardstick_venv
+            source $WORKSPACE/yardstick_venv/bin/activate
+            easy_install -U setuptools
+            python setup.py develop
             ./run_tests.sh
+            deactivate
+
+- job-template:
+    name: 'yardstick-{installer}-{pod}-{stream}'
+
+    disabled: false
+
+    node: '{node}'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - '{pod}-parameters'
+        - string:
+            name: POD_NAME
+            default: '{pod}'
+            description: "POD where the job runs"
+        - 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."
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: master
+
+    triggers:
+        - 'yardstick-trigger-{pod}'
+
+    builders:
+        - 'yardstick-cleanup'
+        - 'yardstick-fetch-os-creds'
+        - 'yardstick-daily'
+
+    publishers:
+        - email:
+            recipients: ana.cunha@ericsson.com jorgen.w.karlsson@ericsson.com
+
+########################
+# builder macros
+########################
+- builder:
+    name: yardstick-daily
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+
+            echo "Yardstick: Run benchmark test suites ..."
+
+            # Pull the latest image
+            docker pull opnfv/yardstick
+
+            # Test suites to run
+            TEST_SUITES=opnfv_${POD_NAME}_daily.yaml
+
+            docker run \
+               --privileged=true \
+                --rm \
+                -t \
+                -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+                -e "INSTALLER_IP=${INSTALLER_IP}" \
+                -e "POD_NAME=${POD_NAME}" \
+                -e "EXTERNAL_NETWORK=net04_ext" \
+                opnfv/yardstick \
+                run_tests.sh \
+                $TEST_SUITES
+
+            echo "Yardstick: done!"
+
+- builder:
+    name: yardstick-fetch-os-creds
+    builders:
+        - shell:
+            !include-raw ../../utils/fetch_os_creds.sh
+
+- builder:
+    name: yardstick-cleanup
+    builders:
+        - shell: |
+            #!/bin/bash
+
+            echo "Cleaning up docker containers/images..."
+
+            # Remove previous running containers if exist
+            if [[ ! -z $(docker ps -a | grep opnfv/yardstick) ]]; then
+                echo "Removing existing opnfv/yardstick containers..."
+                docker ps | grep opnfv/yardstick | awk '{print $1}' | xargs docker stop
+                docker ps -a | grep opnfv/yardstick | awk '{print $1}' | xargs docker rm
+            fi
+
+            # Remove existing images if exist
+            if [[ ! -z $(docker images | grep opnfv/yardstick) ]]; then
+                echo "Docker images to remove:"
+                docker images | head -1 && docker images | grep opnfv/yardstick
+                image_tags=($(docker images | grep opnfv/yardstick | awk '{print $2}'))
+                for tag in "${image_tags[@]}"; do
+                    echo "Removing docker image opnfv/yardstick:$tag..."
+                    docker rmi opnfv/yardstick:$tag
+                done
+            fi
+
+########################
+# parameter macros
+########################
+- parameter:
+    name: 'ericsson-parameters'
+    parameters:
+        - string:
+            name: GIT_BASE
+            default: https://gerrit.opnfv.org/gerrit/$PROJECT
+            description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
+
+- parameter:
+    name: 'lf-parameters'
+    parameters:
+        - string:
+            name: GIT_BASE
+            default: ssh://gerrit.opnfv.org:29418/$PROJECT
+            description: "URL for LF POD"
+
+########################
+# trigger macros
+########################
+- trigger:
+    name: 'yardstick-trigger-ericsson'
+    triggers:
+        - timed: '@midnight'
+
+- trigger:
+    name: 'yardstick-trigger-lf'
+    triggers:
+        - timed: '#@midnight'