diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/coding-checks.sh | 9 | ||||
-rw-r--r-- | tools/cover.sh | 23 | ||||
-rwxr-xr-x | tools/kube-setup-one-node.sh | 44 | ||||
-rwxr-xr-x | tools/run_tests.sh | 27 | ||||
-rwxr-xr-x | tools/virt_ci_rampup.sh | 45 |
5 files changed, 121 insertions, 27 deletions
diff --git a/tools/coding-checks.sh b/tools/coding-checks.sh index 4ee909988..615f2c3de 100644 --- a/tools/coding-checks.sh +++ b/tools/coding-checks.sh @@ -28,6 +28,7 @@ process_options () { run_pylint () { local target="${scriptargs:-all}" + local output_format="" if [ "$target" = "all" ]; then files="ansible api tests yardstick" @@ -37,11 +38,15 @@ run_pylint () { *) echo "$target is an unrecognized basecommit"; exit 1;; esac fi - + # make Jenkins output parseable because Jenkins doesn't handle color + # enventually we should use the Jenkins Pylint plugin or other tools + if [ -n "${BRANCH:-}" ] ; then + output_format="--output-format=parseable" + fi echo "Running pylint..." echo "You can speed this up by running it on 'HEAD~[0-9]' (e.g. HEAD~0, this change only)..." if [ -n "${files}" ]; then - pylint --rcfile=.pylintrc ${files} + pylint --rcfile=.pylintrc ${output_format} ${files} else echo "No python changes in this commit, pylint check not required." exit 0 diff --git a/tools/cover.sh b/tools/cover.sh index 780a85a22..4e54a64b7 100644 --- a/tools/cover.sh +++ b/tools/cover.sh @@ -42,17 +42,15 @@ run_coverage_test() { git checkout HEAD^ baseline_report=$(mktemp -t yardstick_coverageXXXXXXX) - ls -l .testrepository - # workaround 'db type could not be determined' bug - # https://bugs.launchpad.net/testrepository/+bug/1229445 - rm -rf .testrepository find . -type f -name "*.pyc" -delete + coverage erase + + coverage run -p -m unittest discover ./yardstick/tests/unit + coverage combine - #python setup.py testr --coverage --testr-args="" - python setup.py testr --coverage --slowest --testr-args="$*" - testr failing coverage report > ${baseline_report} + coverage erase # debug awk tail -1 ${baseline_report} @@ -69,17 +67,14 @@ run_coverage_test() { # Generate and save coverage report current_report=$(mktemp -t yardstick_coverageXXXXXXX) - ls -l .testrepository - # workaround 'db type could not be determined' bug - # https://bugs.launchpad.net/testrepository/+bug/1229445 - rm -rf .testrepository find . -type f -name "*.pyc" -delete - #python setup.py testr --coverage --testr-args="" - python setup.py testr --coverage --slowest --testr-args="$*" - testr failing + coverage run -p -m unittest discover ./yardstick/tests/unit + coverage combine + coverage report > ${current_report} + coverage erase rm -rf cover-$PY_VER coverage html -d cover-$PY_VER diff --git a/tools/kube-setup-one-node.sh b/tools/kube-setup-one-node.sh new file mode 100755 index 000000000..180f11b46 --- /dev/null +++ b/tools/kube-setup-one-node.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +# Copyright (c) 2018-2019 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +proxy_vars=(http_proxy https_proxy ftp_proxy no_proxy) +# get proxy environment values from /etc/environment if not set +for proxy_var in ${proxy_vars[@]} +do + env_proxy=$(sed -ne "s/^$proxy_var=[\"\']\(.*\)[\"\']/\1/p" /etc/environment) + if [[ -z ${!proxy_var} ]] && [[ ! -z ${env_proxy} ]]; then + export ${proxy_var}=${env_proxy} + fi +done +# add proxy configuration into proxy file +add_extra_env=false +echo "proxy_env:" > /tmp/proxy.yml +for proxy_var in ${proxy_vars[@]} +do + if [[ ! -z ${!proxy_var} ]]; then + echo " ${proxy_var}: ${!proxy_var}" >> /tmp/proxy.yml + add_extra_env=true + fi +done +# add extra arguments file if needed +if ${add_extra_env}; then + extra_args="${extra_args} -e @/tmp/proxy.yml " +fi + +ANSIBLE_SCRIPTS="${0%/*}/../ansible" + +cd ${ANSIBLE_SCRIPTS} && \ +ansible-playbook \ + ${extra_args} -i kube-inventory.ini deploy_kube.yml diff --git a/tools/run_tests.sh b/tools/run_tests.sh index f253327e5..40b21cab9 100755 --- a/tools/run_tests.sh +++ b/tools/run_tests.sh @@ -28,9 +28,9 @@ run_tests() { echo "Running unittest ... " if [ $FILE_OPTION == "f" ]; then - python -m unittest discover -v -s tests/unit > $logfile 2>&1 + python -m unittest discover -v -s yardstick/tests/unit > $logfile 2>&1 else - python -m unittest discover -v -s tests/unit + python -m unittest discover -v -s yardstick/tests/unit fi if [ $? -ne 0 ]; then @@ -53,7 +53,7 @@ run_coverage() { run_functional_test() { mkdir -p .testrepository - python -m subunit.run discover tests/functional > .testrepository/subunit.log + python -m subunit.run discover yardstick/tests/functional > .testrepository/subunit.log subunit2pyunit < .testrepository/subunit.log EXIT_CODE=$? @@ -66,16 +66,21 @@ run_functional_test() { fi } -if [[ $opts =~ "--unit" ]]; then - run_tests -fi +# get file types of the last change on git +file_types=$(git diff-tree -r --name-only HEAD~1 HEAD | awk -F[/] '{print $NF}' | awk -F[.] 'NF>1 {print $NF}' | uniq) -if [[ $opts =~ "--coverage" ]]; then - run_coverage -fi +if [[ $file_types =~ "py" ]]; then + if [[ $opts =~ "--unit" ]]; then + run_tests + fi -if [[ $opts =~ "--functional" ]]; then - run_functional_test + if [[ $opts =~ "--coverage" ]]; then + run_coverage + fi + + if [[ $opts =~ "--functional" ]]; then + run_functional_test + fi fi if [[ -z $opts ]]; then diff --git a/tools/virt_ci_rampup.sh b/tools/virt_ci_rampup.sh new file mode 100755 index 000000000..aaf162cf7 --- /dev/null +++ b/tools/virt_ci_rampup.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +# Copyright (c) 2018 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +env_http_proxy=$(sed -ne "s/^http_proxy=[\"\']\(.*\)[\"\']/\1/p" /etc/environment) +if [[ -z ${http_proxy} ]] && [[ ! -z ${env_http_proxy} ]]; then + export http_proxy=${env_http_proxy} +fi +env_https_proxy=$(sed -ne "s/^https_proxy=[\"\']\(.*\)[\"\']/\1/p" /etc/environment) +if [[ -z ${https_proxy} ]] && [[ ! -z ${env_https_proxy} ]]; then + export https_proxy=${env_https_proxy} +fi +env_ftp_proxy=$(sed -ne "s/^ftp_proxy=[\"\']\(.*\)[\"\']/\1/p" /etc/environment) +if [[ -z ${ftp_proxy} ]] && [[ ! -z ${env_ftp_proxy} ]]; then + export ftp_proxy=${env_ftp_proxy} +fi +if [[ ! -z ${http_proxy} ]] || [[ ! -z ${https_proxy} ]]; then + export no_proxy="${no_proxy}" + extra_args="${extra_args} -e @/tmp/proxy.yml " + cat <<EOF > /tmp/proxy.yml +--- +proxy_env: + http_proxy: ${http_proxy} + https_proxy: ${https_proxy} + ftp_proxy: ${ftp_proxy} + no_proxy: ${no_proxy} +EOF +fi +ANSIBLE_SCRIPTS="${0%/*}/../ansible" + +cd ${ANSIBLE_SCRIPTS} && \ +sudo -EH ansible-playbook \ + -e RS_FILE='../etc/infra/infra_deploy_two.yaml' -e CLEAN_UP=False ${extra_args} \ + -i inventory.ini infra_deploy.yml |