2015-04-20 9 views
20

Ich möchte jenkins so konfigurieren, dass es mit dem Aufbau beginnt, wenn ein neues Tag in einem beliebigen Zweig eines Git-Repositorys veröffentlicht wird. Wie konfiguriere ich dieses Verhalten?jenkins trigger build, wenn neues tag veröffentlicht wird

Ich bin sehr neu in Jenkins so entschuldigen Sie mich, wenn dies eine sehr grundlegende Frage sein könnte, aber ich konnte es nicht über mich selbst herausfinden.

git jenkins config

Triggerung: build trigger

Vielen Dank für jede Hilfe

Antwort

8

Was durch neuen Tag bedeuten nicht wahr? Hat es einen Vorlagennamen?

Sie können es sicher definieren in Erweiterte ->Refspec ->refs/tags/{tagname}.

Sie können sogar refs/tags/* für die Suche wirklich alle neuen Tags tun.

enter image description here

+1

Ja, ich möchte, dass jenkins Bau beginnt, wenn ein neuer Tag in der/tags Ordner freigegeben wird. Ich versuchte es mit dem Hinzufügen von/tags/* zum Branchen-Spezifizierer, aber es funktionierte nicht für mich – Kingalione

+0

Bitte zeigen Sie hier den Screenshot Ihrer Konfiguration – stanjer

+0

Ich habe meinen Beitrag aktualisiert. – Kingalione

16

Set Refspec zu:+refs/tags/*:refs/remotes/origin/tags/*

Zweig Spezifizierer:**

Unter Build Check Bauen wird ausgelöst, wenn ein Wechsel auf GitHub gedrückt wird

+1

Sie haben die Sterne für die Refspec vergessen: + refs/tags/*: refs/remotes/origin/tags/*. Auch der Branch Specifier (**) hat nicht geholfen, aber "refs/tags/*" hat es geschafft. Jetzt wird es nur für getaggte Commits ausgelöst. – Antebios

+1

Ich stehe korrigiert: Zweigspezifizierer muss '**' sein. Lass mich erklären, warum: Wenn du ein Commit gemacht hast, hat Jenkins Job den Repo abgefragt, dann hast du ihn getaggt ... Jenkins wird die Änderung nicht erkennen. Wenn Sie den Zweigspezifizierer als "**" verlassen haben und dann denselben Prozess ausgeführt haben, wird Ihr neuer Tag auch dann erkannt, wenn kein neuer Commit eingeführt wurde. SO, Benutzer "albertski" hatte fast die richtige Antwort, fügen Sie einfach die ASTERISK nach "Tags /". – Antebios

+0

@Antebios Danke, ich hatte tatsächlich Sternchen, aber das ist ein besonderes Zeichen für StackOverflow. Ich habe \ hinzugefügt, um zu verhindern, dass es entfernt wird. – albertski

3

Bitte beachten Sie, dass die Ansatz in the answer provided by stanjer macht Jenkins Trigger-Builds nicht bei neuen Tags, wenn sie auf Commits zeigen, die zuvor erstellt wurden. Beispiel: Sie taggen Release v1.0.0 (damit jenkins diese Version bereitstellen kann), dann müssen Sie in der Zukunft auf Version 1.0.0 zurücksetzen, indem Sie das Commit erneut markieren, aber mit v1.0.0-Rollback wird Jenkins Ihre Version nicht bereitstellen Rollback, weil es den Hash prüft, auf den das Tag zeigt, nicht den Hash des Tags selbst.

Zusammenfassend, jenkins wird nur neue Tags erstellen, wenn sie auf Commits zeigen, die noch nicht markiert sind, und dies ist derzeit nicht änderbar.

Es wäre toll, wenn man Jenkins als CD-Tool verwenden könnte, das mit Tags für Deploys und Rollbacks arbeitet.

Mehr Infos hier https://groups.google.com/forum/#!msg/jenkinsci-users/mYxtDNMz1ZI/xbX9-xM9BQAJ

+1

Es gibt Fortschritte dabei: https://github.com/jenkinsci/github-branch-source-plugin/pull/158/ sieht ziemlich nah an der Zusammenführung. – Andrew

Verwandte Themen