Travis CI

Travice CI ist ein hosted Continuous-Integration-Service.

Travis CI ist ein gehosteter Continous Integration Service, mit dem sich Plone-Zusatzprodukte einfach testen lassen.

Installation

  1. Travis lässt sich mit Ruby Gems installieren:

    $ gem install travis
    
  2. Damit unser Paket getestet werden kann, muss zunächst die setup.py- Datei dieses Produkts erweitert werden:

    …
    install_requires=[
        'setuptools',
        'Products.CMFPlone>=4.2',
        ],
    extras_require={
        'test': ['plone.app.testing'],
        },
    …
    
  3. Aufsetzen von Travis

    Zunächst melden Sie sich einfach mit Ihrem Github-Account an: App Authorization.

  4. Anschließend konfigurieren Sie Ihren Travis CI-Server mit einer travis.yml -Datei im Wurzelverzeichnis Ihres Repository:

    ---
    language: python
    python: '2.7'
    install:
    - mkdir -p buildout-cache/eggs
    - mkdir -p buildout-cache/downloads
    - python bootstrap.py -c travis.cfg
    - ./bin/buildout -N -t 3 -c travis.cfg
    script: ./bin/test
    

    Weitere Konfigurationsmöglichkeiten erhalten Sie in Travis CI-Konfiguration.

  5. Die Datei travis.cfg sieht dann z.B. so aus:

    [buildout]
    extends =
        http://svn.plone.org/svn/collective/buildout/plonetest/test-4.x.cfg
    
    parts = test
    
    package-name = vs.registration
    package-extras = [test]
    #test-eggs = Pillow
    
    allow-hosts +=
        code.google.com
        robotframework.googlecode.com
    
    [environment]
    ZSERVER_HOST = 0.0.0.0
    ROBOT_ZOPE_HOST = 0.0.0.0
    
    [test]
    environment = environment
    
    [test]
    eggs =
        ${buildout:package-name} ${buildout:package-extras}
        ${buildout:test-eggs}
    
    test-eggs = Pillow

    Diese Zeile sollte auskommentiert werden sofern PIL für die Tests benötigt wird.

  6. Schließlich können Sie noch ein Status-Bild in Ihre README.txt-Datei einfügen:

    .. image:: https://secure.travis-ci.org/collective/vs.registration.png
    :target: http://travis-ci.org/collective/vs.registration