mirror of
https://github.com/ansible-collections/community.docker.git
synced 2026-03-15 11:53:31 +00:00
CI: Run some tests with the latest development versions of Docker SDK for Python, requests, and urllib3 (#902)
* Run some tests with the latest development versions of Docker SDK for Python, requests, and urllib3. * Use LooseVersion instead of StrictVersion to parse urllib3 versions.
This commit is contained in:
parent
165571f5cf
commit
81cabbf697
@ -205,8 +205,8 @@ stages:
|
|||||||
parameters:
|
parameters:
|
||||||
testFormat: devel/{0}
|
testFormat: devel/{0}
|
||||||
targets:
|
targets:
|
||||||
- name: RHEL 9.4 with latest Docker SDK from PyPi
|
- name: RHEL 9.4 with Docker SDK, urllib3, requests from sources
|
||||||
test: rhel/9.4-pypi-latest
|
test: rhel/9.4-dev-latest
|
||||||
groups:
|
groups:
|
||||||
- 1
|
- 1
|
||||||
- 2
|
- 2
|
||||||
@ -222,8 +222,8 @@ stages:
|
|||||||
parameters:
|
parameters:
|
||||||
testFormat: 2.17/{0}
|
testFormat: 2.17/{0}
|
||||||
targets:
|
targets:
|
||||||
- name: RHEL 9.3 with latest Docker SDK from PyPi
|
- name: RHEL 9.3
|
||||||
test: rhel/9.3-pypi-latest
|
test: rhel/9.3
|
||||||
groups:
|
groups:
|
||||||
- 1
|
- 1
|
||||||
- 2
|
- 2
|
||||||
|
|||||||
2
changelogs/fragments/902-loose-version.yml
Normal file
2
changelogs/fragments/902-loose-version.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
bugfixes:
|
||||||
|
- "vendored Docker SDK for Python - use ``LooseVersion`` instead of ``StrictVersion`` to compare urllib3 versions. This is needed for development versions (https://github.com/ansible-collections/community.docker/pull/902)."
|
||||||
@ -15,7 +15,7 @@ __metaclass__ = type
|
|||||||
https://github.com/kennethreitz/requests/pull/799
|
https://github.com/kennethreitz/requests/pull/799
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from ansible_collections.community.docker.plugins.module_utils.version import StrictVersion
|
from ansible_collections.community.docker.plugins.module_utils.version import LooseVersion
|
||||||
|
|
||||||
from .._import_helper import HTTPAdapter, urllib3
|
from .._import_helper import HTTPAdapter, urllib3
|
||||||
from .basehttpadapter import BaseHTTPAdapter
|
from .basehttpadapter import BaseHTTPAdapter
|
||||||
@ -66,4 +66,4 @@ class SSLHTTPAdapter(BaseHTTPAdapter):
|
|||||||
return False
|
return False
|
||||||
if urllib_ver == 'dev':
|
if urllib_ver == 'dev':
|
||||||
return True
|
return True
|
||||||
return StrictVersion(urllib_ver) > StrictVersion('1.5')
|
return LooseVersion(urllib_ver) > LooseVersion('1.5')
|
||||||
|
|||||||
@ -13,3 +13,20 @@
|
|||||||
name: "{{ docker_pip_api_packages + (docker_pip_api_packages_python2 if ansible_facts.python.version.major == 2 else []) }}"
|
name: "{{ docker_pip_api_packages + (docker_pip_api_packages_python2 if ansible_facts.python.version.major == 2 else []) }}"
|
||||||
extra_args: "-c {{ remote_constraints }}"
|
extra_args: "-c {{ remote_constraints }}"
|
||||||
state: present
|
state: present
|
||||||
|
when: not (force_docker_sdk_for_python_dev | default(false))
|
||||||
|
|
||||||
|
- name: Make sure git is installed
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- git
|
||||||
|
state: present
|
||||||
|
when: force_docker_sdk_for_python_dev | default(false)
|
||||||
|
|
||||||
|
- name: Install/upgrade Python requirements from source repositories
|
||||||
|
pip:
|
||||||
|
name:
|
||||||
|
- git+https://github.com/psf/requests
|
||||||
|
- git+https://github.com/urllib3/urllib3
|
||||||
|
extra_args: "-c {{ remote_constraints }}"
|
||||||
|
state: latest
|
||||||
|
when: force_docker_sdk_for_python_dev | default(false)
|
||||||
|
|||||||
@ -8,3 +8,8 @@ docker_py_version: '0.0'
|
|||||||
docker_pip_extra_packages: []
|
docker_pip_extra_packages: []
|
||||||
docker_pip_package: docker
|
docker_pip_package: docker
|
||||||
docker_pip_package_limit: ''
|
docker_pip_package_limit: ''
|
||||||
|
|
||||||
|
docker_pip_git_packages:
|
||||||
|
- git+https://github.com/psf/requests
|
||||||
|
- git+https://github.com/urllib3/urllib3
|
||||||
|
- git+https://github.com/docker/docker-py
|
||||||
|
|||||||
@ -29,11 +29,28 @@
|
|||||||
docker_pip_package_limit: '<4.3.0'
|
docker_pip_package_limit: '<4.3.0'
|
||||||
when: docker_api_version is version('1.39', '<')
|
when: docker_api_version is version('1.39', '<')
|
||||||
|
|
||||||
|
- name: Make sure git is installed
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- git
|
||||||
|
when: force_docker_sdk_for_python_dev | default(false)
|
||||||
|
|
||||||
- name: Install/upgrade Python requirements
|
- name: Install/upgrade Python requirements
|
||||||
pip:
|
pip:
|
||||||
name: "{{ [docker_pip_package ~ docker_pip_package_limit] + docker_pip_extra_packages }}"
|
name: >-
|
||||||
|
{{
|
||||||
|
docker_pip_git_packages
|
||||||
|
if (force_docker_sdk_for_python_dev | default(false)) else
|
||||||
|
([docker_pip_package ~ docker_pip_package_limit] + docker_pip_extra_packages)
|
||||||
|
}}
|
||||||
extra_args: "-c {{ remote_constraints }}"
|
extra_args: "-c {{ remote_constraints }}"
|
||||||
state: "{{ 'latest' if force_docker_sdk_for_python_pypi | default(false) else 'present' }}"
|
state: >-
|
||||||
|
{{
|
||||||
|
'latest' if (
|
||||||
|
(force_docker_sdk_for_python_pypi | default(false)) or
|
||||||
|
(force_docker_sdk_for_python_dev | default(false))
|
||||||
|
) else 'present'
|
||||||
|
}}
|
||||||
|
|
||||||
- name: Check docker-py version
|
- name: Check docker-py version
|
||||||
command: "{{ ansible_python.executable }} -c 'import docker; print(docker.__version__)'"
|
command: "{{ ansible_python.executable }} -c 'import docker; print(docker.__version__)'"
|
||||||
|
|||||||
@ -17,6 +17,15 @@ else
|
|||||||
target="azp/"
|
target="azp/"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "${python}" =~ -pypi-latest$ ]]; then
|
||||||
|
python="${python/-pypi-latest}"
|
||||||
|
echo 'force_docker_sdk_for_python_pypi: true' >> tests/integration/integration_config.yml
|
||||||
|
fi
|
||||||
|
if [[ "${python}" =~ -dev-latest$ ]]; then
|
||||||
|
python="${python/-dev-latest}"
|
||||||
|
echo 'force_docker_sdk_for_python_dev: true' >> tests/integration/integration_config.yml
|
||||||
|
fi
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
|
ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
|
||||||
--docker "quay.io/ansible-community/test-image:${image}" --python "${python}"
|
--docker "quay.io/ansible-community/test-image:${image}" --python "${python}"
|
||||||
|
|||||||
@ -16,6 +16,15 @@ else
|
|||||||
target="azp/"
|
target="azp/"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "${image}" =~ -pypi-latest$ ]]; then
|
||||||
|
image="${image/-pypi-latest}"
|
||||||
|
echo 'force_docker_sdk_for_python_pypi: true' >> tests/integration/integration_config.yml
|
||||||
|
fi
|
||||||
|
if [[ "${image}" =~ -dev-latest$ ]]; then
|
||||||
|
image="${image/-dev-latest}"
|
||||||
|
echo 'force_docker_sdk_for_python_dev: true' >> tests/integration/integration_config.yml
|
||||||
|
fi
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
|
ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
|
||||||
--docker "${image}"
|
--docker "${image}"
|
||||||
|
|||||||
@ -27,10 +27,13 @@ else
|
|||||||
target="azp/"
|
target="azp/"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
force_python=""
|
|
||||||
if [[ "${version}" =~ -pypi-latest$ ]]; then
|
if [[ "${version}" =~ -pypi-latest$ ]]; then
|
||||||
version="${version/-pypi-latest}"
|
version="${version/-pypi-latest}"
|
||||||
echo 'force_docker_sdk_for_python_pypi: true' >> tests/integration/interation_config.yml
|
echo 'force_docker_sdk_for_python_pypi: true' >> tests/integration/integration_config.yml
|
||||||
|
fi
|
||||||
|
if [[ "${version}" =~ -dev-latest$ ]]; then
|
||||||
|
version="${version/-dev-latest}"
|
||||||
|
echo 'force_docker_sdk_for_python_dev: true' >> tests/integration/integration_config.yml
|
||||||
fi
|
fi
|
||||||
|
|
||||||
stage="${S:-prod}"
|
stage="${S:-prod}"
|
||||||
@ -42,4 +45,4 @@ fi
|
|||||||
|
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
|
ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
|
||||||
--python "${pyver}" --remote "${platform}/${version}" --remote-terminate always --remote-stage "${stage}" --remote-provider "${provider}" ${force_python}
|
--python "${pyver}" --remote "${platform}/${version}" --remote-terminate always --remote-stage "${stage}" --remote-provider "${provider}"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user