Use stable constraint in run-tempest for stable branch testing

Stable branches till stable/rocky is using python
version <py3.6. Tempest test those branch in venv
but Tempest tox use the master upper-constraint[1]
which block installation due to dependencies
require >=py3.6. For exmaple, oslo.concurrency 4.0.0
is not compatible for <py3.6.

As we pin Tempest for EM stable brach, we should be
able to use stable constraint for Tempest installation
as well as while running during run-tempest playbook.

tox.ini is hard coded to use master constraint[1] which force
run-tempest to recreate the tox env and use the master constraint.

Devstack can set stable u-c to use via env var but this is
not enough as Tempest role run-tempest recreate the tox
env with master u-c.
- https://review.opendev.org/#/c/705089/4/lib/tempest

Currently we are fixing run-tempest to use stable constraint
till stable/rocky which use distro having <py3.6.

Ideally, we can change compatible branch constraint in tox.ini
while doing release tag for Tempest. But that can be done
for future tags only.

[1] bc9fe8eca8/tox.ini (L14)

Change-Id: I4268049ff91e5527e4b95fd8a70fa53ba27d56ed
This commit is contained in:
Ghanshyam 2020-02-05 15:53:26 -06:00 committed by Ghanshyam Mann
parent bc9fe8eca8
commit 56149024a0
3 changed files with 32 additions and 1 deletions

View File

@ -72,3 +72,16 @@ Run Tempest
:default: ''
The timeout (in seconds) for each test.
.. zuul:rolevar:: stable_constraints_file
:default: ''
Upper constraints file to be used for stable branch till stable/rocky.
.. zuul:rolevar:: tempest_tox_environment
:default: ''
Environment variable to set for run-tempst task.
Env variables set in this variable will be combined with some more
defaults env variable set at runtime.

View File

@ -4,3 +4,6 @@ tox_envlist: smoke
tempest_black_regex: ''
tox_extra_args: ''
tempest_test_timeout: ''
stable_constraints_file: "{{ devstack_base_dir }}/requirements/upper-constraints.txt"
target_branch: "{{ zuul.branch }}"
tempest_tox_environment: {}

View File

@ -20,6 +20,21 @@
default_concurrency: "{{ num_cores|int // 2 }}"
when: num_cores|int > 3
- name: Override target branch
set_fact:
target_branch: "{{ zuul.override_checkout }}"
when: zuul.override_checkout is defined
- name: Use stable branch upper-constraints till stable/rocky
set_fact:
tempest_tox_environment: "{{ tempest_tox_environment | combine({'UPPER_CONSTRAINTS_FILE': stable_constraints_file}) }}"
when: target_branch in ["stable/ocata", "stable/pike", "stable/queens", "stable/rocky"]
- name: Set OS_TEST_TIMEOUT if requested
set_fact:
tempest_tox_environment: "{{ tempest_tox_environment | combine({'OS_TEST_TIMEOUT': tempest_test_timeout}) }}"
when: tempest_test_timeout != ''
- when:
- tempest_test_blacklist is defined
block:
@ -42,4 +57,4 @@
chdir: "{{devstack_base_dir}}/tempest"
become: true
become_user: tempest
environment: '{{ {"OS_TEST_TIMEOUT": tempest_test_timeout} if tempest_test_timeout else {} }}'
environment: "{{ tempest_tox_environment }}"