2013-07-30 3 views
7

Ich benutze Travis CI, um mein Python-Projekt zu erstellen. Ich möchte mein Projekt gegen verschiedene Python-Versionen testen, habe dann aber ein Skript, das nur dann ausgeführt wird, wenn alle erfolgreich sind.Kann ich in Travis CI ein Skript ausführen, nachdem alle meine Build-Matrix erfolgreich war?

Zum Beispiel ist dies travis.yml nicht die Arbeit machen, da der after_success Teil läuft nach jedem der Python baut:

language: python 
python: 
    - '2.7' 
    - '3.2' 
script: 
    - python setup.py test 
after_success: 
    - # this runs both on 2.7 and 3.2 

Gibt es eine Möglichkeit, dies zu tun?

Antwort

1

Wir arbeiten an so etwas, aber leider ist es momentan nicht direkt von Travis möglich.

Sie könnten hierfür Webhooks verwenden, die eine Anfrage an eine URL für Sie stellen würden. Je nachdem, was Sie benötigen, kann dies für Sie arbeiten.

+1

Danke Henrik! Haben Sie eine Vorstellung von dem Zeitplan dafür? –

+2

Es sieht so aus, als ob es unter https://github.com/travis-ci/travis-ci/issues/929 verfolgt wird. – trask

+1

@henrikhodne Wo kann ich lesen, wie man das mit Webhooks einrichtet? –

0

Dies ist jetzt mit der Funktion Build Stages (derzeit in der Betaversion) möglich.

jobs: 
    include: 
    - stage: deploy 
     script: ./deploy 
     python: 
     - '2.7' 
     - '3.2' 

auf Ihre .travis.yml:

In Ihrem speziellen Fall würden Sie etwas wie hinzufügen.

Siehe this page für ein Beispiel.

(Hinweis: Ich habe python in der Bereitstellungsphase neu definiert, da standardmäßig der erste Wert aus der Matrix wie im Standardjob (test) definiert verwendet wird. Ich habe das nicht getestet, nehme aber an Matrix-Erweiterung funktioniert in Build-Stufen.)