diff --git a/.gitignore b/.gitignore index e1cf205905d93c46016f27f9e4df6a1da11cfd86..966ef052e8cb1dfe9ab17eff54ee874231f5dbb0 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ __pycache__ .vagrant/ *.log *.retry +.tox diff --git a/.travis.yml b/.travis.yml index 3d5ac3473f5e72fb4667a7dcb58304b3ae70b605..cf2d8cdeb597c91ea008ff87a318c100c0684f6a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,14 +8,15 @@ env: global: - VBOX_MEMORY=2048 matrix: - - platform: openbsd60 - - &openbsd59 platform=openbsd59 - - platform: xenial - - platform: trusty - - platform: precise - - &stretch platform=stretch - - &jessie platform=jessie - - platform: wheezy + - TOXENV=pre-commit + - TOXENV=openbsd60 + - &openbsd59 TOXENV=openbsd59 + - TOXENV=xenial + - TOXENV=trusty + - TOXENV=precise + - &stretch TOXENV=stretch + - &jessie TOXENV=jessie + - TOXENV=wheezy matrix: fast_finish: True allow_failures: @@ -33,13 +34,10 @@ install: - sudo apt-get install -y linux-headers-$(uname -r) virtualbox - wget https://releases.hashicorp.com/vagrant/1.9.1/vagrant_1.9.1_x86_64.deb - sudo dpkg -i vagrant_1.9.1_x86_64.deb - - pip install -r tests/requirements.txt | cat - - ansible-galaxy install git+file://$(pwd),$(git rev-parse --abbrev-ref HEAD) -p .molecule/roles - - molecule dependency + - pip install tox-travis | cat script: - - pre-commit run --all-files - - travis_wait 45 molecule test --platform $platform + - travis_wait 45 tox notifications: webhooks: https://galaxy.ansible.com/api/v1/notifications/ diff --git a/README.rst b/README.rst index 9336623a7cbf4ae9089bf443fba4aeb4404d48ae..d50fb09c8eb2981fc3817e27116a87b161505707 100644 --- a/README.rst +++ b/README.rst @@ -31,21 +31,9 @@ See :code:`tests/playbook.yml`. Testing ------- -Testing requires Python 2.7, Vagrant and Virtualbox. Install the Python -dependencies, dependent roles and roles required for testing: - -.. code:: shell - - pip install -r tests/requirements.txt - ansible-galaxy install git+file://$(pwd),$(git rev-parse --abbrev-ref HEAD) -p .molecule/roles - molecule dependency - -To run the full test suite: - -.. code:: shell - - pre-commit run --all-files - molecule test --platform all +Testing requires Python 2.7, Tox, Vagrant and Virtualbox. To test simply run +:code:`tox`. `Pre-commit <http://pre-commit.com/>`_ is also setup for this +project. License ------- diff --git a/molecule.yml b/molecule.yml index eb1bc5a972d02b4cfef2d38d47accdf26ac56931..da87f7ab5478d1327d485feece04da28bbc98e11 100644 --- a/molecule.yml +++ b/molecule.yml @@ -5,6 +5,10 @@ ansible: diff: True config_file: ../ansible.cfg +molecule: + ignore_paths: + - .tox + dependency: name: galaxy requirements_file: tests/requirements.yml diff --git a/tests/requirements.txt b/tests/requirements.txt index 57c94d957f72c9d89286e5275edda7bf2932707b..c0ffb8cc7e76a09533f8b216ed2374b29e94fdff 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -2,7 +2,6 @@ ansible==2.3.0.0 testinfra==1.5.5 molecule==1.23.2 ansible-lint==3.4.12 -pre-commit==0.13.6 python-vagrant==0.5.14 netaddr==0.7.19 passlib==1.7.1 diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000000000000000000000000000000000000..112a2649757d2e1ecf413c1e12b47f1bdfd031ce --- /dev/null +++ b/tox.ini @@ -0,0 +1,27 @@ +[tox] +skip_install = True +skipsdist = True +envlist = openbsd60,openbsd59,xenial,trusty,precise,stretch,jessie,wheezy + +[testenv] +envdir = {toxinidir}/.tox +deps = -rtests/requirements.txt +passenv = HOME VBOX* ANSIBLE_* +whitelist_externals = + sh +commands = + sh -c "ansible-galaxy install git+file://$(pwd),$(git rev-parse --abbrev-ref HEAD) -p .molecule/roles" + molecule test --platform {envname} + +[testenv:pre-commit] +envdir = {toxinidir}/.tox +deps = + -rtests/requirements.txt + pre-commit +passenv = HOME VBOX* ANSIBLE_* +whitelist_externals = + sh +commands = + sh -c "ansible-galaxy install git+file://$(pwd),$(git rev-parse --abbrev-ref HEAD) -p .molecule/roles" + molecule dependency + pre-commit run --all-files