Wie konfiguriere ich Travis-CI, um Pull Requests & amp; fusioniert zu Master ohne Redundanz
Um es in "BDD" Bedingungen:
Hintergrund:
Gegeben bin ich einen Beitrag zu einer GH-repoWenn ich erstellen Sie eine pull-Anforderung
Dann Travis aufbauen sollte, die neueste commitWenn ich push-to-einen vorhandenen pull-request
Dann Travis aufbauen sollte, die neueste commitWenn ich führen Sie eine pull-Anforderung zu meistern
Dann Travis aufbauen sollte master
Ich war verwirrt von Travis-CI "schiebt bauen" und "bauen PRs" - Einstellungen, wie:
- Die Aktivierung bewirkt, dass jeder Pull-Request erstellt werden zweimal von Travis
- einmal für die commit auf diesen Zweig
- und wieder für den merge-commit, branch in das Ziel
- Aktivieren Sie einfach "build PRs" Ursachen PRs gebaut werden, aber nicht das Ergebnis in der post-merge-builds (d.h. auf master).
- Aktivieren "drückt" brute-force-erfüllt die oben genannten Kriterien durch den Bau alle drückt auf das repo. Sie können versuchen, zu finagle Dinge durch weiß & black-listing-Filialen, aber das wird wohl beißen, es sei denn, Sie sind streng diszipliniert mit eigenen Namen.
Dies erklärt sich mehr in Travis-CI docs und GH Ausgabe #3241.
Weiss jemand eine Konfiguration, die erfüllt die genannten Kriterien?
InformationsquelleAutor der Frage Brian Gerstle | 2015-08-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schließlich fand ich ein anderes GH-Problem ( #2111 ), das gab mir die Idee zu versuchen, so dass beide PRs & drückt, aber mit einer whitelist zu beschränken, stößt auf einen bestimmten Zweig. Dies scheint zu die Kriterien für meinen workflow. Hier ist, was ich getan habe:
.travis.yml
zu white-Listemaster
- Zweig (d.h. nur das zu bauen, schiebt master):Testen, indem Sie einen PR mit der
.travis.yml
ändernund ein weiteres PR mit einigen leeren verpflichtet zu überprüfen, ob es Werke für Gabeln zu.Überprüfen erfolgreichen merge-commit erstellen von master.
InformationsquelleAutor der Antwort Brian Gerstle
Können Sie neben workflow, wenn Sie testen möchten, nicht nur
master
Branche aber auch einige andere Branchen auch:Hinzufügen
branches:except
Richtlinie, um Ihre.travis.yml
:In dieser Konfiguration:
feature-A
löst die bauenpr.feature-A
wird nicht ausgelöst, die bauenpr.feature-A
verwendet wird, in der geöffneten pull-request erstellen Sie dann ausgelöst wird,Workflow-Beispiel
wip.feature-A
alle verpflichten sich zu dieser Niederlassung löst die bauenmaster
können Sie es umbenennen vonwip.feature-A
zupr.feature-A
- und open-pull-requestpr.feature-A
Auf alle der oben genannten Schritte, nur ein build ausgelöst werden.
InformationsquelleAutor der Antwort
Nur in travis docs
Hinzufügen .travis.yml
alternativ:
InformationsquelleAutor der Antwort grosser
Den whitelist-Ansatz beschrieben, in der akzeptierten Antwort hat einige erhebliche Einschränkungen. Insbesondere wird nicht unterstützt, nicht Redundant Gebäude beliebigen Zweige ohne Eröffnung eines PR.
Öffnete ich ein Problem, Fragen, für eine bessere Lösung.
InformationsquelleAutor der Antwort John