From 1f279deb0d46c4f7dd161945b50f6e2add85793a Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Sun, 29 Mar 2015 21:42:29 +0200 Subject: [PATCH] Use `travis_retry` in tox (via install_command), not on tox This creates a wrapper script in bin/, exports `travis_retry` (a function) into it and then injects this as `install_command` into tox.ini. Closes https://github.com/pytest-dev/pytest-django/pull/224 --- .travis.yml | 17 +++++++++++++++-- generate_configurations.py | 17 +++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 70f637721..3d048edfe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,5 +45,18 @@ matrix: - env: TESTENV=python3.4-master-sqlite - env: TESTENV=python3.4-master-sqlite_file install: - - travis_retry pip install tox -script: travis_retry tox -e $TESTENV \ No newline at end of file + # Create pip wrapper script, using travis_retry (a function) and + # inject it into tox.ini. + - mkdir -p bin + - PATH=$PWD/bin:$PATH + - printf '#!/bin/sh\n' > bin/travis_retry_pip + - declare -f travis_retry >> bin/travis_retry_pip + - printf '\necho "Using pip-wrapper.." >&2\ntravis_retry pip "$@"' >> bin/travis_retry_pip + - chmod +x bin/travis_retry_pip + - sed -i.bak 's/^\[testenv\]/\0\ninstall_command = travis_retry_pip install {opts} {packages}/' tox.ini + - diff tox.ini tox.ini.bak && false || true + - sed -i.bak 's/whitelist_externals =/\0\n travis_retry_pip/' tox.ini + - diff tox.ini tox.ini.bak && false || true + + - pip install tox +script: tox -e $TESTENV \ No newline at end of file diff --git a/generate_configurations.py b/generate_configurations.py index a8c50a9c5..3a58737f7 100755 --- a/generate_configurations.py +++ b/generate_configurations.py @@ -227,8 +227,21 @@ def make_travis_yml(envs): allow_failures: %(allow_failures)s install: - - travis_retry pip install tox - script: travis_retry tox -e $TESTENV + # Create pip wrapper script, using travis_retry (a function) and + # inject it into tox.ini. + - mkdir -p bin + - PATH=$PWD/bin:$PATH + - printf '#!/bin/sh\\n' > bin/travis_retry_pip + - declare -f travis_retry >> bin/travis_retry_pip + - printf '\\necho "Using pip-wrapper.." >&2\\ntravis_retry pip "$@"' >> bin/travis_retry_pip + - chmod +x bin/travis_retry_pip + - sed -i.bak 's/^\[testenv\]/\\0\\ninstall_command = travis_retry_pip install {opts} {packages}/' tox.ini + - diff tox.ini tox.ini.bak && return 1 || true + - sed -i.bak 's/whitelist_externals =/\\0\\n travis_retry_pip/' tox.ini + - diff tox.ini tox.ini.bak && return 1 || true + + - pip install tox + script: tox -e $TESTENV """).strip("\n") testenvs = '\n'.join(' - TESTENV=%s' % testenv_name(env) for env in envs) checkenvs = '\n'.join(' - TESTENV=checkqa-%s' %