diff options
-rw-r--r-- | jjb/apex/apex.yml | 41 | ||||
-rwxr-xr-x | jjb/fuel/fuel-build.sh | 2 | ||||
-rw-r--r-- | jjb/fuel/fuel-ci-jobs.yml | 4 | ||||
-rwxr-xr-x | jjb/fuel/fuel-deploy-virtual.sh | 2 | ||||
-rw-r--r-- | jjb/fuel/fuel-project-jobs.yml | 22 | ||||
-rw-r--r-- | jjb/functest/functest-ci-jobs.yml | 5 | ||||
-rw-r--r-- | jjb/joid/joid-ci-jobs.yml | 157 | ||||
-rw-r--r-- | jjb/joid/joid-deploy.sh | 86 | ||||
-rw-r--r-- | jjb/opnfv/installer-params.yml | 20 | ||||
-rw-r--r-- | jjb/opnfv/slave-params.yml | 19 | ||||
-rw-r--r-- | jjb/qtip/qtip.yml | 126 | ||||
-rw-r--r-- | jjb/yardstick/yardstick-ci-jobs.yml | 10 | ||||
-rw-r--r-- | utils/test/result_collection_api/dashboard/dashboard_utils.py | 6 |
13 files changed, 246 insertions, 254 deletions
diff --git a/jjb/apex/apex.yml b/jjb/apex/apex.yml index a5cc4798a..804adc892 100644 --- a/jjb/apex/apex.yml +++ b/jjb/apex/apex.yml @@ -58,6 +58,15 @@ branches: - branch-compare-type: 'ANT' branch-pattern: '**/master' + file-paths: + - compare-type: ANT + pattern: 'ci/**' + - compare-type: ANT + pattern: 'build/**' + - compare-type: ANT + pattern: 'lib/**' + - compare-type: ANT + pattern: 'config/**' forbidden-file-paths: - compare-type: ANT pattern: 'docs/**' @@ -67,6 +76,8 @@ use-build-blocker: true blocking-jobs: - "apex-daily.*" + - "apex-deploy.*" + - "apex-build.*" builders: - 'apex-build' @@ -153,6 +164,12 @@ refspec: '' branch: '{branch}' + properties: + - build-blocker: + use-build-blocker: true + blocking-jobs: + - "apex-deploy.*" + builders: - 'apex-build' - 'apex-deploy-virtual' @@ -183,6 +200,15 @@ - apex-parameter: gs-pathname: '{gs-pathname}' + properties: + - build-blocker: + use-build-blocker: true + blocking-jobs: + - "apex-verify.*" + - "apex-deploy.*" + - "apex-build.*" + - "apex-daily.*" + builders: - 'apex-deploy-virtual' - 'apex-workspace-cleanup' @@ -211,6 +237,15 @@ - apex-parameter: gs-pathname: '{gs-pathname}' + properties: + - build-blocker: + use-build-blocker: true + blocking-jobs: + - "apex-verify.*" + - "apex-deploy.*" + - "apex-build.*" + - "apex-daily.*" + builders: - 'apex-deploy-baremetal' - 'apex-workspace-cleanup' @@ -243,7 +278,9 @@ - build-blocker: use-build-blocker: true blocking-jobs: - - "apex-daily.*" + - "apex-verify.*" + - "apex-deploy.*" + - "apex-build.*" triggers: - 'apex-{stream}' @@ -254,7 +291,7 @@ git-revision: true block: true - trigger-builds: - - project: 'apex-deploy-baremetal-{stream}' + - project: 'apex-deploy-virtual-{stream}' git-revision: true block: true - trigger-builds: diff --git a/jjb/fuel/fuel-build.sh b/jjb/fuel/fuel-build.sh index d6a71e00b..d51637afd 100755 --- a/jjb/fuel/fuel-build.sh +++ b/jjb/fuel/fuel-build.sh @@ -56,7 +56,7 @@ if [[ "$JOB_NAME" =~ "verify" && "$GERRIT_CHANGE_COMMIT_MESSAGE" =~ "$NOCACHE_PA echo "The cache will not be used for this build!" NOCACHE_ARG="-f P" fi -NOCACHE_ARG=${{NOCACHE_ARG:-}} +NOCACHE_ARG=${NOCACHE_ARG:-} # start the build cd $WORKSPACE/ci diff --git a/jjb/fuel/fuel-ci-jobs.yml b/jjb/fuel/fuel-ci-jobs.yml index 1b4b26963..273d9a4c9 100644 --- a/jjb/fuel/fuel-ci-jobs.yml +++ b/jjb/fuel/fuel-ci-jobs.yml @@ -150,9 +150,9 @@ builders: - shell: - !include-raw ./fuel-download-artifact.sh + !include-raw-escape: ./fuel-download-artifact.sh - shell: - !include-raw ./fuel-deploy.sh + !include-raw-escape: ./fuel-deploy.sh publishers: - email: diff --git a/jjb/fuel/fuel-deploy-virtual.sh b/jjb/fuel/fuel-deploy-virtual.sh index 8e9282373..e7c83b77f 100755 --- a/jjb/fuel/fuel-deploy-virtual.sh +++ b/jjb/fuel/fuel-deploy-virtual.sh @@ -24,7 +24,7 @@ chmod a+x $TMPDIR # get the lab name from SLAVE_NAME # we currently support ericsson and intel labs -LAB_NAME=${{NODE_NAME%%-*}} +LAB_NAME=${NODE_NAME%%-*} if [[ ! "$LAB_NAME" =~ (ericsson|intel) ]]; then echo "Unsupported/unidentified lab $LAB_NAME. Cannot continue!" exit 1 diff --git a/jjb/fuel/fuel-project-jobs.yml b/jjb/fuel/fuel-project-jobs.yml index 848fd0b21..a04e4e65d 100644 --- a/jjb/fuel/fuel-project-jobs.yml +++ b/jjb/fuel/fuel-project-jobs.yml @@ -60,11 +60,11 @@ builders: - shell: - !include-raw ./fuel-build.sh + !include-raw-escape: ./fuel-build.sh - shell: - !include-raw ./fuel-upload-artifact.sh + !include-raw-escape: ./fuel-upload-artifact.sh - shell: - !include-raw ./fuel-workspace-cleanup.sh + !include-raw-escape: ./fuel-workspace-cleanup.sh publishers: - email: @@ -125,9 +125,9 @@ builders: - shell: - !include-raw ./fuel-build.sh + !include-raw-escape: ./fuel-build.sh - shell: - !include-raw ./fuel-workspace-cleanup.sh + !include-raw-escape: ./fuel-workspace-cleanup.sh - job-template: name: 'fuel-merge-build-{stream}' @@ -176,11 +176,11 @@ builders: - shell: - !include-raw ./fuel-build.sh + !include-raw-escape: ./fuel-build.sh - shell: - !include-raw ./fuel-upload-artifact.sh + !include-raw-escape: ./fuel-upload-artifact.sh - shell: - !include-raw ./fuel-workspace-cleanup.sh + !include-raw-escape: ./fuel-workspace-cleanup.sh - job-template: name: 'fuel-merge-deploy-virtual-{stream}' @@ -228,11 +228,11 @@ builders: - shell: - !include-raw ./fuel-download-artifact.sh + !include-raw-escape: ./fuel-download-artifact.sh - shell: - !include-raw ./fuel-deploy-virtual.sh + !include-raw-escape: ./fuel-deploy-virtual.sh - shell: - !include-raw ./fuel-workspace-cleanup.sh + !include-raw-escape: ./fuel-workspace-cleanup.sh publishers: - email: diff --git a/jjb/functest/functest-ci-jobs.yml b/jjb/functest/functest-ci-jobs.yml index f3bcd17d6..663702fd5 100644 --- a/jjb/functest/functest-ci-jobs.yml +++ b/jjb/functest/functest-ci-jobs.yml @@ -194,12 +194,9 @@ elif [[ ${INSTALLER_TYPE} == 'joid' ]]; then # If production lab then creds may be retrieved dynamically # creds are on the jumphost, always in the same folder - labconfig="-v /var/lib/jenkins/joid_config/admin-openrc:/home/opnfv/functest/conf/openstack.creds" + labconfig="-v $LAB_CONFIG/admin-openrc:/home/opnfv/functest/conf/openstack.creds" # If dev lab, credentials may not be the default ones, just provide a path to put them into docker # replace the default one by the customized one provided by jenkins config - if [ -n "${LAB_CONFIG}" ]; then - labconfig="-v ${LAB_CONFIG}:/home/opnfv/functest/conf/openstack.creds" - fi fi echo "Functest: Start Docker and prepare environment" envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}" diff --git a/jjb/joid/joid-ci-jobs.yml b/jjb/joid/joid-ci-jobs.yml index 80e21f50e..4a8b60db5 100644 --- a/jjb/joid/joid-ci-jobs.yml +++ b/jjb/joid/joid-ci-jobs.yml @@ -74,8 +74,8 @@ parameters: - project-parameter: project: '{project}' - - '{pod}-defaults' - '{installer}-defaults' + - '{pod}-defaults' - string: name: SDN_CONTROLLER default: '{sdn-controller}' @@ -90,9 +90,28 @@ branch: '{branch}' builders: - - '{installer}-multijob-{pod}-builder': - pod: '{pod}' - stream: '{stream}' + - multijob: + name: deploy + condition: SUCCESSFUL + projects: + - name: 'joid-deploy-{pod}-daily-{stream}' + current-parameters: true + git-revision: true + kill-phase-on: FAILURE + - multijob: + name: functest + condition: COMPLETED + projects: + - name: 'functest-joid-{pod}-daily-{stream}' + current-parameters: true + kill-phase-on: NEVER + - multijob: + name: yardstick + condition: COMPLETED + projects: + - name: 'yardstick-joid-{pod}-daily-{stream}' + current-parameters: true + kill-phase-on: NEVER - job-template: name: 'joid-deploy-{pod}-daily-{stream}' @@ -111,8 +130,8 @@ parameters: - project-parameter: project: '{project}' - - '{pod}-defaults' - '{installer}-defaults' + - '{pod}-defaults' scm: - git-scm: @@ -121,144 +140,24 @@ branch: '{branch}' builders: - - '{pod}-builder' + - 'builder-macro' ######################## -# multijob builder macros -######################## -# intel-pod5 is CI POD so full CI will run on it -# deploy, functest, yardstick -- builder: - name: joid-multijob-intel-pod5-builder - builders: - - multijob: - name: deploy - condition: SUCCESSFUL - projects: - - name: 'joid-deploy-{pod}-daily-{stream}' - current-parameters: true - git-revision: true - kill-phase-on: FAILURE - - multijob: - name: functest - condition: COMPLETED - projects: - - name: 'functest-joid-{pod}-daily-{stream}' - current-parameters: true - kill-phase-on: NEVER - - multijob: - name: yardstick - condition: COMPLETED - projects: - - name: 'yardstick-joid-{pod}-daily-{stream}' - current-parameters: true - kill-phase-on: NEVER -# intel-pod6 is CI POD so full CI will run on it -# deploy, functest, yardstick -- builder: - name: joid-multijob-intel-pod6-builder - builders: - - multijob: - name: deploy - condition: SUCCESSFUL - projects: - - name: 'joid-deploy-{pod}-daily-{stream}' - current-parameters: true - git-revision: true - kill-phase-on: FAILURE - - multijob: - name: functest - condition: COMPLETED - projects: - - name: 'functest-joid-{pod}-daily-{stream}' - current-parameters: true - kill-phase-on: NEVER - - multijob: - name: yardstick - condition: COMPLETED - projects: - - name: 'yardstick-joid-{pod}-daily-{stream}' - current-parameters: true - kill-phase-on: NEVER -# yardstick placeholder -# - multijob: -# name: yardstick -# condition: COMPLETED -# projects: -# - name: 'yardstick-joid-{pod}-daily-{stream}' -# current-parameters: true -# kill-phase-on: NEVER - -# orange-pod2 is NOT a CI POD so only the selected jobs will run -# deploy and functest currently -- builder: - name: joid-multijob-orange-pod2-builder - builders: - - multijob: - name: deploy - condition: SUCCESSFUL - projects: - - name: 'joid-deploy-{pod}-daily-{stream}' - current-parameters: true - git-revision: true - kill-phase-on: FAILURE - - multijob: - name: functest - condition: COMPLETED - projects: - - name: 'functest-joid-{pod}-daily-{stream}' - current-parameters: true - kill-phase-on: NEVER -######################## # builder macros ######################## - builder: - name: intel-pod5-builder + name: 'builder-macro' builders: - shell: | #!/bin/bash echo "Running $INSTALLER_TYPE with controller $SDN_CONTROLLER" echo - echo "Executing clean.sh" - cd $WORKSPACE/ci - ./clean.sh - echo - echo "Executing 02-maasdeploy.sh intelpod5" - ./02-maasdeploy.sh intelpod5 - echo - echo "Executing deploy.sh -o liberty -s $SDN_CONTROLLER -t ha -l intelpod5" - ./deploy.sh -o liberty -s $SDN_CONTROLLER -t ha -l intelpod5 - -- builder: - name: intel-pod6-builder - builders: - - shell: | - #!/bin/bash - echo "Running $INSTALLER_TYPE with controller $SDN_CONTROLLER" - echo - echo "Executing clean.sh" - cd $WORKSPACE/ci - ./clean.sh - echo - echo "Executing 02-maasdeploy.sh intelpod6" - ./02-maasdeploy.sh intelpod6 - echo - echo "Executing deploy.sh -o liberty -s $SDN_CONTROLLER -t ha -l intelpod6" - ./deploy.sh -o liberty -s $SDN_CONTROLLER -t ha -l intelpod6 - -- builder: - name: orange-pod2-builder - builders: - - shell: | - #!/bin/bash - echo "Running $INSTALLER_TYPE with controller $SDN_CONTROLLER" - echo "Please note that this is WIP generic builder" - echo - echo "Executing clean.sh" + echo "------ First Executing clean.sh ------" cd $WORKSPACE/ci ./clean.sh - shell: !include-raw ./joid-deploy.sh + ######################## # trigger macros ######################## diff --git a/jjb/joid/joid-deploy.sh b/jjb/joid/joid-deploy.sh index c7e5ba8fd..53255a3ff 100644 --- a/jjb/joid/joid-deploy.sh +++ b/jjb/joid/joid-deploy.sh @@ -2,51 +2,58 @@ set +e set -o nounset -JOID_LOCAL_CONFIG_FOLDER=$HOME/joid_config -JOID_ADMIN_OPENRC=$JOID_LOCAL_CONFIG_FOLDER/admin-openrc +PWD_FILENAME="passwords.sh" ## -## Load local config or defaults +## Create LAB_CONFIG folder if not exists ## +mkdir -p $LAB_CONFIG -if [ -e "$JOID_LOCAL_CONFIG_FOLDER/config.sh" ]; then - echo "------ Load local config ------" - source $JOID_LOCAL_CONFIG_FOLDER/config.sh +## +## Override default passwords with local settings if needed +## + +if [ -e "$LAB_CONFIG/$PWD_FILENAME" ]; then + echo "------ Load local passwords ------" + source $LAB_CONFIG/$PWD_FILENAME else - echo "------ No local config, load default ------" - # link NODE_NAME to joid node config names + export MAAS_USER=ubuntu + export MAAS_PASSWORD=ubuntu + export OS_ADMIN_PASSWORD=openstack +fi + +## +## Set Joid pod config name +## + # This part will be removed when pod names will be synced between jenkins and joid config case $NODE_NAME in orange-fr-pod2) POD=orange-pod2 ;; *) POD=$NODE_NAME ;; esac - export POD_DC=$(echo $POD |cut -d\- -f1) - export POD_NUM=$(echo $POD |cut -d\- -f2) - export POD_NAME=$POD_DC$POD_NUM - export MAAS_REINSTALL=true - export MAAS_USER=ubuntu - export MAAS_PASSWORD=ubuntu - export OS_ADMIN_PASSWORD=openstack - export CEPH_DISKS=/srv - export CEPH_REFORMAT=no -fi + export POD_NAME=${POD/-} ## ## Redeploy MAAS or recover the previous config ## cd $WORKSPACE/ci -if [ -e "$JOID_LOCAL_CONFIG_FOLDER/environments.yaml" ] && [ "$MAAS_REINSTALL" == "false" ]; then +if [ -e "$LAB_CONFIG/environments.yaml" ] && [ "$MAAS_REINSTALL" == "false" ]; then echo "------ Recover Juju environment to use MAAS ------" - cp $JOID_LOCAL_CONFIG_FOLDER/environments.yaml . + cp $LAB_CONFIG/environments.yaml . else - MAASCONFIG=$WORKSPACE/ci/maas/$POD_DC/$POD_NUM/deployment.yaml + MAASCONFIG=$WORKSPACE/ci/maas/${POD/-*}/${POD/*-}/deployment.yaml echo "------ Set MAAS password ------" sed -i -- "s/user: ubuntu/user: $MAAS_USER/" $MAASCONFIG sed -i -- "s/password: ubuntu/password: $MAAS_PASSWORD/" $MAASCONFIG echo "------ Redeploy MAAS ------" ./02-maasdeploy.sh $POD_NAME + RES=$? + if [ $RES != 0 ]; then + echo "MAAS Deploy FAILED" + exit $RES + fi fi ## @@ -66,7 +73,13 @@ echo "------ Set openstack password ------" sed -i -- "s/\"admin-password\": openstack/\"admin-password\": $OS_ADMIN_PASSWORD/" $SRCBUNDLE echo "------ Set ceph disks ------" -sed -i -- "s@osd-devices: /srv@osd-devices: $CEPH_DISKS@" $SRCBUNDLE +if [ -z "$CEPH_DISKS_CONTROLLERS" ]; then + CEPH_DISKS_CONTROLLERS=$CEPH_DISKS +fi +#Find the first line of osd-devices to change the one for ceph, then the other for ceph-osd +CEPH_DEV_LINE=$(grep -nr osd-devices $SRCBUNDLE |head -n1|cut -d: -f1) +sed -i -- "${CEPH_DEV_LINE}s@osd-devices: /srv@osd-devices: $CEPH_DISKS@" $SRCBUNDLE +sed -i -- "s@osd-devices: /srv@osd-devices: $CEPH_DISKS_CONTROLLERS@" $SRCBUNDLE sed -i -r -- "s/^(\s+osd-reformat: )'no'/\1'$CEPH_REFORMAT'/" $SRCBUNDLE ## @@ -77,20 +90,19 @@ echo "------ Deploy with juju ------" echo "Execute: ./deploy.sh -t $HA_MODE -o $OS_RELEASE -s $SDN_CONTROLLER -l $POD_NAME" ./deploy.sh -t $HA_MODE -o $OS_RELEASE -s $SDN_CONTROLLER -l $POD_NAME +RES=$? +if [ $RES != 0 ]; then + echo "Deploy FAILED" + exit $RES +fi ## ## Set Admin RC ## - +JOID_ADMIN_OPENRC=$LAB_CONFIG/admin-openrc echo "------ Create OpenRC file [$JOID_ADMIN_OPENRC] ------" KEYSTONE=$(cat bundles.yaml |shyaml get-value openstack-phase2.services.keystone.options.vip) -# create the folder if needed -JOID_ADMIN_OPENRC_FOLDER=$(echo $JOID_ADMIN_OPENRC | perl -pe "s|^(.*/).*?$|\1|") -if [ ! -d "$JOID_ADMIN_OPENRC_FOLDER" ]; then - mkdir -p $JOID_ADMIN_OPENRC_FOLDER -fi - # export the openrc file cat << EOF > $JOID_ADMIN_OPENRC export OS_USERNAME=admin @@ -104,14 +116,14 @@ EOF ## Backup local juju env ## -if [ -d "$JOID_LOCAL_CONFIG_FOLDER" ]; then - echo "------ Backup Juju environment ------" - cp environments.yaml $JOID_LOCAL_CONFIG_FOLDER/ -fi +echo "------ Backup Juju environment ------" +cp environments.yaml $LAB_CONFIG/ ## ## Basic test to return a realistic result to jenkins ## + +echo "------ Do basic test ------" source $JOID_ADMIN_OPENRC curl -i -sw '%{http_code}' -H "Content-Type: application/json" -d " { \"auth\": { @@ -119,18 +131,18 @@ curl -i -sw '%{http_code}' -H "Content-Type: application/json" -d " \"methods\": [\"password\"], \"password\": { \"user\": { - \"name\": \"$OS_TENANT_NAME\", + \"name\": \"admin\", \"domain\": { \"id\": \"default\" }, - \"password\": \"$OS_PASSWORD\" + \"password\": \"$OS_ADMIN_PASSWORD\" } } } } -}" http://$KEYSTONE:5000/v3/auth/tokens |grep "HTTP/1.1 20" 2>&1 >/dev/null; echo $?; +}" http://$KEYSTONE:5000/v3/auth/tokens |grep "HTTP/1.1 20" 2>&1 >/dev/null; RES=$? if [ $RES == 0 ]; then echo "Deploy SUCCESS" else - echo "Deploy FAILED" + echo "Deploy FAILED to auth to openstack" fi exit $RES diff --git a/jjb/opnfv/installer-params.yml b/jjb/opnfv/installer-params.yml index 3e5c0ffac..b8d729796 100644 --- a/jjb/opnfv/installer-params.yml +++ b/jjb/opnfv/installer-params.yml @@ -101,3 +101,23 @@ name: EXTERNAL_NETWORK default: 'net04_ext' description: 'external network for test' + - string: + name: CEPH_DISKS + default: '/srv' + description: "Disks to use by ceph by default (space separated list)" + - string: + name: CEPH_DISKS_CONTROLLERS + default: '' + description: "Disks to use by ceph by controllers (empty if same as CEPH_DISKS)" + - string: + name: LAB_CONFIG + default: "$HOME/joid_config" + description: "Local lab config and Openstack openrc location" + - string: + name: CEPH_REFORMAT + default: 'false' + description: "Format or not disk before using ceph [true/false] (must be done the first time)" + - string: + name: MAAS_REINSTALL + default: 'false' + description: "Reinstall MAAS and Bootstrap before deploy [true/false]" diff --git a/jjb/opnfv/slave-params.yml b/jjb/opnfv/slave-params.yml index 4e169a83e..8c860329a 100644 --- a/jjb/opnfv/slave-params.yml +++ b/jjb/opnfv/slave-params.yml @@ -146,6 +146,10 @@ name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT description: 'Git URL to use on this Jenkins Slave' + - string: + name: CEPH_DISKS + default: /srv + description: "Disks to use by ceph (comma separated list)" - parameter: name: 'intel-pod6-defaults' @@ -165,6 +169,10 @@ name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT description: 'Git URL to use on this Jenkins Slave' + - string: + name: CEPH_DISKS + default: /srv + description: "Disks to use by ceph (comma separated list)" - parameter: name: 'intel-pod8-defaults' @@ -359,10 +367,13 @@ default: https://gerrit.opnfv.org/gerrit/$PROJECT description: 'Git URL to use on this Jenkins Slave' - string: - name: LAB_CONFIG - default: "/home/opnfv/repos/functest" - description: "Openstack credentials on the dev lab" - + name: CEPH_DISKS + default: /dev/sdb /dev/sdc + description: "Disks to use by ceph by default (space separated list)" + - string: + name: CEPH_DISKS_CONTROLLERS + default: /dev/sdb + description: "Disks to use by ceph on controler nodes (space separated list)" - parameter: name: 'orange-test1-defaults' diff --git a/jjb/qtip/qtip.yml b/jjb/qtip/qtip.yml index fac9c333c..f211763af 100644 --- a/jjb/qtip/qtip.yml +++ b/jjb/qtip/qtip.yml @@ -5,14 +5,17 @@ jobs: - 'qtip-verify-{stream}' - - 'qtip-dhrystone-serial-{pod}' - - 'qtip-ssl-parallel-{pod}' + - 'qtip-{installer_type}-{pod}-daily-{stream}' pod: - - dell-build: + - dell-us-testing-bm-1: node: 'dell-us-testing-bm-1' installer_type: 'fuel' installer_ip: '10.20.0.2' + - dell-us-deploying-bm-3: + node: 'dell-us-deploying-bm-3' + installer_type: 'fuel' + installer_ip: '10.20.0.2' # only master branch is enabled at the moment to keep no of jobs sane stream: @@ -66,7 +69,7 @@ echo "Nothing to verify!" - job-template: - name: 'qtip-dhrystone-serial-{pod}' + name: 'qtip-{installer_type}-{pod}-daily-{stream}' disabled: false @@ -84,41 +87,9 @@ default: '{installer_ip}' description: "Installer IP" - 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: master - - builders: - - 'qtip-fetch-os-cred' - - 'qtip-dhrystone-serial' - - triggers: - - timed: '0 20 * * *' - -- job-template: - name: 'qtip-ssl-parallel-{pod}' - - disabled: false - - 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: "IP address of the installer" + name: NODE_NAME + default: '{node}' + description: "Name of the POD" - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT @@ -131,49 +102,78 @@ branch: master builders: - - 'qtip-fetch-os-cred' - - 'qtip-ssl-parallel' + - 'qtip-cleanup' + - 'qtip-set-env' + - 'qtip-run-suite' triggers: - - timed: '0 0,11,18 * * *' + - timed: '0 0,13,15,20 * * *' + ########################### #biuilder macros ########################### - builder: - name: qtip-dhrystone-serial - + name: qtip-set-env builders: - shell: | - #! /bin/bash - if [[ ! -f $WORKSPACE/opnfv-stack.sh ]]; then - echo "Unable to access file $WO:qRKSPACE/opnfv-openrc.sh" - exit 1 + #!/bin/bash + echo "Qtip: Start Docker and prepare environment" + envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}" + suite="TEST_CASE=all" + docker pull opnfv/qtip:latest + + cmd=" docker run -id -e $envs -e $suite opnfv/qtip:latest /bin/bash" + echo "Qtip: Running docker run command: ${cmd}" + ${cmd} + docker ps -a + container_id=$(docker ps | grep 'opnfv/qtip:latest' | awk '{print $1}' | head -1) + if [ $(docker ps | grep 'opnfv/qtip' | wc -l) == 0 ]; then + echo "The container opnfv/qtip with ID=${container_id} has not been properly started. Exiting..." + exit 1 fi - source $WORKSPACE/opnfv-stack.sh - cd $WORKSPACE - echo "Running QTIP dhrystone with First Test case" - python qtip.py -s compute -b dhrystone_serial.yaml - - builder: - name: qtip-ssl-parallel + name: qtip-run-suite + builders: + - shell: | + #! /bin/bash + QTIP_REPO=/home/opnfv/repos/qtip + docker exec -t ${container_id} $QTIP_REPO/docker/run_qtip.sh + +- builder: + name: qtip-cleanup builders: - shell: | - #!/bin/bash - if [[ ! -f $WORKSPACE/opnfv-stack.sh ]]; then - echo "Unable to access file $WORKSPACE/opnfv-openrc.sh" - exit 1 - fi - source $WORKSPACE/opnfv-stack.sh - cd $WORKSPACE - echo "Running QTIP dhrystone with Second Test case" - python qtip.py -s compute -b ssl_parallel.yaml + #! /bin/bash + + echo "Cleaning up QTIP docker containers/images..." + # Remove previous running containers if exist + if [[ ! -z $(docker ps -a | grep opnfv/qtip) ]]; then + echo "Removing existing opnfv/qtip containers..." + running_containers= $(docker ps | grep opnfv/qtip | awk '{print $1}') + docker stop ${running_containers} + all_containers= $(docker ps -a | grep opnfv/qtip | awk '{print $1}') + docker rm ${all_containers} + fi + + # Remove existing images if exist + if [[ ! -z $(docker images | grep opnfv/qtip) ]]; then + echo "Docker images to remove:" + docker images | head -1 && docker images | grep opnfv/qtip + image_tags=($(docker images | grep opnfv/qtip | awk '{print $2}')) + for tag in "${image_tags[@]}"; do + echo "Removing docker image opnfv/qtip:$tag..." + docker rmi opnfv/qtip:$tag + done + fi - builder: name: qtip-fetch-os-cred builders: - shell: | + + echo $HOME echo $WORKSPACE cd $WORKSPACE diff --git a/jjb/yardstick/yardstick-ci-jobs.yml b/jjb/yardstick/yardstick-ci-jobs.yml index ef26ed50e..87485c44f 100644 --- a/jjb/yardstick/yardstick-ci-jobs.yml +++ b/jjb/yardstick/yardstick-ci-jobs.yml @@ -50,6 +50,9 @@ - zte-build-1: installer: fuel <<: *master + - orange-pod2: + installer: joid + <<: *master #-------------------------------- loop: - daily @@ -223,3 +226,10 @@ default: '' description: 'Arguments to use in order to choose the backend DB' +- parameter: + name: 'yardstick-params-orange-pod2' + parameters: + - string: + name: YARDSTICK_DB_BACKEND + default: '' + description: 'Arguments to use in order to choose the backend DB' diff --git a/utils/test/result_collection_api/dashboard/dashboard_utils.py b/utils/test/result_collection_api/dashboard/dashboard_utils.py index 06c90acf5..dccfe4f99 100644 --- a/utils/test/result_collection_api/dashboard/dashboard_utils.py +++ b/utils/test/result_collection_api/dashboard/dashboard_utils.py @@ -18,6 +18,12 @@ import os import re from functest2Dashboard import format_functest_for_dashboard, \ check_functest_case_exist +from yardstick2Dashboard import format_yardstick_for_dashboard, \ + check_yardstick_case_exist +from vsperf2Dashboard import format_vsperf_for_dashboard, \ + check_vsperf_case_exist +from bottlenecks2Dashboard import format_bottlenecks_for_dashboard, \ + check_bottlenecks_case_exist # any project test project wishing to provide dashboard ready values # must include at least 2 methods |