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:
Aber diese Lösung sieht ein bisschen seltsam für mich aus. Irgendwelche anderen Möglichkeiten, das zu realisieren?
Alle Tipps / Links geschätzt.
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%Tags und Links travis-ci