Use older run-tempest for stable branches
run-tempest is changed recently to add the new variables but keep supporting the old ones too, for example: tempest_black_regex, tempest_exclude_regex. and if both old and new var are used in job definition (parent and child) then new variables are picked. Because Tempest is branchless, zuul pick the Tempest master playbooks/roles. That is why job running on stable branch gate will pick the base job definition from Tempest master. This way if any stable jobs which were defining the old var and using old Tempest are broken if any of their parent job define the new var. This commit pin the older run-tempest role for such stable branches. Change-Id: If49ab0c31aca5b7837636727096a9bc83f891b1b
This commit is contained in:
parent
cc0e3d1693
commit
1e4cb1da36
@ -16,4 +16,17 @@
|
||||
# address is IPv6 etc. This is invoked before tests are run so that we can
|
||||
# fail early if anything missing the IPv6 settings or deployments.
|
||||
- devstack-ipv6-only-deployments-verification
|
||||
- run-tempest
|
||||
tasks:
|
||||
- name: Run Tempest version <= 26.0.0
|
||||
include_role:
|
||||
name: run-tempest-26
|
||||
when:
|
||||
- zuul.branch is defined
|
||||
- zuul.branch in ["stable/ocata", "stable/pike", "stable/queens", "stable/rocky", "stable/stein"]
|
||||
|
||||
- name: Run Tempest
|
||||
include_role:
|
||||
name: run-tempest
|
||||
when:
|
||||
- zuul.branch is defined
|
||||
- zuul.branch not in ["stable/ocata", "stable/pike", "stable/queens", "stable/rocky", "stable/stein"]
|
||||
|
@ -29,9 +29,17 @@
|
||||
(run_tempest_cleanup is defined and run_tempest_cleanup | bool) or
|
||||
(run_tempest_fail_if_leaked_resources is defined and run_tempest_fail_if_leaked_resources | bool)
|
||||
|
||||
- name: Run Tempest version <= 26.0.0
|
||||
include_role:
|
||||
name: run-tempest-26
|
||||
when: (zuul.branch is defined and zuul.branch in ["stable/ocata", "stable/pike", "stable/queens", "stable/rocky", "stable/stein"]) or
|
||||
(zuul.override_checkout is defined and zuul.override_checkout in ["stable/ocata", "stable/pike", "stable/queens", "stable/rocky", "stable/stein"])
|
||||
|
||||
- name: Run Tempest
|
||||
include_role:
|
||||
name: run-tempest
|
||||
when: (zuul.branch is defined and zuul.branch not in ["stable/ocata", "stable/pike", "stable/queens", "stable/rocky", "stable/stein"] and zuul.override_checkout is not defined) or
|
||||
(zuul.override_checkout is defined and zuul.override_checkout not in ["stable/ocata", "stable/pike", "stable/queens", "stable/rocky", "stable/stein"])
|
||||
|
||||
- name: Run tempest cleanup dry-run
|
||||
include_role:
|
||||
|
83
roles/run-tempest-26/README.rst
Normal file
83
roles/run-tempest-26/README.rst
Normal file
@ -0,0 +1,83 @@
|
||||
Run Tempest
|
||||
|
||||
The result of the tempest run is stored in the `tempest_run_result`
|
||||
variable (through the `register` statement).
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: devstack_base_dir
|
||||
:default: /opt/stack
|
||||
|
||||
The devstack base directory.
|
||||
|
||||
.. zuul:rolevar:: tempest_concurrency
|
||||
:default: 0
|
||||
|
||||
The number of parallel test processes.
|
||||
|
||||
.. zuul:rolevar:: tempest_test_regex
|
||||
:default: ''
|
||||
|
||||
A regular expression used to select the tests.
|
||||
|
||||
It works only when used with some specific tox environments
|
||||
('all', 'all-plugin'.)
|
||||
|
||||
In the following example only api scenario and third party tests
|
||||
will be executed.
|
||||
|
||||
::
|
||||
vars:
|
||||
tempest_test_regex: (tempest\.(api|scenario|thirdparty)).*$
|
||||
|
||||
.. zuul:rolevar:: tempest_test_blacklist
|
||||
|
||||
Specifies a blacklist file to skip tests that are not needed.
|
||||
|
||||
Pass a full path to the file.
|
||||
|
||||
.. zuul:rolevar:: tox_envlist
|
||||
:default: smoke
|
||||
|
||||
The Tempest tox environment to run.
|
||||
|
||||
.. zuul:rolevar:: tempest_black_regex
|
||||
:default: ''
|
||||
|
||||
A regular expression used to skip the tests.
|
||||
|
||||
It works only when used with some specific tox environments
|
||||
('all', 'all-plugin'.)
|
||||
|
||||
::
|
||||
vars:
|
||||
tempest_black_regex: (tempest.api.identity).*$
|
||||
|
||||
.. zuul:rolevar:: tox_extra_args
|
||||
:default: ''
|
||||
|
||||
String of extra command line options to pass to tox.
|
||||
|
||||
Here is an example of running tox with --sitepackages option:
|
||||
|
||||
::
|
||||
vars:
|
||||
tox_extra_args: --sitepackages
|
||||
|
||||
.. zuul:rolevar:: tempest_test_timeout
|
||||
: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.
|
12
roles/run-tempest-26/defaults/main.yaml
Normal file
12
roles/run-tempest-26/defaults/main.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
devstack_base_dir: /opt/stack
|
||||
tempest_test_regex: ''
|
||||
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: {}
|
||||
# NOTE(gmann): external_bridge_mtu shows as undefined for run-tempest role
|
||||
# defining default value here to avoid that error.
|
||||
external_bridge_mtu: 0
|
73
roles/run-tempest-26/tasks/main.yaml
Normal file
73
roles/run-tempest-26/tasks/main.yaml
Normal file
@ -0,0 +1,73 @@
|
||||
# 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/stein
|
||||
set_fact:
|
||||
# TOX_CONSTRAINTS_FILE is new name, UPPER_CONSTRAINTS_FILE is old one, best to set both
|
||||
tempest_tox_environment: "{{ tempest_tox_environment | combine({'UPPER_CONSTRAINTS_FILE': stable_constraints_file}) | combine({'TOX_CONSTRAINTS_FILE': stable_constraints_file}) }}"
|
||||
when: target_branch in ["stable/ocata", "stable/pike", "stable/queens", "stable/rocky"]
|
||||
|
||||
- name: Use Configured upper-constraints for non-master Tempest
|
||||
set_fact:
|
||||
# TOX_CONSTRAINTS_FILE is new name, UPPER_CONSTRAINTS_FILE is old one, best to set both
|
||||
tempest_tox_environment: "{{ tempest_tox_environment | combine({'UPPER_CONSTRAINTS_FILE': devstack_localrc['TEMPEST_VENV_UPPER_CONSTRAINTS']}) | combine({'TOX_CONSTRAINTS_FILE': devstack_localrc['TEMPEST_VENV_UPPER_CONSTRAINTS']}) }}"
|
||||
when:
|
||||
- devstack_localrc is defined
|
||||
- "'TEMPEST_BRANCH' in devstack_localrc"
|
||||
- "'TEMPEST_VENV_UPPER_CONSTRAINTS' in devstack_localrc"
|
||||
- devstack_localrc['TEMPEST_BRANCH'] != 'master'
|
||||
- devstack_localrc['TEMPEST_VENV_UPPER_CONSTRAINTS'] != 'default'
|
||||
|
||||
- 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"
|
||||
register: tempest_run_result
|
||||
become: true
|
||||
become_user: tempest
|
||||
environment: "{{ tempest_tox_environment }}"
|
Loading…
Reference in New Issue
Block a user