Skip to content

Commit

Permalink
Support more Ansible versions
Browse files Browse the repository at this point in the history
Support running the molecule tests against more versions of Ansible.
By typing

  LSR_ANSIBLE_DEP=<ansible> LSR_MSCENARIO=<scenario> tox -e molecule

one can run molecule inside tox with <ansible> version installed
under <scenario> scenario. For example

  LSR_ANSIBLE_DEP='ansible==2.7.*' LSR_MSCENARIO=foo tox -e molecule

will run molecule under scenario 'foo' and the recent Ansible 2.7
installed. `tox -e molecule` run molecule under default scenario
with the latest Ansible (from pypi) installed.

Travis runs molecule tests for Ansible 2.6, 2.7, and 2.8 installed
and under default scenario (can be overriden by user in config.sh).

Additional changes: Remove useless comment from custom.sh.
  • Loading branch information
i386x committed Feb 3, 2020
1 parent d7905c1 commit 4b05c20
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 10 deletions.
4 changes: 4 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
---
dist: xenial
language: python
env:
global:
- LSR_ANSIBLES='ansible==2.6.* ansible==2.7.* ansible==2.8.*'
- LSR_MSCENARIOS='default'
matrix:
include:
- python: 2.6
Expand Down
5 changes: 5 additions & 0 deletions .travis/config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@
#
# - LSR_EXTRA_PACKAGES
#
# * .travis/runtox:
#
# - LSR_ANSIBLES
# - LSR_MSCENARIOS
#
# Environment variables that not start with LSR_* but have influence on CI
# process:
#
Expand Down
1 change: 0 additions & 1 deletion .travis/custom.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ ME=$(basename $0)
SCRIPTDIR=$(readlink -f $(dirname $0))
TOPDIR=$(readlink -f ${SCRIPTDIR}/..)

# Include library and config:
. ${SCRIPTDIR}/utils.sh
. ${SCRIPTDIR}/config.sh

Expand Down
45 changes: 37 additions & 8 deletions .travis/runtox
Original file line number Diff line number Diff line change
@@ -1,16 +1,45 @@
#!/bin/bash
# SPDX-License-Identifier: MIT

set -ex
# Run tox. Additionally, if LSR_MSCENARIOS is defined, run `tox -e molecule`
# for every scenario from LSR_MSCENARIOS and for every Ansible version from
# LSR_ANSIBLES.
#
# LSR_MSCENARIOS is a space separated list of molecule scenarios.
# LSR_ANSIBLES is a space separated list of Ansible package names with versions
# in pip format, i.e 'ansible ansible==2.6 ansible==2.7 ansible=2.8'.
#
# LSR_MSCENARIOS and LSR_ANSIBLES can be set in .travis/config.sh or as
# environment variables.

SCRIPTDIR=$(dirname $0)
CONFIG=${SCRIPTDIR}/config.sh
ME=$(basename $0)
SCRIPTDIR=$(readlink -f $(dirname $0))
BANNERSIZE=90

if [[ -f ${CONFIG} ]]; then
. ${CONFIG}
. ${SCRIPTDIR}/utils.sh
. ${SCRIPTDIR}/config.sh

lsr_banner "tox" ${BANNERSIZE}
(set -x; tox); error_code=$?

# Exit prematurely if the environment is not suitable for running
# Molecule tests.
if ! lsr_venv_python_matches_system_python; then
exit $error_code
fi

tox "$@"
for X in ${LSR_MSCENARIOS}; do
LSR_MSCENARIO=${X} tox -e molecule
for ansible_dependency in ${LSR_ANSIBLES}; do
for molecule_scenario in ${LSR_MSCENARIOS}; do
lsr_banner \
"[${ansible_dependency}] tox -e molecule -- -s ${molecule_scenario}" \
${BANNERSIZE}
(
set -x
LSR_ANSIBLE_DEP="${ansible_dependency}" \
LSR_MSCENARIO=${molecule_scenario} \
tox -e molecule
) || error_code=$?
done
done

exit $error_code
3 changes: 2 additions & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ commands =

[molecule_common]
deps =
{env:LSR_ANSIBLE_DEP:ansible}
docker
molecule
selinux
Expand Down Expand Up @@ -263,7 +264,7 @@ max-line-length = 88
python =
2.6: py26,custom
2.7: py27,flake8,pylint,custom
3.5: coveralls,molecule,custom
3.5: coveralls,custom
3.6: py36,black,custom
3.7: py37,custom
3.8: py38,custom

0 comments on commit 4b05c20

Please sign in to comment.