56149024a0
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
61 lines
2.1 KiB
YAML
61 lines
2.1 KiB
YAML
# NOTE(andreaf) The number of vcpus is not available on all systems.
|
|
# See https://github.com/ansible/ansible/issues/30688
|
|
# When not available, we fall back to ansible_processor_cores
|
|
- name: Get hw.logicalcpu from sysctl
|
|
shell: sysctl hw.logicalcpu | cut -d' ' -f2
|
|
register: sysctl_hw_logicalcpu
|
|
when: ansible_processor_vcpus is not defined
|
|
|
|
- name: Number of cores
|
|
set_fact:
|
|
num_cores: "{{ansible_processor_vcpus|default(sysctl_hw_logicalcpu.stdout)}}"
|
|
|
|
- name: Set concurrency for cores == 3 or less
|
|
set_fact:
|
|
default_concurrency: "{{ num_cores }}"
|
|
when: num_cores|int <= 3
|
|
|
|
- name: Limit max concurrency when more than 3 vcpus are available
|
|
set_fact:
|
|
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:
|
|
- name: Check for test blacklist file
|
|
stat:
|
|
path: "{{ tempest_test_blacklist }}"
|
|
register:
|
|
blacklist_stat
|
|
|
|
- name: Build blacklist option
|
|
set_fact:
|
|
blacklist_option: "--blacklist-file={{ tempest_test_blacklist|quote }}"
|
|
when: blacklist_stat.stat.exists
|
|
|
|
- name: Run Tempest
|
|
command: tox -e {{tox_envlist}} {{tox_extra_args}} -- {{tempest_test_regex|quote}} {{blacklist_option|default('')}} \
|
|
--concurrency={{tempest_concurrency|default(default_concurrency)}} \
|
|
--black-regex={{tempest_black_regex|quote}}
|
|
args:
|
|
chdir: "{{devstack_base_dir}}/tempest"
|
|
become: true
|
|
become_user: tempest
|
|
environment: "{{ tempest_tox_environment }}"
|