145 lines
5.0 KiB
INI
145 lines
5.0 KiB
INI
# This configuration drives both CI and local development.
|
|
# I use this locally on Ubuntu 22.04, with the following additions
|
|
#
|
|
# sudo add-apt-repository ppa:deadsnakes/ppa
|
|
# sudo apt update
|
|
# sudo apt install awscli lib{ldap2,sasl2,ssl}-dev python2.7 python3.{6..11} python-is-python3 sshpass tox
|
|
|
|
# Py tox virtualenv pip A cntrllr A target Jinja2 coverage psutil pytest
|
|
# ==== ======== ========== ======== ========= ========= ========== ======== ======== =========
|
|
# 2.4 <= 1.4 <= 1.8 <= 1.1 2.3? <= 3.7.1 <= 2.1.3
|
|
# 2.5 <= 1.6.1 <= 1.9.1 <= 1.3.1 ??? <= 3.7.1 <= 2.1.3 <= 2.8.7
|
|
# 2.6 <= 2.9.1 <= 15.2.0 <= 9.0.3 <= 2.6.20 <= 2.13 <= 2.10.3 <= 4.5.4 <= 5.9.0 <= 3.2.5
|
|
# 2.7 <= 3.28 <= 20.3? <= 20 <= 2.11 <= 2.11.3 <= 5.6 <= 4.6.11
|
|
# 3.5 <= 3.28 <= 20.15 <= 20 <= 2.11 <= 2.13 <= 2.11.3 <= 5.6 <= 6.1.0
|
|
# 3.6 <= 3.28 <= 20.16 <= 21 <= 2.11 <= 3.0.3 <= 6.2 <= 7.0.1
|
|
# 3.7 <= 2.12
|
|
# 3.8 <= 2.12
|
|
|
|
# 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
|