У меня есть набор сценариев в .travis.yml
, который на данный момент отлично работает
...
install:
- scripts/travis/install_deps.sh
- virtualenv -p /opt/pyenv/versions/3.6/bin/python3.6 venv
- source venv/bin/activate
- pip install -r requirements.txt
before_script:
- scripts/test.sh
script:
- scripts/travis/build.sh
after_success:
- deactivate
- virtualenv -p /opt/pyenv/versions/2.7/bin/python2.7 venv
- source venv/bin/activate
- pip install -r requirements.txt
...
Однако я бы хотел немного его почистить, чтобы было меньше повторений, чтобы .travis.yml
выгляделокак
...
install:
- scripts/travis/install_deps.sh
- export PYTHON_VERSION=3.6
- scripts/travis/install_python_deps.sh
before_script:
- scripts/test.sh
script:
- scripts/travis/build.sh
after_success:
- export PYTHON_VERSION=2.7
- scripts/travis/install_python_deps.sh
...
, где install_python_deps.sh
выглядит как
#!/usr/bin/env bash
set -e
if [ ! -z "$VIRTUAL_ENV" ]; then deactivate; fi
virtualenv -p "/opt/pyenv/versions/${PYTHON_VERSION}/bin/python${PYTHON_VERSION}" venv
source venv/bin/activate
pip install -r requirements.txt
Проблема возникает, когда это выполняется в travis. Сборка прерывается, когда не найден test.sh
, который запускает скрипт на языке Python, использующий модуль, объявленный в requirements.txt
. Будем весьма благодарны за любые указания относительно того, почему это происходит.