Travis: anderes 'Skript' für verschiedene Zweige?

8

Ich möchte die Bereitstellung basierend auf Verzweigungen mit Travis-CI und Github einrichten.

i.e. - Wenn wir Build von develop gemacht haben - dann exec /deploy.rb mit DEV env hostname, wenn master - dann ./deploy.rb mit PROD hostname und so weiter.

Nur eine Idee, die ich gefunden habe, ist $TRAVIS_BRANC Variable zu überprüfen und dann Skript auszuführen, wie:

%Vor%

Aber diese Lösung sieht ein bisschen seltsam für mich aus. Irgendwelche anderen Möglichkeiten, das zu realisieren?

Alle Tipps / Links geschätzt.

    
setevoy 31.05.2016, 11:20
quelle

1 Antwort

10

Travis-CI erstellt immer Builds basierend auf .travis.yml in der Branche, in die Sie drängen. Als Lösung könnten Sie also verschiedene .travis.yml -Dateien in den verschiedenen Zweigen pflegen.

Wenn Sie regelmäßig zwischen den Zweigen zusammenführen, kann dies jedoch zu unbeabsichtigten Änderungen zwischen den Zweigen führen (wenn Sie die Änderungen von .travis.yml von einem Zweig zum anderen zusammenführen). Wenn dies ein Problem ist, ist Ihre Lösung wahrscheinlich sicherer.

Um sicherzustellen, dass nur bestimmte Zweige (zB develop und master ) erstellt werden, können Sie Whitelist die Zweige in Ihrem .travis.yml .

Wenn Sie Ihre vorhandene Lösung verwenden, können Sie das Skript travis.yml vereinfachen. Es ist wahrscheinlich sinnvoll, die Logik für die Auswahl des richtigen Bereitstellungsziels in Ihr ci/deploy.rb -Skript zu verschieben (oder sogar ein separates Wrapper-Skript hinzuzufügen, das Sie von .travis.yml aufrufen). Auf diese Weise haben Sie in Ihrem script nur eine .travis.yml -Zeile, die sich nicht einmal ändern muss, wenn Sie die Implementierungsziele ändern.

Alternativ können Sie, um sicherzustellen, dass Sie keine fehlerhaften Tests mit Ihrer vorhandenen Struktur haben, sogar Folgendes verwenden:

%Vor%     
Holger Just 31.05.2016, 11:27
quelle

Tags und Links