Мне нужны unittest2 и importlib для python 2.6, которые не требуются для других версий python, с которыми тестирует travis.
Есть ли способ сообщить Travis-CI, чтобы у каждой версии Python были разные файлы requirements.txt?
Мне нужны unittest2 и importlib для python 2.6, которые не требуются для других версий python, с которыми тестирует travis.
Есть ли способ сообщить Travis-CI, чтобы у каждой версии Python были разные файлы requirements.txt?
Правильный способ определить условные требования:
# requirements.txt
ordereddict; python_version == '2.6'
Да, комментарии можно использовать для указания условных требований. Если вы получаете некоторые ошибки, возможно, вы используете устаревшую версию pip.
Travis CI добавляет переменную среды с именем $TRAVIS_PYTHON_VERSION
, на которую можно ссылаться в вашем .travis.yml:
python:
- 2.6
- 2.7
- 3.2
- 3.3
- pypy
install:
- if [[ $TRAVIS_PYTHON_VERSION == 2.6 ]]; then pip install importlib unittest2; fi
- pip install -r requirements.txt
Это приведет к тому, что unittest2
и importlib
будут установлены только для Python 2.6, а требования.txt будут установлены для всех перечисленных версий. Вы можете сделать столько таких проверок, сколько необходимо. Файл .travis.yml Tornado использует его совсем немного.