Специальные требования Travis для каждой версии Python

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

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


person fakedrake    schedule 16.12.2013    source источник
comment
Вы можете изменить правильный ответ на stackoverflow.com/a/36978898/99834   -  person sorin    schedule 02.05.2016


Ответы (2)


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

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

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

person sorin    schedule 02.05.2016
comment
Вместо этого порекомендуйте эту ссылку: stackoverflow.com/a/35614580/119527 - person Jonathon Reinhart; 13.06.2017

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 использует его совсем немного.

person dirn    schedule 16.12.2013