Wie bekomme ich in Hudson die git commit sha des aktuellen Builds?
Wir sind mit Hudson mit git. Wir haben einen build - /test-server, die unser Projekt kompiliert und dann einen QA-server, auf die wir bereitstellen müssen.
Wollen wir die aktuellen integrierten git commit sha und es verwenden, um ziehen Sie die entsprechenden commit für die Bereitstellung auf unserem QA server.
Leider scheint es, dass die hudon git-plugin wird nicht die git-commit-sha in den Umgebungsvariablen (wie das svn-plugin in SVN_REVISION zum Beispiel). Wie können wir dies umgehen?
Zeiger/Beispiele, die hilfreich sein, wie ich bin ein hudson noob.
Dank
Kommentar zu dem Problem
Verwenden GIT_COMMIT Umgebungsvariable
InformationsquelleAutor der Frage SharePoint Newbie | 2011-04-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich Hinzugefügt, um Post-build-Befehl:
Im log fand ich alle environment-Variablen. Einige von Ihnen sind:
InformationsquelleAutor der Antwort
Fügen Sie einen zusätzlichen Schritt, um Ihre Hudson-Job, veröffentlichen Sie die neu erstellte git commit, um eine zweite repo auf dem build - /test-server.
Das zweite repo kann ein post-receive hook-schieben automatisch sagte Begehen, um den QA-server.
Wenn Sie nicht möchten, dass zusätzliche Schicht der Dereferenzierung, dann brauchen Sie, um in Ihrem zusätzliche, Schritt, git-Befehle zum Abfragen der SHA1-HEAD:
git describe
odergit rev-parse
.Sie haben andere git-Optionen in der Frage "Sparen Git SHA1-wenn Gebäude mit Hudson ähnlich wie die CVS_BRANCH tag für CVS."
InformationsquelleAutor der Antwort VonC
Wahrscheinlich ziemlich spät, aber Sie können dies tun auf jenkins über die API:
Dieser gibt ein JSON-Objekt, das Sie analysieren können. Sie können auch die Baum-option erhalten Sie eine genauere JSON-string. So etwas wie dieses:
Nun können Sie mit awk zu analysieren und die SHA1-git branch.
InformationsquelleAutor der Antwort Somaiah Kumbera
Dies ist anscheinend nicht möglich mit der aktuellen version von git. Wir sind stattdessen schreiben aktuelle Kopf in eine Datei und speichern Sie es als ein Artefakt. Wir können später biegen Sie es und Holen Sie sich die commit-id entspricht einem bestimmten build.
InformationsquelleAutor der Antwort SharePoint Newbie
Es ist schon eine gute Lösung, in eine ausführbare shell. Diese Lösung hat den Vorteil, dass Sie es tun können, als Teil des build-phase über Skripten und nicht in den post-build-phase.Das ist unten erklärt. Sehen https://stackoverflow.com/a/11837662/5842403
In der Tat, können Sie Zugriff auf die Informationen, die vor der build-phase fertig mit Lesen/Parsen ../builds/$BUILD_NUMBER/changelog.xml Datei in den Ordner. Diese Datei wird erstellt, mit der SVN - /GIT-commit auslösen und nicht mit dem Ende des build-oder post_build phase. Das bedeutet, Sie analysieren kann es zu Beginn der build-phase, der die gleiche Arbeit mit einem Skript und fügen Sie die Daten in env-Variablen.
InformationsquelleAutor der Antwort Joniale
Jenkins Version: 2.46.2
Git-Client: 2.4.5
Den folgenden
GIT
Variablen sind verfügbar durch ausführen derenv
Befehl von einemshell
.So, Spritzen Sie zurück in den Job ' s environment-Variablen fügen Sie das Wort
env
zu denScript Content
Abschnitt...tl;dr
Job > Configure > Build Environment > Inject environment variables to the build process > Script Content
InformationsquelleAutor der Antwort Nick Grealy
In der Jenkin job, können Sie verwenden Sie den Befehl
Diese zurück, die ersten 7 Zeichen des SHA
Hinsichtlich
InformationsquelleAutor der Antwort Daniel Labonté
Anstatt SVN_REVISION können Sie die $GIT_COMMIT . also env $GIT_COMMIT nehmen die Letzte commit-hash von Git mittels Jenkins.
InformationsquelleAutor der Antwort Dilip