]> git.ipfire.org Git - thirdparty/git.git/commitdiff
ci: use absolute PYTHON_PATH in the Linux jobs
authorSZEDER Gábor <szeder.dev@gmail.com>
Thu, 23 Jul 2020 21:38:48 +0000 (23:38 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 23 Jul 2020 22:32:06 +0000 (15:32 -0700)
In our test suite, when 'git p4' invokes a Git command as a
subprocesses, then it should run the 'git' binary we are testing.
Unfortunately, this is not the case in the 'linux-clang' and
'linux-gcc' jobs on Travis CI, where 'git p4' runs the system
'/usr/bin/git' instead.

Travis CI's default Linux image includes 'pyenv', and all Python
invocations that involve PATH lookup go through 'pyenv', e.g. our
'PYTHON_PATH=$(which python3)' sets '/opt/pyenv/shims/python3' as
PYTHON_PATH, which in turn will invoke '/usr/bin/python3'.  Alas, the
'pyenv' version included in this image is buggy, and prepends the
directory containing the Python binary to PATH even if that is a
system directory already in PATH near the end.  Consequently, 'git p4'
in those jobs ends up with its PATH starting with '/usr/bin', and then
runs '/usr/bin/git'.

So use the absolute paths '/usr/bin/python{2,3}' explicitly when
setting PYTHON_PATH in those Linux jobs to avoid the PATH lookup and
thus the bogus 'pyenv' from interfering with our 'git p4' tests.
Don't bother with special-casing Travis CI: while this issue doesn't
affect the corresponding Linux jobs on GitHub Actions, both CI systems
use Ubuntu LTS-based images, so we can safely rely on these Python
paths.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
ci/lib.sh

index ff24c547c8bb56a244eb5b1b3ca11e4bd32ea31a..3eefec500d88336fdb2d1fc3f4e05a611fc7e009 100755 (executable)
--- a/ci/lib.sh
+++ b/ci/lib.sh
@@ -184,9 +184,9 @@ linux-clang|linux-gcc)
        if [ "$jobname" = linux-gcc ]
        then
                export CC=gcc-8
-               MAKEFLAGS="$MAKEFLAGS PYTHON_PATH=$(which python3)"
+               MAKEFLAGS="$MAKEFLAGS PYTHON_PATH=/usr/bin/python3"
        else
-               MAKEFLAGS="$MAKEFLAGS PYTHON_PATH=$(which python2)"
+               MAKEFLAGS="$MAKEFLAGS PYTHON_PATH=/usr/bin/python2"
        fi
 
        export GIT_TEST_HTTPD=true