diff --git a/.zuul.yaml b/.zuul.yaml index 73085e3dff0..e2bcf196c0b 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -71,6 +71,29 @@ bindep_profile: test py313 tox_envlist: py313-threading +- job: + name: nova-tox-functional-py313-threading + parent: openstack-tox-functional-py313 + description: | + Run tox-based functional tests for the OpenStack Nova project + under cPython version 3.13 with eventlet disabled (native threading). + Uses tox with the ``functional-py313-threading`` environment. + + This job also provides a parent for other projects to run the nova + functional tests with threading on their own changes. + required-projects: + # including nova here makes this job reusable by other projects + - openstack/nova + - openstack/placement + irrelevant-files: *functional-irrelevant-files + vars: + # explicitly stating the work dir makes this job reusable by other + # projects + zuul_work_dir: src/opendev.org/openstack/nova + bindep_profile: test py313 + tox_envlist: functional-py313-threading + timeout: 7200 + - job: name: nova-tox-validate-backport parent: openstack-tox @@ -950,6 +973,8 @@ voting: false - nova-tox-functional-py310 - nova-tox-functional-py313 + - nova-tox-functional-py313-threading: + voting: false - tempest-integrated-compute: # NOTE(gmann): Policies changes do not need to run all the # integration test jobs. Running only tempest and grenade @@ -979,6 +1004,8 @@ - nova-live-migration - nova-tox-functional-py310 - nova-tox-functional-py313 + - nova-tox-functional-py313-threading: + voting: false - nova-multi-cell - nova-next - nova-tox-validate-backport diff --git a/tox.ini b/tox.ini index 3a6c56e56fc..be083025c7d 100644 --- a/tox.ini +++ b/tox.ini @@ -118,6 +118,27 @@ commands = stestr --test-path=./nova/tests/functional run {posargs} stestr slowest +[testenv:functional-py313-threading] +description = + Run functional tests with native threading (eventlet disabled). +passenv = + {[testenv]passenv} + GENERATE_SAMPLES +setenv = + {[testenv]setenv} +# we do not have any greenlet leaks in functional tests so enforce that +# by making greenlet leaks a failure. + NOVA_RAISE_ON_GREENLET_LEAK=True +# run the test without eventlet (native threading) + OS_NOVA_DISABLE_EVENTLET_PATCHING=True +deps = + {[testenv]deps} + openstack-placement>=9.0.0.0b1 +extras = +commands = + stestr --test-path=./nova/tests/functional run {posargs} + stestr slowest + [testenv:functional-without-sample-db-tests] description = Run functional tests by excluding the API|Notification