2014-03-14 4 views
9

Gibt es eine Möglichkeit IF/ELSE in der Datei .yml zu verwenden?IF/ELSE-Anweisung innerhalb der .yml-Datei

Ich wollte definieren env Variablen if es ist nicht eine Pull-Anfrage.

So etwas wie diese Idee:

env: 
    matrix: 
    if ($TRAVIS_PULL_REQUEST) { 
     - BROWSER='chrome_linux' BUILD='default' 
     - BROWSER='chrome_linux' BUILD='nocompat' 
     - BROWSER='firefox_linux' BUILD='default' 
     - BROWSER='firefox_linux' BUILD='nocompat' 
    } 
    else { 
    - BROWSER='phantomjs' BUILD='default' 
    } 

Ist das möglich?

Antwort

5

Ich glaube nicht, dass dieser spezielle Fall funktionieren würde. TRAVIS_PULL_REQUEST ist auf dem Build Worker definiert, während die Build-Matrix erstellt werden muss, bevor der Job an den Worker übergeben wird.

Ich schlage vor, einen Wrapper-Skript zu schreiben, die TRAVIS_PULL_REQUEST und legen Sie die Umgebungsvariablen richtig, oder etwas tun, wie dies in before_install nimmt:

[ "${TRAVIS_PULL_REQUEST}" != "false" ] && BROWSER='chrome_linux' BUILD='default' || true 
+0

Nizza bekommen ein Feedback zu diesem! Werden die 'env'-Variablen definiert und wird Travis auch separat ausgeführt, wenn ich mehrere Zeilen habe? – Sergio

+0

Der Abschnitt 'script' in' .travis.yml' ist eine einzelne Zeichenfolge oder ein Array von Zeichenfolgen, die nacheinander für jeden Job in einem Build ausgeführt werden. Globale 'env's und genau eine von' matrix.env' werden für den Job definiert. – banzaiman

Verwandte Themen