diff --git a/roles/tobiko-bindep/tasks/ensure-bindep.yaml b/roles/tobiko-bindep/tasks/ensure-bindep.yaml index bd96fb713..e87bc9ef9 100644 --- a/roles/tobiko-bindep/tasks/ensure-bindep.yaml +++ b/roles/tobiko-bindep/tasks/ensure-bindep.yaml @@ -1,8 +1,16 @@ --- +- name: "check if upper-constraints file exists" + stat: + path: "{{ openstack_requirements_dir }}/upper-constraints.txt" + register: upper_constraints_file + + - name: "ensure Bindep is installed" command: > - '{{ python_executable }}' -m pip install --user 'bindep>={{ bindep_min_version }}' + '{{ python_executable }}' -m pip install \ + {% if upper_constraints_file.stat.exists == true %}-c'{{ upper_constraints_file.stat.path }}'{% endif %} \ + --user bindep>='{{ bindep_min_version }}' register: install_bindep changed_when: "'Successfully installed' in install_bindep.stdout" diff --git a/roles/tobiko-common/defaults/main.yaml b/roles/tobiko-common/defaults/main.yaml index d52961dcb..6a6010ea3 100644 --- a/roles/tobiko-common/defaults/main.yaml +++ b/roles/tobiko-common/defaults/main.yaml @@ -18,6 +18,8 @@ test_project: test_git_repo: '{{ git_base }}/x/tobiko.git' test_src_dir: '' +openstack_requirements_dir: "/opt/stack/requirements" + # NOTE: if test_dir and tobiko_dir variables endup being the same actual # directory then test_src and test_git_* variables will be overriden diff --git a/roles/tobiko-ensure-python3/tasks/install.yaml b/roles/tobiko-ensure-python3/tasks/install.yaml index 035d66bb2..c02c70e49 100644 --- a/roles/tobiko-ensure-python3/tasks/install.yaml +++ b/roles/tobiko-ensure-python3/tasks/install.yaml @@ -57,10 +57,17 @@ failed_when: (python_info | length) == 0 +- name: "check if upper-constraints file exists" + stat: + path: "{{ openstack_requirements_dir }}/upper-constraints.txt" + register: upper_constraints_file + + - name: "upgrade '{{ python_command }}' packages to the latest versions" command: > - '{{ python_info[python_command].executable }}' -m pip install '{{ item }}' \ - --upgrade --user + '{{ python_info[python_command].executable }}' -m pip install \ + {% if upper_constraints_file.stat.exists == true %}-c'{{ upper_constraints_file.stat.path }}'{% endif %} + '{{ item }}' --upgrade --user register: upgrade_python_packages changed_when: "'Successfully installed' in upgrade_python_packages.stdout" diff --git a/roles/tobiko-ensure-tox/tasks/tox.yaml b/roles/tobiko-ensure-tox/tasks/tox.yaml index 8a079da11..64fe9d88e 100644 --- a/roles/tobiko-ensure-tox/tasks/tox.yaml +++ b/roles/tobiko-ensure-tox/tasks/tox.yaml @@ -1,8 +1,14 @@ --- +- name: "check if upper-constraints file exists" + stat: + path: "{{ openstack_requirements_dir }}/upper-constraints.txt" + register: upper_constraints_file + + - name: "ensure Tox is installed" command: > - {{ python_executable }} -m pip install --user + '{{ python_executable }}' -m pip install {% if upper_constraints_file.stat.exists is true %}-c'{{ upper_constraints_file.stat.path }}'{% endif %}--user \ 'tox>={{ tox_min_version }}{% if tox_max_version is not none %},<={{ tox_max_version }}{% endif %}' register: install_tox changed_when: "'Successfully installed' in install_tox.stdout"