From a03dd054659fdee93098829cf05759301103928f Mon Sep 17 00:00:00 2001 From: Jakob Meng Date: Tue, 29 Mar 2022 12:30:34 +0200 Subject: [PATCH] Refactored tox requirements for different Ansible releases Sorted pip requirements file to improve readability. Moved pip requirements for tests into tests subdirectory and dropped 'pip-' prefix to shorten filenames and conform with common naming scheme for pip requirements files. Added constrains on OpenStack SDK 1.*.* to job ansible-collections-\ openstack-functional-devstack-releases on master branch because only stable/1.0.0 branch is compatible to the OpenStack SDK 0.*.* series. Changed job ansible-collections-openstack-functional-devstack-releases on master branch to non-voting because OpenStack SDK 1.*.* has not been released to PyPI yet, so tests on master branch are expected to fail once we introduce breaking changes from stable/1.0.0 branch. Change-Id: I6b6bb8c6900f7c8341bbf3f9a24999fbf693ba4b --- .zuul.yaml | 37 ++++++++------ test-requirements.txt | 1 - ...straints-none.txt => constraints-none.txt} | 0 ...txt => constraints-openstacksdk-0.x.x.txt} | 0 tests/constraints-openstacksdk-1.x.x.txt | 1 + .../requirements-ansible-2.11.txt | 10 ++-- tests/requirements-ansible-2.12.txt | 11 +++++ .../requirements-ansible-2.9.txt | 16 +++--- .../requirements.txt | 10 ++-- tox.ini | 49 +++++++------------ 10 files changed, 70 insertions(+), 65 deletions(-) delete mode 120000 test-requirements.txt rename tests/{pip-constraints-none.txt => constraints-none.txt} (100%) rename tests/{pip-constraints-openstacksdk-0.x.x.txt => constraints-openstacksdk-0.x.x.txt} (100%) create mode 100644 tests/constraints-openstacksdk-1.x.x.txt rename test-requirements-2.11.txt => tests/requirements-ansible-2.11.txt (100%) create mode 100644 tests/requirements-ansible-2.12.txt rename test-requirements-2.9.txt => tests/requirements-ansible-2.9.txt (92%) rename test-requirements-2.12.txt => tests/requirements.txt (100%) diff --git a/.zuul.yaml b/.zuul.yaml index 1df46c83..dd587ab6 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -117,7 +117,7 @@ name: openstack/openstacksdk override-checkout: master vars: - tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/pip-constraints-openstacksdk-0.x.x.txt' + tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/constraints-openstacksdk-0.x.x.txt' - job: name: ansible-collections-openstack-functional-devstack-releases @@ -126,7 +126,11 @@ description: | Run openstack collections functional tests against a master devstack using latest releases of openstacksdk and latest ansible release + # OpenStack SDK 1.*.* has not been released to PyPI yet + voting: false vars: + # Uncomment once OpenStack SDK 1.*.* has been released to PyPI + # tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/constraints-openstacksdk-1.x.x.txt' tox_install_siblings: false - job: @@ -146,7 +150,7 @@ name: openstack/openstacksdk override-checkout: master vars: - tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/pip-constraints-openstacksdk-0.x.x.txt' + tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/constraints-openstacksdk-0.x.x.txt' tox_install_siblings: false # Job with Ansible 2.9 for checking backward compatibility @@ -446,9 +450,23 @@ # Linters - job: - name: openstack-tox-linters-ansible-devel + name: openstack-tox-linters-ansible parent: openstack-tox-linters nodeset: ubuntu-focal + description: | + Run openstack collections linter tests using the master branch of ansible + required-projects: + - name: github.com/ansible/ansible + override-checkout: master + vars: + # override tox_constraints_file from parent job + tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/constraints-none.txt' + tox_envlist: linters + tox_install_siblings: true + +- job: + name: openstack-tox-linters-ansible-devel + parent: openstack-tox-linters-ansible description: | Run openstack collections linter tests using the devel branch of ansible # non-voting because we can't prevent ansible devel from breaking us @@ -457,31 +475,25 @@ - name: github.com/ansible/ansible override-checkout: devel vars: - # override tox_constraints_file from parent job - tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/pip-constraints-none.txt' - tox_envlist: linters-2.12 python_version: 3.8 bindep_profile: test py38 - job: name: openstack-tox-linters-ansible-2.12 - parent: openstack-tox-linters - nodeset: ubuntu-focal + parent: openstack-tox-linters-ansible description: | Run openstack collections linter tests using the 2.12 branch of ansible required-projects: - name: github.com/ansible/ansible override-checkout: stable-2.12 vars: - # override tox_constraints_file from parent job - tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/pip-constraints-none.txt' tox_envlist: linters-2.12 python_version: 3.8 bindep_profile: test py38 - job: name: openstack-tox-linters-ansible-2.9 - parent: openstack-tox-linters + parent: openstack-tox-linters-ansible nodeset: ubuntu-bionic description: | Run openstack collections linter tests using the 2.9 branch of ansible @@ -489,8 +501,6 @@ - name: github.com/ansible/ansible override-checkout: stable-2.9 vars: - # override tox_constraints_file from parent job - tox_constraints_file: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/pip-constraints-none.txt' tox_envlist: linters-2.9 # Cross-checks with other projects @@ -535,7 +545,6 @@ - ^tests/.*$ - ^tools/.*$ - ^requirements.*$ - - ^test-requirements.*$ - ^setup.*$ - tox.ini # Run only on files used in TripleO diff --git a/test-requirements.txt b/test-requirements.txt deleted file mode 120000 index 8cb48e9b..00000000 --- a/test-requirements.txt +++ /dev/null @@ -1 +0,0 @@ -test-requirements-2.12.txt \ No newline at end of file diff --git a/tests/pip-constraints-none.txt b/tests/constraints-none.txt similarity index 100% rename from tests/pip-constraints-none.txt rename to tests/constraints-none.txt diff --git a/tests/pip-constraints-openstacksdk-0.x.x.txt b/tests/constraints-openstacksdk-0.x.x.txt similarity index 100% rename from tests/pip-constraints-openstacksdk-0.x.x.txt rename to tests/constraints-openstacksdk-0.x.x.txt diff --git a/tests/constraints-openstacksdk-1.x.x.txt b/tests/constraints-openstacksdk-1.x.x.txt new file mode 100644 index 00000000..3d959de5 --- /dev/null +++ b/tests/constraints-openstacksdk-1.x.x.txt @@ -0,0 +1 @@ +openstacksdk>=1.0.0 diff --git a/test-requirements-2.11.txt b/tests/requirements-ansible-2.11.txt similarity index 100% rename from test-requirements-2.11.txt rename to tests/requirements-ansible-2.11.txt index 1517a33a..9b3aa529 100644 --- a/test-requirements-2.11.txt +++ b/tests/requirements-ansible-2.11.txt @@ -1,11 +1,11 @@ -openstacksdk ansible-core>=2.11.0,<2.12.0 -pycodestyle flake8 +galaxy-importer +openstacksdk +pycodestyle pylint -voluptuous -yamllint rstcheck ruamel.yaml -galaxy-importer tox +voluptuous +yamllint diff --git a/tests/requirements-ansible-2.12.txt b/tests/requirements-ansible-2.12.txt new file mode 100644 index 00000000..50ddff9b --- /dev/null +++ b/tests/requirements-ansible-2.12.txt @@ -0,0 +1,11 @@ +ansible-core>=2.12.0,<2.13.0 +flake8 +galaxy-importer +openstacksdk +pycodestyle +pylint +rstcheck +ruamel.yaml +tox +voluptuous +yamllint diff --git a/test-requirements-2.9.txt b/tests/requirements-ansible-2.9.txt similarity index 92% rename from test-requirements-2.9.txt rename to tests/requirements-ansible-2.9.txt index a548e7bf..c9ab472b 100644 --- a/test-requirements-2.9.txt +++ b/tests/requirements-ansible-2.9.txt @@ -1,13 +1,13 @@ -openstacksdk -ansible<2.10 -pycodestyle +ansible>=2.9.0,<2.10.0 flake8 -pylint -voluptuous -yamllint -rstcheck -ruamel.yaml # galaxy-importer 0.3.2 moved from ansible 2.9 to ansible-core 2.11 # Ref.: https://github.com/ansible/galaxy-importer/commit/98933547831922c45243f39d85eefe150b55fc36 galaxy-importer==0.3.1 +openstacksdk +pycodestyle +pylint +rstcheck +ruamel.yaml tox +voluptuous +yamllint diff --git a/test-requirements-2.12.txt b/tests/requirements.txt similarity index 100% rename from test-requirements-2.12.txt rename to tests/requirements.txt index bd77fad5..a96ff97e 100644 --- a/test-requirements-2.12.txt +++ b/tests/requirements.txt @@ -1,11 +1,11 @@ -openstacksdk ansible-core -pycodestyle flake8 +galaxy-importer +openstacksdk +pycodestyle pylint -voluptuous -yamllint rstcheck ruamel.yaml -galaxy-importer tox +voluptuous +yamllint diff --git a/tox.ini b/tox.ini index 8e83e1f6..371aed54 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 3.18.0 -envlist = pep8 +envlist = linters skipsdist = True ignore_basepython_conflict = True @@ -21,8 +21,8 @@ setenv = OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:true} pip: PIP_INSTALL={env:PIP_INSTALL:true} deps = - -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/pip-constraints-none.txt} - -r{toxinidir}/test-requirements.txt + -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/constraints-none.txt} + -r{toxinidir}/tests/requirements.txt pip: {toxinidir} commands = stestr run {posargs} @@ -34,10 +34,10 @@ commands = [testenv:build] deps = + ansible-core + galaxy-importer pbr ruamel.yaml - galaxy-importer - ansible-core commands = python {toxinidir}/tools/build.py @@ -59,28 +59,22 @@ commands = passenv = {[testenv:linters]passenv} commands = {[testenv:linters]commands} deps = - -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/pip-constraints-none.txt} - -r{toxinidir}/test-requirements-2.9.txt + -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/constraints-none.txt} + -r{toxinidir}/tests/requirements-ansible-2.9.txt [testenv:linters-2.11] passenv = {[testenv:linters]passenv} commands = {[testenv:linters]commands} deps = - -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/pip-constraints-none.txt} - -r{toxinidir}/test-requirements-2.11.txt + -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/constraints-none.txt} + -r{toxinidir}/tests/requirements-ansible-2.11.txt [testenv:linters-2.12] passenv = {[testenv:linters]passenv} commands = {[testenv:linters]commands} deps = - -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/pip-constraints-none.txt} - -r{toxinidir}/test-requirements-2.12.txt - -[testenv:venv] -deps = - -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/pip-constraints-none.txt} - -r{toxinidir}/test-requirements.txt -commands = {posargs} + -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/constraints-none.txt} + -r{toxinidir}/tests/requirements-ansible-2.12.txt [flake8] # W503 Is supposed to be off by default but in the latest pycodestyle isn't. @@ -104,33 +98,24 @@ deps = commands = /bin/bash {toxinidir}/ci/run-ansible-tests-collection.sh -e {envdir} {posargs} -# PIP job runs with Ansible-2.9 -[testenv:ansible-pip] -deps = - -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/pip-constraints-none.txt} - -r{toxinidir}/test-requirements-2.9.txt - {toxinidir} -passenv = {[testenv:ansible]passenv} -commands = {[testenv:ansible]commands} - [testenv:ansible-2.9] deps = - -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/pip-constraints-none.txt} - -r{toxinidir}/test-requirements-2.9.txt + -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/constraints-none.txt} + -r{toxinidir}/tests/requirements-ansible-2.9.txt passenv = {[testenv:ansible]passenv} commands = {[testenv:ansible]commands} [testenv:ansible-2.11] deps = - -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/pip-constraints-none.txt} - -r{toxinidir}/test-requirements-2.11.txt + -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/constraints-none.txt} + -r{toxinidir}/tests/requirements-ansible-2.11.txt passenv = {[testenv:ansible]passenv} commands = {[testenv:ansible]commands} [testenv:ansible-2.12] deps = - -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/pip-constraints-none.txt} - -r{toxinidir}/test-requirements-2.12.txt + -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/tests/constraints-none.txt} + -r{toxinidir}/tests/requirements-ansible-2.12.txt passenv = {[testenv:ansible]passenv} commands = {[testenv:ansible]commands}