Merge branch 'master' into docstrings

This commit is contained in:
Alex Willmer 2021-01-24 02:38:23 +00:00 committed by GitHub
commit f5b3fab04c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 80 additions and 32 deletions

View File

@ -17,7 +17,7 @@ batches = [
]
batches.extend(
['docker pull %s' % (ci_lib.image_for_distro(distro),)]
['docker pull %s' % (ci_lib.image_for_distro(distro),), 'sleep 1']
for distro in ci_lib.DISTROS
)

View File

@ -66,8 +66,6 @@ with ci_lib.Fold('job_setup'):
run("sudo apt-get update")
run("sudo apt-get install -y sshpass")
run("bash -c 'sudo ln -vfs /usr/lib/python2.7/plat-x86_64-linux-gnu/_sysconfigdata_nd.py /usr/lib/python2.7 || true'")
run("bash -c 'sudo ln -vfs /usr/lib/python2.7/plat-x86_64-linux-gnu/_sysconfigdata_nd.py $VIRTUAL_ENV/lib/python2.7 || true'")
with ci_lib.Fold('ansible'):
playbook = os.environ.get('PLAYBOOK', 'all.yml')

View File

@ -254,14 +254,16 @@ def get_docker_hostname():
def image_for_distro(distro):
"""Return the docker image for running `distro` in a container.
"""Return the container image name or path for a test distro name.
The returned value is suitable for use with `docker pull`.
>>> image_for_distro('centos5')
'mitogen/centos5-test'
'public.ecr.aws/n5z0e8q9/centos5-test'
>>> image_for_distro('centos5-something_custom')
'mitogen/centos5-test'
'public.ecr.aws/n5z0e8q9/centos5-test'
"""
return 'mitogen/%s-test' % (distro.partition('-')[0],)
return 'public.ecr.aws/n5z0e8q9/%s-test' % (distro.partition('-')[0],)
def make_containers(name_prefix='', port_offset=0):

View File

@ -86,12 +86,4 @@ if need_to_fix_psycopg2:
batches.append(venv_steps)
if ci_lib.have_docker():
batches.extend(
['docker pull %s' % (ci_lib.image_for_distro(distro),)]
for distro in ci_lib.DISTROS
)
ci_lib.run_batches(batches)

View File

@ -51,10 +51,14 @@
shell: whoami > /tmp/delegate_to.yml.txt
delegate_to: localhost
become: true
tags:
- requires_local_sudo
- name: "delegate_to, sudo"
assert:
that: "lookup('file', '/tmp/delegate_to.yml.txt') == 'root'"
tags:
- requires_local_sudo
- name: "delegate_to, sudo"
file:
@ -62,6 +66,8 @@
state: absent
delegate_to: localhost
become: true
tags:
- requires_local_sudo
#
@ -71,10 +77,14 @@
shell: whoami > /tmp/delegate_to.yml.txt
connection: local
become: true
tags:
- requires_local_sudo
- name: "connection:local, sudo"
assert:
that: "lookup('file', '/tmp/delegate_to.yml.txt') == 'root'"
tags:
- requires_local_sudo
- name: "connection:local, sudo"
file:
@ -82,3 +92,5 @@
state: absent
connection: local
become: true
tags:
- requires_local_sudo

View File

@ -15,7 +15,7 @@
content: |
#!/bin/bash
export CUSTOM_INTERPRETER=1
exec python2.7 "$@"
exec python "$@"
- custom_python_detect_environment:
vars:

76
tox.ini
View File

@ -1,44 +1,88 @@
# 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
#
# tox vir'env pip ansible coverage
# ========== ======== ======== ======== ======== ========
# python2.4 1.4 1.8 1.1 ???
# 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 4.5.4
[tox]
envlist =
init,
py26,
py27,
py35,
py36,
py37,
py{27,36,39}-mode_ansible-ansible2.10,
py{27,36,39}-mode_mitogen,
py{27,36,39}-mode_mitogen-distro_centos7,
report,
requires =
tox-factor
[testenv]
usedevelop = True
deps =
-r{toxinidir}/dev_requirements.txt
-r{toxinidir}/tests/ansible/requirements.txt
basepython =
py26: python2.6
py27: python2.7
py36: python3.6
py37: python3.7
py38: python3.8
py39: python3.9
commands_pre =
mode_ansible: {toxinidir}/.ci/ansible_install.py
mode_debops_common: {toxinidir}/.ci/debops_common_install.py
mode_mitogen: {toxinidir}/.ci/mitogen_install.py
commands =
{posargs:bash run_tests}
whitelist_externals =
bash
mode_ansible: {toxinidir}/.ci/ansible_tests.py \
--skip-tags requires_local_sudo
mode_debops_common: {toxinidir}/.ci/debops_common_tests.py
mode_mitogen: {toxinidir}/.ci/mitogen_tests.py
passenv =
HOME
setenv =
NOCOVERAGE_ERASE = 1
NOCOVERAGE_REPORT = 1
ansible2.3: VER=2.3.3.0
ansible2.4: VER=2.4.6.0
ansible2.8: VER=2.8.3
ansible2.9: VER=2.9.6
ansible2.10: VER=2.10.0
distro_centos5: DISTRO=centos5
distro_centos6: DISTRO=centos6
distro_centos7: DISTRO=centos7
distro_debian: DISTRO=debian
distro_debianpy3: DISTRO=debian-py3
distros_centos5: DISTROS=centos5
distros_debian: DISTROS=debian
mode_ansible: MODE=ansible
mode_debops_common: MODE=debops_common
mode_mitogen: MODE=mitogen
strategy_linear: STRATEGY=linear
[testenv:init]
basepython = python3
commands =
coverage erase
deps =
coverage
coverage==4.5.4
[testenv:report]
basepython = python3
commands =
coverage html
echo "coverage report is at file://{toxinidir}/htmlcov/index.html"
deps =
coverage
coverage==4.5.4
whitelist_externals =
echo
[testenv:docs]
basepython = python
basepython = python3
changedir = docs
commands =
sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html