2014-01-23 11 views
33

Hier ist meine aktuelle Jenkins Setup für ein Projekt:Wie von Gebäude in Jenkins git branch auszuschließen

  • einen Job alle Entwicklung betreibt Niederlassungen
  • ein Job alle Anfragen
  • einen Job ziehen läuft
  • läuft nur der Master Zweig
  • ein Job nur die automatische Freigabe macht, wenn Meister geht

Dieses Setup ermöglicht mir eine kontinuierliche automatische Lieferung sowie eine konstante Rückmeldung während der Entwicklung. Die ersten 3 Jobs führen auch alle Tests und Coverage Reports durch.

Das Problem ist, dass ich keinen Weg finden konnte, den Master-Zweig vom Job "alle Entwicklungszweige" auszuschließen. Es erstellt unnötigerweise zweimal Master, wenn ich eine Pull-Anforderung zusammenführe.

Kann jemand einen Zweig von der Arbeit in Jenkins ausschließen?

ps: Ich benutze die Git und die Github-Plugins. Mein Projekt ist auf Github gespeichert.

+0

Arbeitslösung Siehe: http://stackoverflow.com/questions/17155249/jenkins-gerrit-trigger-on-all-branches-except-master –

Antwort

56

Sie können die Strategie "Inverse" für das Targeting von Zweigstellen auswählen.

Check out Jenkins Job-Konfiguration,

  • "Source Code Management" Abschnitt (wählen Sie "Git")
  • Weitere Behaviors
  • Klick Schaltfläche "Hinzufügen"
  • wählen „Strategie für die Wahl, was zu bauen "
  • Wählen Sie" Inverse "Strategie in der Combo-Box.

(Vergessen Sie nicht, von "Master" zu bauen "Branches" Textfeld zu füllen)

Siehe auch Befestigungs Screenshot Bild:


enter image description here

+2

Ich frage mich, tat diese Arbeit für Sie?Denn anscheinend ist die [inverse Strategie im github plugin unterbrochen] (http://stackoverflow.com/questions/16323749/jenkins-github-plugin-inverse-branches). –

+1

@ marc.guenther Natürlich hat es damals für mich funktioniert. – kyanny

+0

@kyanny funktioniert es immer noch nicht für mich. Hast du jemals eine Lösung dafür bekommen? –

12

Sie können Verwenden Sie :^(?!.*master).*$ als Zweigspezifizierer in Jenkins und alle Zweige außer Master werden erstellt. Siehe Antwort: https://stackoverflow.com/a/18709097/444639

+1

Das funktionierte für mich, die Top-Antwort nicht. –

+0

Dies baut auch Tags wie "refs/tags/2018.02.14", was wahrscheinlich nicht erwünscht ist. – styfle

1

Sie können Repository verwenden, Filtern nach Name (Platzhalter). Hier nur angeben:^(?!. Master). $. skipmaster1

oder können Sie Filterzweig verwenden Wildcard und verstehen sich inklusive Master dort: skipmaster2 wie es erfolgreich durchsucht, aber später entfernt von Organisationsordner Scan, falls Sie GitHub oder bitbucket Teamprojekt verwenden. enter image description here