Honor constraints files in tox-siblings

We use the constraints file when we do the actual sibling installation,
but not when we do the initial no-test install. That could lead to
something being installed at the wrong version and not getting updated
subsequently.

Shifted the siblings logic into a file that's conditionally included so
we can avoid a bunch of if defined additions.

Change-Id: I4e71ab2ea8e167f22c3a66b95dc6f898a35f0284
This commit is contained in:
Monty Taylor 2017-11-29 11:51:48 -06:00
parent a1373c48c6
commit 43943c5bb0
No known key found for this signature in database
GPG Key ID: 7BAE94BC7141A594
2 changed files with 40 additions and 18 deletions

View File

@ -1,19 +1,3 @@
- name: Require tox_envlist variable
fail:
msg: tox_envlist is required for this role
when: tox_envlist is not defined
- name: Run tox without tests
command: "{{ tox_executable }} --notest -e{{ tox_envlist }}"
args:
chdir: "{{ zuul_work_dir }}"
when: tox_install_siblings
# TODO(mordred) handle tox_envlist being a list
- name: Install any sibling python packages
tox_install_sibling_packages:
tox_envlist: "{{ tox_envlist }}"
tox_constraints_file: "{{ tox_constraints_file | default(omit) }}"
project_dir: "{{ zuul_work_dir }}"
projects: "{{ zuul.projects | selectattr('required') | list }}"
- name: Install tox siblings
include: siblings.yaml
when: tox_install_siblings

View File

@ -0,0 +1,38 @@
- name: Require tox_envlist variable
fail:
msg: tox_envlist is required for this role
when: tox_envlist is not defined
- name: Check to see if the constraints file exists
stat:
path: "{{ tox_constraints_file }}"
get_checksum: false
get_mime: false
get_md5: false
register: stat_results
when: tox_constraints_file is defined
- name: Fail if constraints file is missing
when: tox_constraints_file is defined and not stat_results.stat.exists
fail:
msg: tox_constraints_file is defined but was not found
- name: Record file location
set_fact:
tox_constraints_env:
UPPER_CONSTRAINTS_FILE: "{{ tox_constraints_file }}"
when: tox_constraints_file is defined
- name: Run tox without tests
command: "{{ tox_executable }} --notest -e{{ tox_envlist }}"
args:
chdir: "{{ zuul_work_dir }}"
environment: "{{ tox_environment|combine(tox_constraints_env|default({})) }}"
# TODO(mordred) handle tox_envlist being a list
- name: Install any sibling python packages
tox_install_sibling_packages:
tox_envlist: "{{ tox_envlist }}"
tox_constraints_file: "{{ tox_constraints_file | default(omit) }}"
project_dir: "{{ zuul_work_dir }}"
projects: "{{ zuul.projects | selectattr('required') | list }}"