From 4a6eba9653316649f33e06238b5f7d6fd6cc285b Mon Sep 17 00:00:00 2001 From: David Wilson Date: Sun, 26 May 2019 12:06:14 +0100 Subject: [PATCH] issue #587: use deadsnakes PPA Python because VSTS version is junk --- .ci/azure-pipelines-steps.yml | 22 +++++++++++++++------- .ci/prep_azure.py | 11 ++++++----- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/.ci/azure-pipelines-steps.yml b/.ci/azure-pipelines-steps.yml index d2d48528..e880eded 100644 --- a/.ci/azure-pipelines-steps.yml +++ b/.ci/azure-pipelines-steps.yml @@ -5,17 +5,25 @@ parameters: sign: false steps: -- task: UsePythonVersion@0 - inputs: - versionSpec: '$(python.version)' - architecture: 'x64' +- script: "PYTHONVERSION=$(python.version) .ci/prep_azure.py" + displayName: "Run prep_azure.py" + +# The VSTS-shipped Pythons available via UsePythonVErsion are pure garbage, +# broken symlinks, incorrect permissions and missing codecs. So we use the +# deadsnakes PPA to get sane Pythons, and setup a virtualenv to install our +# stuff into. The virtualenv can probably be removed again, but this was a +# hard-fought battle and for now I am tired of this crap. +- script: | + sudo ln -fs /usr/bin/python$(python.version) /usr/bin/python + /usr/bin/python -m pip install -U virtualenv setuptools wheel + /usr/bin/python -m virtualenv /tmp/venv -p /usr/bin/python$(python.version) + echo "##vso[task.prependpath]/tmp/venv/bin" + + displayName: activate venv - script: .ci/spawn_reverse_shell.py displayName: "Spawn reverse shell" -- script: .ci/prep_azure.py - displayName: "Run prep_azure.py" - - script: .ci/$(MODE)_install.py displayName: "Run $(MODE)_install.py" diff --git a/.ci/prep_azure.py b/.ci/prep_azure.py index 5e445844..296355aa 100755 --- a/.ci/prep_azure.py +++ b/.ci/prep_azure.py @@ -34,14 +34,15 @@ if ci_lib.have_apt(): 'echo force-unsafe-io | sudo tee /etc/dpkg/dpkg.cfg.d/nosync', 'sudo add-apt-repository ppa:deadsnakes/ppa', 'sudo apt-get update', - 'sudo apt-get -y install python2.6 python2.6-dev libsasl2-dev libldap2-dev', + 'sudo apt-get -y install ' + 'python{pv} ' + 'python{pv}-dev ' + 'libsasl2-dev ' + 'libldap2-dev ' + .format(pv=os.environ['PYTHONVERSION']) ]) -#batches.append([ - #'pip install -r dev_requirements.txt', -#]) - if ci_lib.have_docker(): batches.extend( ['docker pull %s' % (ci_lib.image_for_distro(distro),)]