diff --git a/.zuul.yaml b/.zuul.yaml index cdc63a7c3c..fad4ed0698 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -778,6 +778,7 @@ - tempest-full-test-account-no-admin-py3: voting: false irrelevant-files: *tempest-irrelevant-files + - openstack-tox-bashate gate: jobs: - tempest-slow-py3: diff --git a/tools/format.sh b/tools/format.sh index dec8f1cdbe..ef5cc92e4c 100755 --- a/tools/format.sh +++ b/tools/format.sh @@ -15,7 +15,8 @@ fi # isort is not compatible with the default flake8 (H306), maybe flake8-isort # isort -rc -sl -fss ../tempest ../setup.py -$AUTOPEP8 --exit-code --max-line-length=79 --experimental --in-place -r ../tempest ../setup.py +$AUTOPEP8 --exit-code --max-line-length=79 --experimental --in-place \ + -r ../tempest ../setup.py ERROR=$? if [[ $ERROR -eq 0 ]]; then diff --git a/tools/generate-tempest-plugins-list.sh b/tools/generate-tempest-plugins-list.sh index 6e473b7b79..b6a7c77f3f 100755 --- a/tools/generate-tempest-plugins-list.sh +++ b/tools/generate-tempest-plugins-list.sh @@ -61,7 +61,7 @@ function title_underline { printf " ===\n" } -function print_plugin_table() { +function print_plugin_table { title_underline ${name_col_len} printf "%-3s %-${name_col_len}s %s\n" "SR" "Plugin Name" "URL" title_underline ${name_col_len} diff --git a/tools/tempest-plugin-sanity.sh b/tools/tempest-plugin-sanity.sh index b6523692d2..a087a4ce75 100644 --- a/tools/tempest-plugin-sanity.sh +++ b/tools/tempest-plugin-sanity.sh @@ -47,7 +47,7 @@ PROJECT_LIST="$(python tools/generate-tempest-plugins-list.py)" BLACKLIST="$(python tools/generate-tempest-plugins-list.py blacklist)" # Function to clone project using zuul-cloner or from git -function clone_project() { +function clone_project { if [ -e /usr/zuul-env/bin/zuul-cloner ]; then /usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git \ https://opendev.org \ @@ -61,7 +61,7 @@ function clone_project() { } # function to create virtualenv to perform sanity operation -function prepare_workspace() { +function prepare_workspace { SANITY_DIR=$(pwd) virtualenv -p python3 --clear "$SANITY_DIR"/.venv export TVENV="$SANITY_DIR/tools/with_venv.sh" @@ -72,7 +72,7 @@ function prepare_workspace() { } # Function to install project -function install_project() { +function install_project { "$TVENV" pip install "$SANITY_DIR"/"$1" # Check for test-requirements.txt file in a project then install it. if [ -e "$SANITY_DIR"/"$1"/test-requirements.txt ]; then @@ -81,7 +81,7 @@ function install_project() { } # Function to perform sanity checking on Tempest plugin -function tempest_sanity() { +function tempest_sanity { "$TVENV" tempest init "$SANITY_DIR"/tempest_sanity && \ cd "$SANITY_DIR"/tempest_sanity && \ "$TVENV" tempest list-plugins && \ @@ -100,7 +100,7 @@ function tempest_sanity() { } # Function to run sanity check on each project -function plugin_sanity_check() { +function plugin_sanity_check { prepare_workspace && \ clone_project "$1" && \ install_project "$1" && \ diff --git a/tox.ini b/tox.ini index 8a7a5090dd..21182d8089 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = pep8,py36,py37,py27,pip-check-reqs +envlist = pep8,py36,py37,py27,bashate,pip-check-reqs minversion = 2.3.1 skipsdist = True @@ -303,6 +303,20 @@ commands = -b html releasenotes/source releasenotes/build/html whitelist_externals = rm +[testenv:bashate] +basepython = python3 +# if you want to test out some changes you have made to bashate +# against tempest, just set BASHATE_INSTALL_PATH=/path/... to your +# modified bashate tree +deps = + {env:BASHATE_INSTALL_PATH:bashate} +whitelist_externals = bash +commands = bash -c "find {toxinidir}/tools \ + -not \( -type d -name .?\* -prune \) \ + -type f \ + -name \*.sh \ + -print0 | xargs -0 bashate -v" + [testenv:pip-check-reqs] # Do not install test-requirements as that will pollute the virtualenv for # determining missing packages.