From 877705ca42937bfc9759facfa91ac764a779a23e Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 22 Feb 2019 01:28:53 +0100 Subject: [PATCH 1/6] ci: Travis: dist=xenial --- .travis.yml | 36 ++++++++++++++++++------------------ travis_install.sh | 33 --------------------------------- 2 files changed, 18 insertions(+), 51 deletions(-) delete mode 100755 travis_install.sh diff --git a/.travis.yml b/.travis.yml index eb9aa876..f1033d04 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,11 @@ +dist: xenial language: python -sudo: true python: - 2.7 - 3.4 - 3.5 - 3.6 + - 3.7 env: - JEDI_TEST_ENVIRONMENT=27 @@ -12,16 +13,11 @@ env: - JEDI_TEST_ENVIRONMENT=35 - JEDI_TEST_ENVIRONMENT=36 -addons: - apt: - packages: - # Required to properly create a virtual environment with system Python 3.4. - - python3.4-venv - matrix: allow_failures: - python: pypy - env: TOXENV=sith + - python: 3.7 include: - python: 3.6 env: @@ -32,20 +28,24 @@ matrix: # For now ignore pypy, there are so many issues that we don't really need # to run it. #- python: pypy - - python: "nightly" - env: - - JEDI_TEST_ENVIRONMENT=36 -before_install: - - ./travis_install.sh - # Need to add the path to the Python versions in the end. This might add - # something twice, but it doesn't really matter, because they are appended. - - export PATH=$PATH:/opt/python/3.5/bin - # 3.6 was not installed manually, but already is on the system. However - # it's not on path (unless 3.6 is selected). - - export PATH=$PATH:/opt/python/3.6/bin install: - pip install --quiet tox-travis script: + - | + set -x + test_env_version=${JEDI_TEST_ENVIRONMENT:0:1}.${JEDI_TEST_ENVIRONMENT:1:1} + if [ "$TRAVIS_PYTHON_VERSION" != "$test_env_version" ]; then + python_bin=python$test_env_version + if ! which $python_bin; then + # Only required for JEDI_TEST_ENVIRONMENT=34. + download_name=python-$test_env_version + wget https://s3.amazonaws.com/travis-python-archives/binaries/ubuntu/16.04/x86_64/$download_name.tar.bz2 + sudo tar xjf $download_name.tar.bz2 --directory / opt/python + ln -s "/opt/python/${test_env_version}/bin/python" /home/travis/bin/$python_bin + fi + $python_bin --version + fi + set +x - tox after_script: - | diff --git a/travis_install.sh b/travis_install.sh deleted file mode 100755 index 2c5eb944..00000000 --- a/travis_install.sh +++ /dev/null @@ -1,33 +0,0 @@ -#! /usr/bin/env bash -set -e - -# 3.6 is already installed on Travis but not as root. This is problematic for -# our virtualenv tests because we require the Python used to create a virtual -# environment to be owned by root (or to be in a safe location which is not the -# case here). -sudo chown root: /opt/python/3.6/bin/python -sudo chown root: /opt/python/3.6.3/bin/python - -if [[ $JEDI_TEST_ENVIRONMENT == "35" ]]; then - VERSION=3.5 - DOWNLOAD=1 -fi - -if [[ -z $VERSION ]]; then - echo "Environments should already be installed" - exit 0 -fi - -PYTHON=python-$VERSION - -# Check if the desired Python version already exists. -$PYTHON --version && exit 0 || true - -if [[ $DOWNLOAD == 1 ]]; then - # Otherwise download and install. - DOWNLOAD_NAME=python-$VERSION - wget https://s3.amazonaws.com/travis-python-archives/binaries/ubuntu/14.04/x86_64/$DOWNLOAD_NAME.tar.bz2 - sudo tar xjf $DOWNLOAD_NAME.tar.bz2 --directory / -fi - -echo "Successfully installed environment." From 4292129652d6ad1fa31ac3c64a3b6fe173965eec Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Sat, 23 Feb 2019 10:14:13 +0100 Subject: [PATCH 2/6] Activate pyenv version --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f1033d04..01721591 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,12 +36,16 @@ script: test_env_version=${JEDI_TEST_ENVIRONMENT:0:1}.${JEDI_TEST_ENVIRONMENT:1:1} if [ "$TRAVIS_PYTHON_VERSION" != "$test_env_version" ]; then python_bin=python$test_env_version - if ! which $python_bin; then + python_path="$(which $python_bin)" + if [ -z "$python_path" ]; then # Only required for JEDI_TEST_ENVIRONMENT=34. download_name=python-$test_env_version wget https://s3.amazonaws.com/travis-python-archives/binaries/ubuntu/16.04/x86_64/$download_name.tar.bz2 sudo tar xjf $download_name.tar.bz2 --directory / opt/python ln -s "/opt/python/${test_env_version}/bin/python" /home/travis/bin/$python_bin + elif [ "${python_path#/opt/pyenv/shims" != "$python_path" ]; then + # Activate pyenv version (required with JEDI_TEST_ENVIRONMENT=35). + pyenv local "$TRAVIS_PYTHON_VERSION:$test_env_version" fi $python_bin --version fi From 8e2e73fd8185e761370e42fa7e31326dc0ad7428 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Sat, 23 Feb 2019 10:55:18 +0100 Subject: [PATCH 3/6] fixup! Activate pyenv version [skip appveyor] --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 01721591..c49d2626 100644 --- a/.travis.yml +++ b/.travis.yml @@ -43,9 +43,9 @@ script: wget https://s3.amazonaws.com/travis-python-archives/binaries/ubuntu/16.04/x86_64/$download_name.tar.bz2 sudo tar xjf $download_name.tar.bz2 --directory / opt/python ln -s "/opt/python/${test_env_version}/bin/python" /home/travis/bin/$python_bin - elif [ "${python_path#/opt/pyenv/shims" != "$python_path" ]; then + elif [ "${python_path#/opt/pyenv/shims}" != "$python_path" ]; then # Activate pyenv version (required with JEDI_TEST_ENVIRONMENT=35). - pyenv local "$TRAVIS_PYTHON_VERSION:$test_env_version" + pyenv local "${TRAVIS_PYTHON_VERSION}:${test_env_version}" fi $python_bin --version fi From 1411fc11ee7f29718e54a1d552c26233f6fba0ad Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Sat, 23 Feb 2019 11:16:50 +0100 Subject: [PATCH 4/6] pyenv-system --- .travis.yml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index c49d2626..3d622040 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,7 +32,8 @@ install: - pip install --quiet tox-travis script: - | - set -x + # Setup/install Python for $JEDI_TEST_ENVIRONMENT. + set -ex test_env_version=${JEDI_TEST_ENVIRONMENT:0:1}.${JEDI_TEST_ENVIRONMENT:1:1} if [ "$TRAVIS_PYTHON_VERSION" != "$test_env_version" ]; then python_bin=python$test_env_version @@ -44,12 +45,18 @@ script: sudo tar xjf $download_name.tar.bz2 --directory / opt/python ln -s "/opt/python/${test_env_version}/bin/python" /home/travis/bin/$python_bin elif [ "${python_path#/opt/pyenv/shims}" != "$python_path" ]; then - # Activate pyenv version (required with JEDI_TEST_ENVIRONMENT=35). - pyenv local "${TRAVIS_PYTHON_VERSION}:${test_env_version}" + # Activate pyenv version (required with JEDI_TEST_ENVIRONMENT=36). + pyenv local "system:${test_env_version}" fi $python_bin --version + python_ver=$($python_bin -c 'import sys; print("%d%d" % sys.version_info[0:2])') + if [ "$JEDI_TEST_ENVIRONMENT" != "$python_ver" ]; then + echo "Unexpected Python version for $JEDI_TEST_ENVIRONMENT: $python_ver" + set +ex + exit 2 + fi fi - set +x + set +ex - tox after_script: - | From 6a67d2dad2d5b1fbbae7bc2fdacc6824b2d8b38a Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Sat, 23 Feb 2019 11:49:00 +0100 Subject: [PATCH 5/6] pyenv-whence --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3d622040..fa7f6839 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,7 +46,8 @@ script: ln -s "/opt/python/${test_env_version}/bin/python" /home/travis/bin/$python_bin elif [ "${python_path#/opt/pyenv/shims}" != "$python_path" ]; then # Activate pyenv version (required with JEDI_TEST_ENVIRONMENT=36). - pyenv local "system:${test_env_version}" + pyenv_bin="$(pyenv whence --path "$python_bin" | head -n1)" + ln -s "$pyenv_bin" /home/travis/bin/$python_bin fi $python_bin --version python_ver=$($python_bin -c 'import sys; print("%d%d" % sys.version_info[0:2])') From 901182bcfc526c3544581f44896fe7eeb25ccfb8 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 24 May 2019 16:07:53 +0200 Subject: [PATCH 6/6] include py38-dev --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fa7f6839..69ea2cd2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ matrix: allow_failures: - python: pypy - env: TOXENV=sith - - python: 3.7 + - python: 3.8-dev include: - python: 3.6 env: @@ -28,6 +28,9 @@ matrix: # For now ignore pypy, there are so many issues that we don't really need # to run it. #- python: pypy + - python: 3.8-dev + env: + - JEDI_TEST_ENVIRONMENT=36 install: - pip install --quiet tox-travis script: