2012-10-29 33 views
6

有沒有一種方法可以配置travis-ci使Python版本依賴於某個env var?根據env var製作Python版本(使用travis-ci)

請考慮以下travis.yml配置:

language: python 
python: 
    - "2.5" 
    - "2.6" 
    - "2.7" 
env: 
    - DJANGO=1.3.4 
    - DJANGO=1.4.2 
    - DJANGO=https://github.com/django/django/zipball/master 
install: 
    - pip install -q Django==$DJANGO --use-mirrors 
    - pip install -e . --use-mirrors 
script: 
    - python src/runtests.py 

其中的Django 1.3(DJANGO=1.3.4)和1.4(DJANGO=1.4.2)我也想測試針對的Django的最新開發版本(DJANGO=https://github.com/django/django/zipball/master),這基本上是Django的1.5 。

我看到的問題是,travis-ci將自動運行與所有指定Python版本的集成。然而,Django 1.5不再支持Python 2.5。是否有可能忽略它的Django開發版本,這樣我得到整合這樣才:

UPDATE:

這裏有一個直播e的鏈接xample基於奧迪的答案,我已經成功使用了幾個月: https://github.com/deschler/django-modeltranslation/blob/master/.travis.yml

+0

注意:在上面的例子中,必須使用' - DJANGO = Django == 1.3.4'和'-pip install -q $ DJANGO --use-mirrors'來從tarballs直接安裝才能正常工作。 – Mathijs

回答

12

您可以指定要從構建矩陣中排除的配置(即,你不想測試的組合)。

添加到您的.travis.yml

matrix: 
    exclude: 
    - python: "2.5" 
    env: DJANGO=https://github.com/django/django/zipball/master 

注:完全匹配將被排除在外。

查看build documentation (section The Build Matrix)瞭解更多信息。

+2

完美,正是我所期待的。非常感謝。 –

相關問題