2016-07-25 13 views
1

Ich verwende Travis-ci.org als Continuous Integration Server, der einige Python-Pakete entwickelt. Ich möchte Projektabhängigkeiten vom PyPi-Server bedingt installieren. Builds von Master-Zweig sollten Abhängigkeiten vom echten PyPI-Server installieren, während Builds von anderen Zweigen Abhängigkeiten von TestPyPI installieren sollten.Abhängigkeiten basierend auf der Bedingung installieren

Ich versuchte TRAVIS_BRANCH Umgebungsvariable aus einem externen Bash-Skript zu verwenden, aber ohne Erfolg. Jede Hilfe wäre willkommen.

.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 

Dank!

+0

kein bash Kerl, aber sind Sie nicht ein '== 'anstelle von' = 'in deiner if-Anweisung? –

+0

@Oasiscircle mich weder. Aber es scheint, dass beide gleich funktionieren. In meinem Fall ist das Problem mit dem Verzeichnis. Ich werde in Kürze eine Antwort posten –

Antwort

0

Das Problem war mit der Ausführung des Bash-Skripts von der .travis.yml. Es muss wie folgt ausgeführt:

bash ./install_dependencies.sh 

Below-Datei funktioniert:

.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