mirror of
https://github.com/certbot/certbot.git
synced 2025-08-08 04:02:10 +03:00
Switch oldest tests to Python 3 (#8590)
Fixes https://github.com/certbot/certbot/issues/8580. With this PR, it should now be possible to run the oldest tests natively on Linux, at least when using an older version of Python 3, which hasn't been possible in a long time. Unfortunately, this isn't possible on macOS which I opened https://github.com/certbot/certbot/issues/8589 to track. You can see the full test suite running with these changes at https://dev.azure.com/certbot/certbot/_build/results?buildId=3283&view=results. I took the version numbers for the packages I updated by searching for the oldest version of the dependency I think we should try and support based on the updated comments at the top of `oldest_constraints.txt`. While kind of annoying, I think it'd be a good idea for the reviewer to double check that I didn't make a mistake with the versions I used here. To find these versions, I used https://packages.ubuntu.com, https://packages.debian.org, and a CentOS 7 Docker image with EPEL 7 installed. For the latter, not all packages are available in Python 3 yet (which is something Certbot's EPEL package maintainers are working on) and in that case I didn't worry about the system because I think they can/will package the newest version available. If they end up hitting any issues here when trying to package Certbot on Python 3, we can always work with them to fix it. * remove py27 from oldest name * update min cryptography version * remove run_oldest_tests.sh * upgrade setuptools and pyopenssl * update cffi, pyparsing, and idna * expand oldest_constraints comments * clarify oldest comment * update min configobj version * update min parsedatetime version * quote tox env name * use Python 3.6 in the oldest tests * use Python 3.6 for oldest integration tests * properly pin asn1crypto * update min six version * set basepython for a nicer error message * remove outdated python 2 oldest constraints
This commit is contained in:
@@ -22,15 +22,19 @@ jobs:
|
|||||||
TOXENV: py37
|
TOXENV: py37
|
||||||
CERTBOT_NO_PIN: 1
|
CERTBOT_NO_PIN: 1
|
||||||
linux-boulder-v1-integration-certbot-oldest:
|
linux-boulder-v1-integration-certbot-oldest:
|
||||||
|
PYTHON_VERSION: 3.6
|
||||||
TOXENV: integration-certbot-oldest
|
TOXENV: integration-certbot-oldest
|
||||||
ACME_SERVER: boulder-v1
|
ACME_SERVER: boulder-v1
|
||||||
linux-boulder-v2-integration-certbot-oldest:
|
linux-boulder-v2-integration-certbot-oldest:
|
||||||
|
PYTHON_VERSION: 3.6
|
||||||
TOXENV: integration-certbot-oldest
|
TOXENV: integration-certbot-oldest
|
||||||
ACME_SERVER: boulder-v2
|
ACME_SERVER: boulder-v2
|
||||||
linux-boulder-v1-integration-nginx-oldest:
|
linux-boulder-v1-integration-nginx-oldest:
|
||||||
|
PYTHON_VERSION: 3.6
|
||||||
TOXENV: integration-nginx-oldest
|
TOXENV: integration-nginx-oldest
|
||||||
ACME_SERVER: boulder-v1
|
ACME_SERVER: boulder-v1
|
||||||
linux-boulder-v2-integration-nginx-oldest:
|
linux-boulder-v2-integration-nginx-oldest:
|
||||||
|
PYTHON_VERSION: 3.6
|
||||||
TOXENV: integration-nginx-oldest
|
TOXENV: integration-nginx-oldest
|
||||||
ACME_SERVER: boulder-v2
|
ACME_SERVER: boulder-v2
|
||||||
linux-boulder-v1-py27-integration:
|
linux-boulder-v1-py27-integration:
|
||||||
|
@@ -26,10 +26,12 @@ jobs:
|
|||||||
TOXENV: integration-certbot
|
TOXENV: integration-certbot
|
||||||
linux-oldest-tests-1:
|
linux-oldest-tests-1:
|
||||||
IMAGE_NAME: ubuntu-18.04
|
IMAGE_NAME: ubuntu-18.04
|
||||||
TOXENV: py27-{acme,apache,apache-v2,certbot}-oldest
|
PYTHON_VERSION: 3.6
|
||||||
|
TOXENV: '{acme,apache,apache-v2,certbot}-oldest'
|
||||||
linux-oldest-tests-2:
|
linux-oldest-tests-2:
|
||||||
IMAGE_NAME: ubuntu-18.04
|
IMAGE_NAME: ubuntu-18.04
|
||||||
TOXENV: py27-{dns,nginx}-oldest
|
PYTHON_VERSION: 3.6
|
||||||
|
TOXENV: '{dns,nginx}-oldest'
|
||||||
linux-py27:
|
linux-py27:
|
||||||
IMAGE_NAME: ubuntu-18.04
|
IMAGE_NAME: ubuntu-18.04
|
||||||
PYTHON_VERSION: 2.7
|
PYTHON_VERSION: 2.7
|
||||||
|
@@ -45,11 +45,7 @@ steps:
|
|||||||
export TARGET_BRANCH="`echo "${BUILD_SOURCEBRANCH}" | sed -E 's!refs/(heads|tags)/!!g'`"
|
export TARGET_BRANCH="`echo "${BUILD_SOURCEBRANCH}" | sed -E 's!refs/(heads|tags)/!!g'`"
|
||||||
[ -z "${SYSTEM_PULLREQUEST_TARGETBRANCH}" ] || export TARGET_BRANCH="${SYSTEM_PULLREQUEST_TARGETBRANCH}"
|
[ -z "${SYSTEM_PULLREQUEST_TARGETBRANCH}" ] || export TARGET_BRANCH="${SYSTEM_PULLREQUEST_TARGETBRANCH}"
|
||||||
env
|
env
|
||||||
if [[ "${TOXENV}" == *"oldest"* ]]; then
|
|
||||||
tools/run_oldest_tests.sh
|
|
||||||
else
|
|
||||||
python -m tox
|
python -m tox
|
||||||
fi
|
|
||||||
env:
|
env:
|
||||||
AWS_ACCESS_KEY_ID: $(AWS_ACCESS_KEY_ID)
|
AWS_ACCESS_KEY_ID: $(AWS_ACCESS_KEY_ID)
|
||||||
AWS_SECRET_ACCESS_KEY: $(AWS_SECRET_ACCESS_KEY)
|
AWS_SECRET_ACCESS_KEY: $(AWS_SECRET_ACCESS_KEY)
|
||||||
|
@@ -9,21 +9,18 @@ version = '1.12.0.dev0'
|
|||||||
|
|
||||||
# Please update tox.ini when modifying dependency version requirements
|
# Please update tox.ini when modifying dependency version requirements
|
||||||
install_requires = [
|
install_requires = [
|
||||||
# load_pem_private/public_key (>=0.6)
|
'cryptography>=2.1.4',
|
||||||
# rsa_recover_prime_factors (>=0.8)
|
|
||||||
'cryptography>=1.2.3',
|
|
||||||
# formerly known as acme.jose:
|
# formerly known as acme.jose:
|
||||||
# 1.1.0+ is required to avoid the warnings described at
|
# 1.1.0+ is required to avoid the warnings described at
|
||||||
# https://github.com/certbot/josepy/issues/13.
|
# https://github.com/certbot/josepy/issues/13.
|
||||||
'josepy>=1.1.0',
|
'josepy>=1.1.0',
|
||||||
# Connection.set_tlsext_host_name (>=0.13) + matching Xenial requirements (>=0.15.1)
|
'PyOpenSSL>=17.3.0',
|
||||||
'PyOpenSSL>=0.15.1',
|
|
||||||
'pyrfc3339',
|
'pyrfc3339',
|
||||||
'pytz',
|
'pytz',
|
||||||
'requests[security]>=2.6.0', # security extras added in 2.4.1
|
'requests[security]>=2.6.0', # security extras added in 2.4.1
|
||||||
'requests-toolbelt>=0.3.0',
|
'requests-toolbelt>=0.3.0',
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'six>=1.9.0', # needed for python_2_unicode_compatible
|
'six>=1.11.0',
|
||||||
]
|
]
|
||||||
|
|
||||||
setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
|
setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
|
||||||
|
@@ -13,7 +13,7 @@ install_requires = [
|
|||||||
'acme>=0.29.0',
|
'acme>=0.29.0',
|
||||||
'certbot>=1.6.0',
|
'certbot>=1.6.0',
|
||||||
'python-augeas',
|
'python-augeas',
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.component',
|
'zope.component',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
@@ -12,7 +12,7 @@ version = '1.12.0.dev0'
|
|||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'cloudflare>=1.5.1',
|
'cloudflare>=1.5.1',
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -12,7 +12,7 @@ version = '1.12.0.dev0'
|
|||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'dns-lexicon>=2.2.1', # Support for >1 TXT record per name
|
'dns-lexicon>=2.2.1', # Support for >1 TXT record per name
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -12,8 +12,8 @@ version = '1.12.0.dev0'
|
|||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'python-digitalocean>=1.11',
|
'python-digitalocean>=1.11',
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'six',
|
'six>=1.11.0',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -11,7 +11,7 @@ version = '1.12.0.dev0'
|
|||||||
# Remember to update local-oldest-requirements.txt when changing the minimum
|
# Remember to update local-oldest-requirements.txt when changing the minimum
|
||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -12,7 +12,7 @@ version = '1.12.0.dev0'
|
|||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'dns-lexicon>=2.2.1', # Support for >1 TXT record per name
|
'dns-lexicon>=2.2.1', # Support for >1 TXT record per name
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -11,7 +11,7 @@ version = '1.12.0.dev0'
|
|||||||
# Please update tox.ini when modifying dependency version requirements
|
# Please update tox.ini when modifying dependency version requirements
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'dns-lexicon>=2.1.22',
|
'dns-lexicon>=2.1.22',
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -13,7 +13,7 @@ version = '1.12.0.dev0'
|
|||||||
install_requires = [
|
install_requires = [
|
||||||
'google-api-python-client>=1.5.5',
|
'google-api-python-client>=1.5.5',
|
||||||
'oauth2client>=4.0',
|
'oauth2client>=4.0',
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
# already a dependency of google-api-python-client, but added for consistency
|
# already a dependency of google-api-python-client, but added for consistency
|
||||||
'httplib2'
|
'httplib2'
|
||||||
|
@@ -11,7 +11,7 @@ version = '1.12.0.dev0'
|
|||||||
# Please update tox.ini when modifying dependency version requirements
|
# Please update tox.ini when modifying dependency version requirements
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'dns-lexicon>=2.2.3',
|
'dns-lexicon>=2.2.3',
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -12,7 +12,7 @@ version = '1.12.0.dev0'
|
|||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'dns-lexicon>=2.2.1', # Support for >1 TXT record per name
|
'dns-lexicon>=2.2.1', # Support for >1 TXT record per name
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -12,7 +12,7 @@ version = '1.12.0.dev0'
|
|||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'dns-lexicon>=2.2.1', # Support for >1 TXT record per name
|
'dns-lexicon>=2.2.1', # Support for >1 TXT record per name
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -12,7 +12,7 @@ version = '1.12.0.dev0'
|
|||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'dns-lexicon>=2.7.14', # Correct proxy use on OVH provider
|
'dns-lexicon>=2.7.14', # Correct proxy use on OVH provider
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -12,7 +12,7 @@ version = '1.12.0.dev0'
|
|||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'dnspython',
|
'dnspython',
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -12,7 +12,7 @@ version = '1.12.0.dev0'
|
|||||||
# acme/certbot version.
|
# acme/certbot version.
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'boto3',
|
'boto3',
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -11,7 +11,7 @@ version = '1.12.0.dev0'
|
|||||||
# Please update tox.ini when modifying dependency version requirements
|
# Please update tox.ini when modifying dependency version requirements
|
||||||
install_requires = [
|
install_requires = [
|
||||||
'dns-lexicon>=2.1.23',
|
'dns-lexicon>=2.1.23',
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -12,9 +12,9 @@ version = '1.12.0.dev0'
|
|||||||
install_requires = [
|
install_requires = [
|
||||||
'acme>=1.4.0',
|
'acme>=1.4.0',
|
||||||
'certbot>=1.6.0',
|
'certbot>=1.6.0',
|
||||||
'PyOpenSSL',
|
'PyOpenSSL>=17.3.0',
|
||||||
'pyparsing>=1.5.5', # Python3 support
|
'pyparsing>=2.2.0',
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -40,16 +40,16 @@ install_requires = [
|
|||||||
# saying so here causes a runtime error against our temporary fork of 0.9.3
|
# saying so here causes a runtime error against our temporary fork of 0.9.3
|
||||||
# in which we added 2.6 support (see #2243), so we relax the requirement.
|
# in which we added 2.6 support (see #2243), so we relax the requirement.
|
||||||
'ConfigArgParse>=0.9.3',
|
'ConfigArgParse>=0.9.3',
|
||||||
'configobj',
|
'configobj>=5.0.6',
|
||||||
'cryptography>=1.2.3', # load_pem_x509_certificate
|
'cryptography>=2.1.4',
|
||||||
'distro>=1.0.1',
|
'distro>=1.0.1',
|
||||||
# 1.1.0+ is required to avoid the warnings described at
|
# 1.1.0+ is required to avoid the warnings described at
|
||||||
# https://github.com/certbot/josepy/issues/13.
|
# https://github.com/certbot/josepy/issues/13.
|
||||||
'josepy>=1.1.0',
|
'josepy>=1.1.0',
|
||||||
'parsedatetime>=1.3', # Calendar.parseDT
|
'parsedatetime>=2.4',
|
||||||
'pyrfc3339',
|
'pyrfc3339',
|
||||||
'pytz',
|
'pytz',
|
||||||
'setuptools',
|
'setuptools>=39.0.1',
|
||||||
'zope.component',
|
'zope.component',
|
||||||
'zope.interface',
|
'zope.interface',
|
||||||
]
|
]
|
||||||
|
@@ -1,75 +1,79 @@
|
|||||||
# This file contains the oldest versions of our dependencies we say we require
|
# This file contains the oldest versions of our dependencies we're trying to
|
||||||
# in our packages or versions we need to support to maintain compatibility with
|
# support. Usually these version numbers are taken from the packages of our
|
||||||
# the versions included in the various Linux distros where we are packaged.
|
# dependencies available in popular LTS Linux distros. Keeping compatibility
|
||||||
|
# with those versions makes it much easier for OS maintainers to update their
|
||||||
|
# Certbot packages.
|
||||||
|
#
|
||||||
|
# When updating these dependencies, we should try to only update them to the
|
||||||
|
# oldest version of the package that is found in a non-EOL'd version of
|
||||||
|
# CentOS, Debian, or Ubuntu that has Certbot packages in their OS repositories
|
||||||
|
# using a version of Python we support. If the distro is EOL'd or using a
|
||||||
|
# version of Python we don't support, it can be ignored.
|
||||||
|
|
||||||
# CentOS/RHEL 7 EPEL constraints
|
# CentOS/RHEL 7 EPEL constraints
|
||||||
cffi==1.6.0
|
# Some of these constraints may be stricter than necessary because they
|
||||||
|
# initially referred to the Python 2 packages in CentOS/RHEL 7 with EPEL.
|
||||||
|
cffi==1.9.1
|
||||||
chardet==2.2.1
|
chardet==2.2.1
|
||||||
configobj==4.7.2
|
|
||||||
ipaddress==1.0.16
|
ipaddress==1.0.16
|
||||||
mock==1.0.1
|
mock==1.0.1
|
||||||
ndg-httpsclient==0.3.2
|
ndg-httpsclient==0.3.2
|
||||||
ply==3.4
|
ply==3.4
|
||||||
|
pyOpenSSL==17.3.0
|
||||||
pyasn1==0.1.9
|
pyasn1==0.1.9
|
||||||
pycparser==2.14
|
pycparser==2.14
|
||||||
pyRFC3339==1.0
|
pyRFC3339==1.0
|
||||||
python-augeas==0.5.0
|
python-augeas==0.5.0
|
||||||
oauth2client==4.0.0
|
oauth2client==4.0.0
|
||||||
six==1.9.0
|
|
||||||
# setuptools 0.9.8 is the actual version packaged, but some other dependencies
|
|
||||||
# in this file require setuptools>=1.0 and there are no relevant changes for us
|
|
||||||
# between these versions.
|
|
||||||
setuptools==1.0.0
|
|
||||||
urllib3==1.10.2
|
urllib3==1.10.2
|
||||||
zope.component==4.1.0
|
zope.component==4.1.0
|
||||||
zope.event==4.0.3
|
zope.event==4.0.3
|
||||||
zope.interface==4.0.5
|
zope.interface==4.0.5
|
||||||
|
|
||||||
# Debian Jessie Backports constraints
|
# Debian Jessie Backports constraints
|
||||||
# Debian Jessie has reached end of life. However:
|
# Debian Jessie has reached end of life so these dependencies can probably be
|
||||||
# When it becomes necessary to upgrade any of these dependencies, you should only update them to the oldest version of the package found
|
# updated as needed or desired.
|
||||||
# in a non-EOL'd version of CentOS, Debian, or Ubuntu that has Certbot packages in their OS repositories.
|
|
||||||
colorama==0.3.2
|
colorama==0.3.2
|
||||||
enum34==1.0.3
|
enum34==1.0.3
|
||||||
html5lib==0.999
|
html5lib==0.999
|
||||||
idna==2.0
|
|
||||||
pbr==1.8.0
|
pbr==1.8.0
|
||||||
pytz==2012rc0
|
pytz==2012rc0
|
||||||
|
|
||||||
# Debian Buster constraints
|
# Debian Buster constraints
|
||||||
google-api-python-client==1.5.5
|
google-api-python-client==1.5.5
|
||||||
|
pyparsing==2.2.0
|
||||||
|
|
||||||
# Our setup.py constraints
|
# Our setup.py constraints
|
||||||
apacheconfig==0.3.2
|
apacheconfig==0.3.2
|
||||||
cloudflare==1.5.1
|
cloudflare==1.5.1
|
||||||
cryptography==1.2.3
|
|
||||||
parsedatetime==1.3
|
|
||||||
pyparsing==1.5.5
|
|
||||||
python-digitalocean==1.11
|
python-digitalocean==1.11
|
||||||
requests[security]==2.6.0
|
requests[security]==2.6.0
|
||||||
|
|
||||||
# Ubuntu Xenial constraints
|
# Ubuntu Xenial constraints
|
||||||
|
# Ubuntu Xenial only has versions of Python which we do not support available
|
||||||
|
# so these dependencies can probably be updated as needed or desired.
|
||||||
ConfigArgParse==0.10.0
|
ConfigArgParse==0.10.0
|
||||||
pyOpenSSL==0.15.1
|
|
||||||
funcsigs==0.4
|
funcsigs==0.4
|
||||||
zope.hookable==4.0.4
|
zope.hookable==4.0.4
|
||||||
|
|
||||||
# Ubuntu Bionic constraints.
|
# Ubuntu Bionic constraints.
|
||||||
|
cryptography==2.1.4
|
||||||
distro==1.0.1
|
distro==1.0.1
|
||||||
# Lexicon oldest constraint is overridden appropriately on relevant DNS provider plugins
|
# Lexicon oldest constraint is overridden appropriately on relevant DNS provider plugins
|
||||||
# using their local-oldest-requirements.txt
|
# using their local-oldest-requirements.txt
|
||||||
dns-lexicon==2.2.1
|
dns-lexicon==2.2.1
|
||||||
httplib2==0.9.2
|
httplib2==0.9.2
|
||||||
|
idna==2.6
|
||||||
|
setuptools==39.0.1
|
||||||
|
six==1.11.0
|
||||||
|
|
||||||
|
# Ubuntu Focal constraints
|
||||||
|
asn1crypto==0.24.0
|
||||||
|
configobj==5.0.6
|
||||||
|
parsedatetime==2.4
|
||||||
|
|
||||||
# Plugin constraints
|
# Plugin constraints
|
||||||
# These aren't necessarily the oldest versions we need to support
|
# These aren't necessarily the oldest versions we need to support
|
||||||
# Tracking at https://github.com/certbot/certbot/issues/6473
|
# Tracking at https://github.com/certbot/certbot/issues/6473
|
||||||
boto3==1.4.7
|
boto3==1.4.7
|
||||||
botocore==1.7.41
|
botocore==1.7.41
|
||||||
|
|
||||||
# Old certbot[dev] constraints
|
|
||||||
# Old versions of certbot[dev] required ipdb and our normally pinned version of
|
|
||||||
# ipython which ipdb depends on doesn't support Python 2 so we pin an older
|
|
||||||
# version here to keep tests working while we have Python 2 support.
|
|
||||||
ipython==5.8.0
|
|
||||||
prompt-toolkit==1.0.18
|
|
||||||
|
@@ -1,37 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|
||||||
|
|
||||||
pushd "${DIR}/../"
|
|
||||||
|
|
||||||
function cleanup() {
|
|
||||||
rm -f "${DOCKERFILE}"
|
|
||||||
popd
|
|
||||||
}
|
|
||||||
|
|
||||||
trap cleanup EXIT
|
|
||||||
|
|
||||||
DOCKERFILE=$(mktemp /tmp/Dockerfile.XXXXXX)
|
|
||||||
|
|
||||||
cat << "EOF" >> "${DOCKERFILE}"
|
|
||||||
FROM ubuntu:16.04
|
|
||||||
COPY letsencrypt-auto-source/pieces/dependency-requirements.txt /tmp/letsencrypt-auto-source/pieces/
|
|
||||||
COPY tools/ /tmp/tools/
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y --no-install-recommends \
|
|
||||||
python-dev python-pip python-setuptools \
|
|
||||||
gcc libaugeas0 libssl-dev libffi-dev \
|
|
||||||
git ca-certificates nginx-light openssl curl \
|
|
||||||
&& curl -fsSL https://get.docker.com | bash /dev/stdin \
|
|
||||||
&& python /tmp/tools/pipstrap.py \
|
|
||||||
&& python /tmp/tools/pip_install.py tox \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
EOF
|
|
||||||
|
|
||||||
docker build -f "${DOCKERFILE}" -t oldest-worker .
|
|
||||||
docker run --rm --network=host -w "${PWD}" \
|
|
||||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
||||||
-v "${PWD}:${PWD}" -v /tmp:/tmp \
|
|
||||||
-e TOXENV -e ACME_SERVER -e PYTEST_ADDOPTS \
|
|
||||||
oldest-worker python -m tox
|
|
50
tox.ini
50
tox.ini
@@ -77,49 +77,65 @@ setenv =
|
|||||||
PYTEST_ADDOPTS = {env:PYTEST_ADDOPTS:--numprocesses auto}
|
PYTEST_ADDOPTS = {env:PYTEST_ADDOPTS:--numprocesses auto}
|
||||||
PYTHONHASHSEED = 0
|
PYTHONHASHSEED = 0
|
||||||
|
|
||||||
[testenv:py27-oldest]
|
[testenv:oldest]
|
||||||
|
# Setting basepython allows the tests to fail fast if that version of Python
|
||||||
|
# isn't available instead of potentially trying to use a newer version of
|
||||||
|
# Python which is unlikely to work.
|
||||||
|
basepython = python3.6
|
||||||
commands =
|
commands =
|
||||||
{[testenv]commands}
|
{[testenv]commands}
|
||||||
setenv =
|
setenv =
|
||||||
{[testenv]setenv}
|
{[testenv]setenv}
|
||||||
CERTBOT_OLDEST=1
|
CERTBOT_OLDEST=1
|
||||||
|
|
||||||
[testenv:py27-acme-oldest]
|
[testenv:acme-oldest]
|
||||||
|
basepython =
|
||||||
|
{[testenv:oldest]basepython}
|
||||||
commands =
|
commands =
|
||||||
{[base]install_and_test} acme[dev]
|
{[base]install_and_test} acme[dev]
|
||||||
setenv =
|
setenv =
|
||||||
{[testenv:py27-oldest]setenv}
|
{[testenv:oldest]setenv}
|
||||||
|
|
||||||
[testenv:py27-apache-oldest]
|
[testenv:apache-oldest]
|
||||||
|
basepython =
|
||||||
|
{[testenv:oldest]basepython}
|
||||||
commands =
|
commands =
|
||||||
{[base]install_and_test} certbot-apache
|
{[base]install_and_test} certbot-apache
|
||||||
setenv =
|
setenv =
|
||||||
{[testenv:py27-oldest]setenv}
|
{[testenv:oldest]setenv}
|
||||||
|
|
||||||
[testenv:py27-apache-v2-oldest]
|
[testenv:apache-v2-oldest]
|
||||||
|
basepython =
|
||||||
|
{[testenv:oldest]basepython}
|
||||||
commands =
|
commands =
|
||||||
{[base]install_and_test} certbot-apache[dev]
|
{[base]install_and_test} certbot-apache[dev]
|
||||||
setenv =
|
setenv =
|
||||||
{[testenv:py27-oldest]setenv}
|
{[testenv:oldest]setenv}
|
||||||
|
|
||||||
[testenv:py27-certbot-oldest]
|
[testenv:certbot-oldest]
|
||||||
|
basepython =
|
||||||
|
{[testenv:oldest]basepython}
|
||||||
commands =
|
commands =
|
||||||
{[base]install_and_test} certbot[dev]
|
{[base]install_and_test} certbot[dev]
|
||||||
setenv =
|
setenv =
|
||||||
{[testenv:py27-oldest]setenv}
|
{[testenv:oldest]setenv}
|
||||||
|
|
||||||
[testenv:py27-dns-oldest]
|
[testenv:dns-oldest]
|
||||||
|
basepython =
|
||||||
|
{[testenv:oldest]basepython}
|
||||||
commands =
|
commands =
|
||||||
{[base]install_and_test} {[base]dns_packages}
|
{[base]install_and_test} {[base]dns_packages}
|
||||||
setenv =
|
setenv =
|
||||||
{[testenv:py27-oldest]setenv}
|
{[testenv:oldest]setenv}
|
||||||
|
|
||||||
[testenv:py27-nginx-oldest]
|
[testenv:nginx-oldest]
|
||||||
|
basepython =
|
||||||
|
{[testenv:oldest]basepython}
|
||||||
commands =
|
commands =
|
||||||
{[base]install_and_test} certbot-nginx
|
{[base]install_and_test} certbot-nginx
|
||||||
python tests/lock_test.py
|
python tests/lock_test.py
|
||||||
setenv =
|
setenv =
|
||||||
{[testenv:py27-oldest]setenv}
|
{[testenv:oldest]setenv}
|
||||||
|
|
||||||
[testenv:lint]
|
[testenv:lint]
|
||||||
basepython = python3
|
basepython = python3
|
||||||
@@ -238,22 +254,26 @@ commands =
|
|||||||
passenv = DOCKER_*
|
passenv = DOCKER_*
|
||||||
|
|
||||||
[testenv:integration-certbot-oldest]
|
[testenv:integration-certbot-oldest]
|
||||||
|
basepython =
|
||||||
|
{[testenv:oldest]basepython}
|
||||||
commands =
|
commands =
|
||||||
{[base]pip_install} certbot
|
{[base]pip_install} certbot
|
||||||
{[base]pip_install} certbot-ci
|
{[base]pip_install} certbot-ci
|
||||||
pytest certbot-ci/certbot_integration_tests/certbot_tests \
|
pytest certbot-ci/certbot_integration_tests/certbot_tests \
|
||||||
--acme-server={env:ACME_SERVER:pebble}
|
--acme-server={env:ACME_SERVER:pebble}
|
||||||
passenv = DOCKER_*
|
passenv = DOCKER_*
|
||||||
setenv = {[testenv:py27-oldest]setenv}
|
setenv = {[testenv:oldest]setenv}
|
||||||
|
|
||||||
[testenv:integration-nginx-oldest]
|
[testenv:integration-nginx-oldest]
|
||||||
|
basepython =
|
||||||
|
{[testenv:oldest]basepython}
|
||||||
commands =
|
commands =
|
||||||
{[base]pip_install} certbot-nginx
|
{[base]pip_install} certbot-nginx
|
||||||
{[base]pip_install} certbot-ci
|
{[base]pip_install} certbot-ci
|
||||||
pytest certbot-ci/certbot_integration_tests/nginx_tests \
|
pytest certbot-ci/certbot_integration_tests/nginx_tests \
|
||||||
--acme-server={env:ACME_SERVER:pebble}
|
--acme-server={env:ACME_SERVER:pebble}
|
||||||
passenv = DOCKER_*
|
passenv = DOCKER_*
|
||||||
setenv = {[testenv:py27-oldest]setenv}
|
setenv = {[testenv:oldest]setenv}
|
||||||
|
|
||||||
[testenv:test-farm-tests-base]
|
[testenv:test-farm-tests-base]
|
||||||
changedir = tests/letstest
|
changedir = tests/letstest
|
||||||
|
Reference in New Issue
Block a user