2013-12-16 4 views
26

Мне нужно unittest2 и importlib для python 2.6, что не требуется для других версий python, с которыми тестирует travis.Особые требования Travis для каждой версии python

Есть ли способ сказать Travis-CI, чтобы иметь разные файлы требований.txt для каждой версии python?

+0

Возможно, вы захотите переключить правильный ответ на http://stackoverflow.com/a/36978898/99834 – sorin

ответ

7

Правильный способ определить conditional requirements является:

# requirements.txt 
ordereddict; python_version == '2.6' 

Дa, комментарии могут быть использованы для определения условных требований. Если вы получаете некоторые ошибки, вы можете использовать устаревшую версию pip.

+1

Вместо этого рекомендуется использовать ссылку: https://stackoverflow.com/a/35614580/119527 –

38

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, с requirements.txt устанавливаются для всех перечисленных версий. Вы можете выполнить столько проверок, сколько необходимо. Файл Tornado's .travis.yml использует его совсем немного.

Смежные вопросы