根据条件安装依赖项

时间:2016-07-25 13:23:35

标签: python bash continuous-integration containers travis-ci

我使用Travis-ci.org作为开发一些Python包的持续集成服务器。我想有条件地从PyPi服务器安装项目依赖项。来自master分支的构建应该从真实的PyPI服务器安装依赖项,而来自其他分支的构建应该从TestPyPI安装依赖项。

我尝试使用外部bash脚本中的TRAVIS_BRANCH环境变量,但没有成功。任何帮助将不胜感激。

.travis.yml

language: python
  python:
    - "2.7"

install:
    - ~/install_dependencies.sh

script:
    - python runtests.py --with-coverage  --cover-package=package
    - python setup.py test
    - python setup.py sdist --format zip

after_success:
    coveralls

install_dependencies.sh

#!/usr/bin/env bash
if [ "${TRAVIS_BRANCH}" = "master" ]; then
    pip install -r requirements.txt
    pip install cloudshell-automation-api>=7.0.0.0,<7.1.0.0
else
    pip install -r requirements.txt --index-url https://testpypi.python.org/simple
    pip install cloudshell-automation-api>=7.0.0.0,<7.1.0.0 --index-url https://testpypi.python.org/simple
fi

pip install -r test_requirements.txt
pip install coveralls

谢谢!

1 个答案:

答案 0 :(得分:0)

问题在于从.travis.yml执行Bash脚本。 它需要像这样执行:

bash ./install_dependencies.sh

下面的文件工作正常:

<强> .travis.yml

language: python
python:
    - "2.7"

install:
    - bash ./install_dependencies.sh

script:
    - python runtests.py --with-coverage  --cover-package=package
    - python setup.py test
    - python setup.py sdist --format zip

after_success:
    coveralls