Skip to content

Commit 1f279de

Browse files
committed
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 #224
1 parent 85bc9d5 commit 1f279de

File tree

2 files changed

+30
-4
lines changed

2 files changed

+30
-4
lines changed

.travis.yml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,18 @@ matrix:
4545
- env: TESTENV=python3.4-master-sqlite
4646
- env: TESTENV=python3.4-master-sqlite_file
4747
install:
48-
- travis_retry pip install tox
49-
script: travis_retry tox -e $TESTENV
48+
# Create pip wrapper script, using travis_retry (a function) and
49+
# inject it into tox.ini.
50+
- mkdir -p bin
51+
- PATH=$PWD/bin:$PATH
52+
- printf '#!/bin/sh\n' > bin/travis_retry_pip
53+
- declare -f travis_retry >> bin/travis_retry_pip
54+
- printf '\necho "Using pip-wrapper.." >&2\ntravis_retry pip "$@"' >> bin/travis_retry_pip
55+
- chmod +x bin/travis_retry_pip
56+
- sed -i.bak 's/^\[testenv\]/\0\ninstall_command = travis_retry_pip install {opts} {packages}/' tox.ini
57+
- diff tox.ini tox.ini.bak && false || true
58+
- sed -i.bak 's/whitelist_externals =/\0\n travis_retry_pip/' tox.ini
59+
- diff tox.ini tox.ini.bak && false || true
60+
61+
- pip install tox
62+
script: tox -e $TESTENV

generate_configurations.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,21 @@ def make_travis_yml(envs):
227227
allow_failures:
228228
%(allow_failures)s
229229
install:
230-
- travis_retry pip install tox
231-
script: travis_retry tox -e $TESTENV
230+
# Create pip wrapper script, using travis_retry (a function) and
231+
# inject it into tox.ini.
232+
- mkdir -p bin
233+
- PATH=$PWD/bin:$PATH
234+
- printf '#!/bin/sh\\n' > bin/travis_retry_pip
235+
- declare -f travis_retry >> bin/travis_retry_pip
236+
- printf '\\necho "Using pip-wrapper.." >&2\\ntravis_retry pip "$@"' >> bin/travis_retry_pip
237+
- chmod +x bin/travis_retry_pip
238+
- sed -i.bak 's/^\[testenv\]/\\0\\ninstall_command = travis_retry_pip install {opts} {packages}/' tox.ini
239+
- diff tox.ini tox.ini.bak && return 1 || true
240+
- sed -i.bak 's/whitelist_externals =/\\0\\n travis_retry_pip/' tox.ini
241+
- diff tox.ini tox.ini.bak && return 1 || true
242+
243+
- pip install tox
244+
script: tox -e $TESTENV
232245
""").strip("\n")
233246
testenvs = '\n'.join(' - TESTENV=%s' % testenv_name(env) for env in envs)
234247
checkenvs = '\n'.join(' - TESTENV=checkqa-%s' %

0 commit comments

Comments
 (0)