From 7ae274dff87ab35fcce022fa23b6595ab803024a Mon Sep 17 00:00:00 2001 From: Clark Boylan Date: Tue, 22 Aug 2023 10:02:22 -0700 Subject: [PATCH] Fix nox job python2.7 support Virtualenv dropped python2.7 support. When we install latest nox it also installs latest virtualenv. Then when we try to run python2.7 jobs which will create a python2.7 venv things fail with: RuntimeError: failed to find interpreter for Builtin discover of python_spec='python2.7' The underlying issue is that we are getting a too new virtualenv. Fix this by adding a pre run step to the python2.7 jobs that downgrades to a version of virtualenv that should support python2.7 environments. Change-Id: I0ed9915b25c752cdaae4df19c9a0e0dc1aafd3d7 --- playbooks/nox/pre27.yaml | 6 ++++++ zuul.d/python-jobs.yaml | 1 + 2 files changed, 7 insertions(+) create mode 100644 playbooks/nox/pre27.yaml diff --git a/playbooks/nox/pre27.yaml b/playbooks/nox/pre27.yaml new file mode 100644 index 000000000..ef7a8f460 --- /dev/null +++ b/playbooks/nox/pre27.yaml @@ -0,0 +1,6 @@ +- hosts: all + tasks: + - name: Downgrade virtualenv for python2.7 support + # Assume pip is installed in the same relative path as nox + # and use that to downgrade virtualenv to a version python2.7 supports. + command: "{{ nox_executable | dirname }}/pip install -U virtualenv<20.22.0" diff --git a/zuul.d/python-jobs.yaml b/zuul.d/python-jobs.yaml index 0957c8c4e..6fcf4f9d0 100644 --- a/zuul.d/python-jobs.yaml +++ b/zuul.d/python-jobs.yaml @@ -403,6 +403,7 @@ Run unit tests for a Python project under cPython version 2.7. Uses nox with the ``test`` keyword forcing python 2.7. + pre-run: playbooks/nox/pre27.yaml vars: nox_keyword: tests nox_force_python: "2.7"