# This file is a local convenience. It is not a substitute for the full CI # suite, and does not cover the full range of Python versions for Mitogen. # I use this on Ubuntu 20.04, with the following additions # # sudo add-apt-repository ppa:deadsnakes/ppa # sudo apt update # sudo apt install python3.5 python3.6 python3.7 python3.9 tox libsasl2-dev libldap2-dev libssl-dev ssh-pass # Last version to support each python version # # Python tox virt'env pip A cntllr A target coverage # ========== ======== ======== ======== ======== ======== ======== # python2.4 1.4 1.8 1.1 2.3? # python2.5 1.6.1 1.9.1 1.3.1 ??? # python2.6 2.9.1 15.2.0 9.0.3 2.6.20 2.13 4.5.4 # python2.7 20.3 2.11 # python3.5 2.11 # python3.6 2.11 # python3.7 2.11 # Ansible Dependency # ================== ====================== # ansible <= 2.9 # ansible == 2.10.* ansible-base ~= 2.10.0 # ansible == 3.* ansible-base ~= 2.10.0 # ansible == 4.* ansible-core ~= 2.11.0 # ansible == 5.* ansible-core ~= 2.12.0 # ansible == 6.* ansible-core ~= 2.13.0 # pip --no-python-version-warning # pip --disable-pip-version-check # TODO distros=-py3 [tox] envlist = init, py{27,36}-mode_ansible-ansible{2.10,3,4}, py{310}-mode_ansible-ansible{2.10,3,4,5,6}, py{27,36,310}-mode_mitogen-distro_centos{6,7,8}, py{27,36,310}-mode_mitogen-distro_debian{9,10,11}, py{27,36,310}-mode_mitogen-distro_ubuntu{1604,1804,2004}, report, [testenv] basepython = py26: python2.6 py27: python2.7 py35: python3.5 py36: python3.6 py37: python3.7 py38: python3.8 py39: python3.9 py310: python3.10 deps = -r{toxinidir}/tests/requirements.txt mode_ansible: -r{toxinidir}/tests/ansible/requirements.txt ansible2.10: ansible==2.10.7 ansible3: ansible==3.4.0 ansible4: ansible==4.10.0 ansible5: ansible==5.8.0 ansible6: ansible==6.0.0 install_command = python -m pip --no-python-version-warning --disable-pip-version-check install {opts} {packages} commands_pre = mode_ansible: {toxinidir}/.ci/ansible_install.py mode_debops_common: {toxinidir}/.ci/debops_common_install.py mode_localhost: {toxinidir}/.ci/localhost_ansible_install.py mode_mitogen: {toxinidir}/.ci/mitogen_install.py commands = mode_ansible: {toxinidir}/.ci/ansible_tests.py mode_debops_common: {toxinidir}/.ci/debops_common_tests.py mode_localhost: {toxinidir}/.ci/localhost_ansible_tests.py mode_mitogen: {toxinidir}/.ci/mitogen_tests.py passenv = ANSIBLE_* AWS_ACCESS_KEY_ID AWS_DEFAULT_REGION AWS_SECRET_ACCESS_KEY HOME setenv = # See also azure-pipelines.yml ANSIBLE_SKIP_TAGS = requires_local_sudo,resource_intensive ANSIBLE_STRATEGY = mitogen_linear NOCOVERAGE_ERASE = 1 NOCOVERAGE_REPORT = 1 # Only applicable to MODE=mitogen distro_centos5: DISTRO=centos5 distro_centos6: DISTRO=centos6 distro_centos7: DISTRO=centos7 distro_centos8: DISTRO=centos8 distro_debian9: DISTRO=debian9 distro_debian10: DISTRO=debian10 distro_debian11: DISTRO=debian11 distro_ubuntu1604: DISTRO=ubuntu1604 distro_ubuntu1804: DISTRO=ubuntu1804 distro_ubuntu2004: DISTRO=ubuntu2004 # Note the plural, only applicable to MODE=ansible # Ansible 6 (ansible-core 2.13) requires Python >= 2.7 or >= 3.5 on targets ansible6: DISTROS=centos7 centos8 debian9 debian10 debian11 ubuntu1604 ubuntu1804 ubuntu2004 distros_centos: DISTROS=centos6 centos7 centos8 distros_centos5: DISTROS=centos5 distros_centos6: DISTROS=centos6 distros_centos7: DISTROS=centos7 distros_centos8: DISTROS=centos8 distros_debian: DISTROS=debian9 debian10 debian11 distros_debian9: DISTROS=debian9 distros_debian10: DISTROS=debian10 distros_debian11: DISTROS=debian11 distros_ubuntu: DISTROS=ubuntu1604 ubuntu1804 ubuntu2004 distros_ubuntu1604: DISTROS=ubuntu1604 distros_ubuntu1804: DISTROS=ubuntu1804 distros_ubuntu2004: DISTROS=ubuntu2004 mode_ansible: MODE=ansible mode_debops_common: MODE=debops_common mode_mitogen: MODE=mitogen strategy_linear: ANSIBLE_STRATEGY=linear whitelist_externals = docker docker-credential-secretservice echo gpg2 pass [testenv:init] basepython = python3 commands = coverage erase deps = coverage==4.5.4 [testenv:report] basepython = python3 commands = coverage html echo "coverage report is at file://{toxinidir}/htmlcov/index.html" deps = coverage==4.5.4 whitelist_externals = echo [testenv:docs] basepython = python3 changedir = docs commands = sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html