diff --git a/Jenkinsfile b/Jenkinsfile index bc1cf2ead3d9ea46aa55c5d1c813b7939071b75b..57e457ec22c6c18aac27a138882f83e8c5022012 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,25 +1,38 @@ +/* +Jenkins pipeline for testing an Ansible role. +Required software on the agent: +- Python 2.7. +- Tox. +- Vagrant. +- Virtualbox. +*/ pipeline { agent any + environment { + VBOX_HWVIRTEX = off + } stages { stage('install') { steps { - sh 'git submodule update --init' - sh 'virtualenv example' - sh '. example/bin/activate && pip install -r tests/requirements.txt' - sh '. example/bin/activate && ansible-galaxy install git+file://$(pwd),$(git rev-parse --abbrev-ref HEAD) -p .molecule/roles' - sh '. example/bin/activate && molecule dependency' + sh 'git submodule update --init --recursive' } } stage('test') { steps { - sh '. example/bin/activate && pre-commit run --all-files' - // sh '. example/bin/activate && molecule test --platform all' + parallel ( + 'pre-commit': { + sh 'tox -e pre-commit' + } + 'molecule': { + sh 'tox' + } + ) } } } post { success { - sh '. example/bin/activate && ansible-galaxy import -v' + sh 'tox -e import' } } } diff --git a/tox.ini b/tox.ini index fca46228eacd9240de0cdf608077968eb1271893..c80d480b6f557c37a14f6ec977a2900494e95d51 100644 --- a/tox.ini +++ b/tox.ini @@ -24,3 +24,8 @@ 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 + +[testenv:import] +envdir = {toxinidir}/.tox/molecule +deps = -rtests/requirements.txt +commands = ansible-galaxy import -v