From e79f870ec739d47dc984d5516e628f4f3385860c Mon Sep 17 00:00:00 2001 From: Luigi Toscano Date: Mon, 4 Feb 2019 18:34:51 +0100 Subject: [PATCH] New job for sahara-scenario based on Python 3 Only sahara-scenario is executed using Python 3; the deployment itself (devstack) still uses Python 2. In order to ease the transition, add a venv-py2 tox target that can be used by the sahara and python-saharaclient jobs on the older branches to still use python2 when the main venv will be switched to python3. This venv is used to make sure that the old branches are still using Python 2 regardless of the configuration of sahara-tests-scenario. After this change is merged, the scenario jobs on older branches should be changed to explicitly use venv-py2. When this is done, sahara-tests-scenario-runner-py3 can be removed and sahara-tests-scenario can be switched to use venv-py3. Change-Id: I379a993e45da842cea24e50afe84c89556c0e700 --- .zuul.yaml | 20 ++++++++++++++++++-- roles/run-sahara-scenario/defaults/main.yaml | 1 + roles/run-sahara-scenario/tasks/main.yaml | 2 +- tox.ini | 10 ++++++++++ 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index ba107f12..e7682d7d 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -11,7 +11,7 @@ voting: false - openstack-tox-pylint: voting: false - - sahara-tests-scenario + - sahara-tests-scenario-runner-py3 - sahara-tests-tempest - sahara-tests-scenario-rocky - sahara-tests-scenario-queens @@ -19,7 +19,7 @@ gate: queue: sahara jobs: - - sahara-tests-scenario + - sahara-tests-scenario-runner-py3 - sahara-tests-tempest experimental: jobs: @@ -134,6 +134,7 @@ sahara_plugin: fake sahara_plugin_version: '0.1' sahara_scenario_test_template: fake.yaml.mako + sahara_scenario_tox_env: venv-py2 irrelevant-files: - ^.*\.rst$ - ^api-ref/.*$ @@ -141,20 +142,35 @@ - ^releasenotes/.*$ - ^sahara_tempest_plugin/.*$ +- job: + name: sahara-tests-scenario-runner-py3 + parent: sahara-tests-scenario + description: | + Run scenario tests for Sahara which use Python 3 + to run sahara-scenario (but not the OpenStack deployment) + vars: + sahara_scenario_tox_env: venv-py3 + - job: name: sahara-tests-scenario-rocky parent: sahara-tests-scenario override-checkout: stable/rocky + vars: + sahara_scenario_tox_env: venv-py2 - job: name: sahara-tests-scenario-queens parent: sahara-tests-scenario override-checkout: stable/queens + vars: + sahara_scenario_tox_env: venv-py2 - job: name: sahara-tests-scenario-pike parent: sahara-tests-scenario override-checkout: stable/pike + vars: + sahara_scenario_tox_env: venv-py2 - job: name: sahara-tests-scenario-modwsgi diff --git a/roles/run-sahara-scenario/defaults/main.yaml b/roles/run-sahara-scenario/defaults/main.yaml index a6c21eed..d7d7875f 100644 --- a/roles/run-sahara-scenario/defaults/main.yaml +++ b/roles/run-sahara-scenario/defaults/main.yaml @@ -3,3 +3,4 @@ sahara_tests_src_dir: "{{ zuul.projects['git.openstack.org/openstack/sahara-test sahara_cloud_demo: 'devstack-admin' sahara_scenario_conf: '{{ ansible_user_dir }}/template_vars.ini' sahara_scenario_test_template: 'fake.yaml.mako' +sahara_scenario_tox_env: 'venv' diff --git a/roles/run-sahara-scenario/tasks/main.yaml b/roles/run-sahara-scenario/tasks/main.yaml index e4a0dc96..0655a642 100644 --- a/roles/run-sahara-scenario/tasks/main.yaml +++ b/roles/run-sahara-scenario/tasks/main.yaml @@ -1,7 +1,7 @@ --- - name: run sahara-scenario shell: | - tox -e venv --sitepackages -- sahara-scenario --verbose -V {{ sahara_scenario_conf }} \ + tox -e {{ sahara_scenario_tox_env }} --sitepackages -- sahara-scenario --verbose -V {{ sahara_scenario_conf }} \ etc/scenario/gate/credentials.yaml.mako \ etc/scenario/gate/edp.yaml.mako \ etc/scenario/gate/{{ sahara_scenario_test_template }} \ diff --git a/tox.ini b/tox.ini index 23e00d3b..90e9e387 100644 --- a/tox.ini +++ b/tox.ini @@ -19,6 +19,16 @@ passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY OS_* commands = {posargs} passenv = OS_* +[testenv:venv-py2] +basepython = python2 +commands = {posargs} +passenv = OS_* + +[testenv:venv-py3] +basepython = python3 +commands = {posargs} +passenv = OS_* + [testenv:cover] basepython = python3 setenv =