diff options
author | zhihui wu <wu.zhihui1@zte.com.cn> | 2017-08-22 17:29:59 +0800 |
---|---|---|
committer | zhihui wu <wu.zhihui1@zte.com.cn> | 2017-08-22 18:01:08 +0800 |
commit | 582f77439f8ec2ff247c0d3843a0ecf6da2efa70 (patch) | |
tree | ce40031748c187ca784f931dad52067aea80e3ad | |
parent | 17209935c79e52f763aa41fd5da8a3c0f847e994 (diff) |
Setup CI job for storage benchmarking on apex
The script "launch_containers_by_testsuites.sh" helps to
launch containers according to TEST_SUITE. e.g. compute or
storage.
JIRA: QTIP-265
Change-Id: Ib7210d68600cc092e3322ddaab4cdf7913428647
Signed-off-by: zhihui wu <wu.zhihui1@zte.com.cn>
-rwxr-xr-x | tests/ci/launch_containers_by_testsuite.sh | 70 | ||||
-rwxr-xr-x | tests/ci/periodic.sh | 60 | ||||
-rw-r--r-- | tests/ci/run_compute_qpi.sh | 3 |
3 files changed, 85 insertions, 48 deletions
diff --git a/tests/ci/launch_containers_by_testsuite.sh b/tests/ci/launch_containers_by_testsuite.sh new file mode 100755 index 00000000..ff94a02d --- /dev/null +++ b/tests/ci/launch_containers_by_testsuite.sh @@ -0,0 +1,70 @@ +#! /bin/bash +############################################################################## +# Copyright (c) 2017 ZTE and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +if [[ -e $ENV_FILE ]];then + rm $ENV_FILE +fi + +echo "INSTALLER_TYPE=$INSTALLER_TYPE" >> $ENV_FILE +echo "INSTALLER_IP=$INSTALLER_IP" >> $ENV_FILE +echo "NODE_NAME=$NODE_NAME" >> $ENV_FILE +echo "SCENARIO=$DEPLOY_SCENARIO" >> $ENV_FILE +echo "TESTAPI_URL=$TESTAPI_URL" >> $ENV_FILE + +if [[ "$TEST_SUITE" == 'compute' ]];then + + echo "--------------------------------------------------------" + cat $ENV_FILE + echo "--------------------------------------------------------" + + if [[ ! -z $(docker ps -a | grep "opnfv/qtip:$DOCKER_TAG") ]]; then + echo "Removing existing opnfv/qtip containers..." + container_id=$(docker ps -a | grep "opnfv/qtip:$DOCKER_TAG" | awk '{print $1}') + docker stop $container_id + docker rm $container_id + fi + + if [[ $(docker images opnfv/qtip:${DOCKER_TAG} | wc -l) -gt 1 ]]; then + echo "Removing docker image opnfv/qtip:$DOCKER_TAG..." + docker rmi opnfv/qtip:$DOCKER_TAG + fi + + echo "Qtip: Pulling docker image: opnfv/qtip:${DOCKER_TAG}" + docker pull opnfv/qtip:$DOCKER_TAG >/dev/null + + envs="--env-file $ENV_FILE" + vols="" + if [[ "$INSTALLER_TYPE" == "apex" ]];then vols="-v /root/.ssh:/root/.ssh" + fi + + cmd="sudo docker run -id ${envs} ${vols} opnfv/qtip:${DOCKER_TAG} /bin/bash" + echo "Qtip: Running docker command: ${cmd}" + ${cmd} + +elif [[ "$TEST_SUITE" == 'storage' ]];then + script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + + git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng $WORKSPACE/releng + $WORKSPACE/releng/utils/fetch_os_creds.sh -i $INSTALLER_TYPE -a $INSTALLER_IP -d $WORKSPACE/openrc + + grep "export" $WORKSPACE/openrc | sed "s/export //" >> $ENV_FILE + echo "DOCKER_TAG=$DOCKER_TAG" >> $ENV_FILE + + echo "--------------------ENV_FILE----------------------------" + cat $ENV_FILE + echo "--------------------------------------------------------" + + source $script_dir/storperf/containers.sh + cd $script_dir/storperf + clean_containers + launch_containers +else + echo "Sorry, not support test suite $TEST_SUITE!" + exit 1 +fi diff --git a/tests/ci/periodic.sh b/tests/ci/periodic.sh index 3f5fe784..f208cdc6 100755 --- a/tests/ci/periodic.sh +++ b/tests/ci/periodic.sh @@ -7,7 +7,11 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## set -e +set -x +export DOCKER_TAG=${DOCKER_TAG:-latest} +export ENV_FILE=$WORKSPACE/env_file +QTIP_REPO=/home/opnfv/repos/qtip case $INSTALLER_TYPE in apex) @@ -15,56 +19,18 @@ case $INSTALLER_TYPE in ;; esac -cat << EOF > $WORKSPACE/env_file -INSTALLER_TYPE=$INSTALLER_TYPE -INSTALLER_IP=$INSTALLER_IP -POD_NAME=$NODE_NAME -SCENARIO=$DEPLOY_SCENARIO -TESTAPI_URL=$TESTAPI_URL -EOF - -echo "--------------------------------------------------------" -cat $WORKSPACE/env_file -echo "--------------------------------------------------------" - -# Remove previous running containers if exist -if [[ ! -z $(docker ps -a | grep "opnfv/qtip:$DOCKER_TAG") ]]; then - echo "Removing existing opnfv/qtip containers..." - # workaround: sometimes it throws an error when stopping qtip container. - # To make sure ci job unblocked, remove qtip container by force without stopping it. - docker rm -f $(docker ps -a | grep "opnfv/qtip:$DOCKER_TAG" | awk '{print $1}') -fi - -# Remove existing images if exist -if [[ $(docker images opnfv/qtip:${DOCKER_TAG} | wc -l) -gt 1 ]]; then - echo "Removing docker image opnfv/qtip:$DOCKER_TAG..." - docker rmi -f opnfv/qtip:$DOCKER_TAG -fi - -echo "Qtip: Pulling docker image: opnfv/qtip:${DOCKER_TAG}" -docker pull opnfv/qtip:$DOCKER_TAG >/dev/null - -envs="--env-file $WORKSPACE/env_file" -vols="-v /root/.ssh:/root/.ssh" - -cmd="sudo docker run -id ${envs} ${vols} opnfv/qtip:${DOCKER_TAG} /bin/bash" -echo "Qtip: Running docker command: ${cmd}" -${cmd} +script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source $script_dir/launch_containers_by_testsuite.sh container_id=$(docker ps | grep "opnfv/qtip:${DOCKER_TAG}" | 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..." + +if [[ -z "$container_id" ]]; then + echo "The container opnfv/qtip has not been properly started. Exiting..." exit 1 +else + echo "The container ID is: ${container_id}" + docker exec -t ${container_id} bash -c "bash ${QTIP_REPO}/tests/ci/run_${TEST_SUITE}_qpi.sh" fi -echo "The container ID is: ${container_id}" -QTIP_REPO=/home/opnfv/repos/qtip - -case $TEST_SUITE in - compute) - docker exec -t ${container_id} bash -c "bash ${QTIP_REPO}/tests/ci/run_compute_qpi.sh" - ;; -esac - -echo "Qtip done!" +echo "${TEST_SUITE} QPI done!" exit 0
\ No newline at end of file diff --git a/tests/ci/run_compute_qpi.sh b/tests/ci/run_compute_qpi.sh index 09762b15..7b3987fa 100644 --- a/tests/ci/run_compute_qpi.sh +++ b/tests/ci/run_compute_qpi.sh @@ -7,6 +7,7 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## set -e +set -x usage(){ echo "usage: $0 -t <installer_type> -i <installer_ip> -p <pod_name> -s <scenario> -r <report_url>" >&2 @@ -46,7 +47,7 @@ done #set vars from env if not provided by user as options installer_type=${installer_type:-$INSTALLER_TYPE} installer_ip=${installer_ip:-$INSTALLER_IP} -pod_name=${pod_name:-$POD_NAME} +pod_name=${pod_name:-$NODE_NAME} scenario=${scenario:-$SCENARIO} testapi_url=${testapi_url:-$TESTAPI_URL} |