2016-07-25 162 views
1

我使用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 

谢谢!

+0

不是一个bash的家伙,但是否缺少一个'== '而不是'='在你的if语句中? –

+0

@Oasiscircle me既不。但似乎两者都是一样的。在我的情况下,问题是与目录。我会尽快发布答案 –

回答

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