[tox] minversion = 1.6 skipsdist = True envlist = docs,pep8,bashate,ansible-syntax,ansible-lint [testenv] usedevelop = True install_command = pip install -U {opts} {packages} setenv = VIRTUAL_ENV={envdir} deps = -r{toxinidir}/dev-requirements.txt commands = /usr/bin/find . -type f -name "*.pyc" -delete ansible-galaxy install \ --role-file=ansible-role-requirements.yml \ --ignore-errors \ --force [testenv:docs] commands = python setup.py build_sphinx # environment used by the -infra templated docs job [testenv:venv] deps = -r{toxinidir}/dev-requirements.txt commands = {posargs} # Run hacking/flake8 check for all python files [testenv:pep8] deps = flake8 whitelist_externals = bash commands = bash -c "grep -Irl \ -e '!/usr/bin/env python' \ -e '!/bin/python' \ -e '!/usr/bin/python' \ --exclude-dir '.*' \ --exclude-dir 'doc' \ --exclude-dir '*.egg' \ --exclude-dir '*.egg-info' \ --exclude 'tox.ini' \ --exclude '*.sh' \ {toxinidir} | xargs flake8 --verbose" [flake8] # Ignores the following rules due to how ansible modules work in general # F403 'from ansible.module_utils.basic import *' used; unable to detect undefined names # H303 No wildcard (*) import. ignore=F403,H303 # Run bashate check for all bash scripts # Ignores the following rules: # E003: Indent not multiple of 4 (we prefer to use multiples of 2) [testenv:bashate] deps = bashate whitelist_externals = bash commands = bash -c "grep -Irl \ -e '!/usr/bin/env bash' \ -e '!/bin/bash' \ -e '!/bin/sh' \ --exclude-dir '.*' \ --exclude-dir '*.egg' \ --exclude-dir '*.egg-info' \ --exclude 'tox.ini' \ {toxinidir} | xargs bashate --verbose --ignore=E003" [testenv:ansible-syntax] changedir = tests commands = ansible-galaxy install \ --role-file=ansible-role-requirements.yml \ --ignore-errors \ --force ansible-playbook -i inventory \ --syntax-check \ --list-tasks \ -e "rolename={toxinidir}" \ test.yml [testenv:ansible-lint] changedir = tests commands = ansible-galaxy install \ --role-file=ansible-role-requirements.yml \ --ignore-errors \ --force ansible-lint test.yml [testenv:ansible-functional] changedir = tests commands = ansible-galaxy install \ --role-file=ansible-role-requirements.yml \ --ignore-errors \ --force ansible-playbook -i inventory \ -e "rolename={toxinidir}" \ test.yml