2017-12-06 3 views
0

Jenkins ver. 2.73.3Benutzerinformationen aus dem Build extrahieren

Ich habe eine Beispiel-Erstellungsaufgabe, die durch ein Commit zu einem Github-Repository ausgelöst wird. Dies ist, wie die Build-Informationen aussieht:

enter image description here

Wir brauchen diesen Benutzernamen in eine separate Datei schreiben und es an einem bestimmten Ort zu speichern. Wie kann ich es erreichen?

********** Edit-1 ********** Ein Build-Schritt hinzugefügt, der einen Shell-Befehl ausführt, um die Variable GIT_COMMITTER_NAME in eine Datei zu schreiben. Dies schlägt fehl (leere Datei), aber wenn ich schreibe, sagen JENKINS_URL wird in die Datei geschrieben:

enter image description here

+0

Einige weitere Informationen erforderlich - welche OS/Dateisystem verwenden Sie? Welche Art von Job ist das - ist das ein Pipeline-Job? hast du groovy scripting oder plugins angeschaut, um einen build-schritt hinzuzufügen, um bash/batch (OS-abhängig) scripting zu erlauben? Was hast du probiert? – Jay

+0

1. Jenkins läuft auf RHEL7 2. Dies ist ein ‚free-style‘ (nicht-Pipeline) Job Die Informationen über die (Github) Benutzer, dass der Build ausgelöst bereits in den Build-Informationen widerspiegeln. Ich habe mich gefragt, wenn es einen Weg gibt, es einfach zu extrahieren. Ist ein Plugin dafür erforderlich? –

+0

Wenn Sie einen Build-Schritt "Shell ausführen" hinzufügen, können Sie auf die Umgebungsvariable GIT_AUTHOR_NAME zugreifen? "echo $ GIT_AUTHOR_NAME" - Gibt Ihnen das den Wert, nach dem Sie suchen? – Jay

Antwort

0

Ich denke, die GitHub-Plugin nicht gesetzt ist, wird standardmäßig die Variablen wie GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL etc Ausgehend von this Antwort, fuhr ich fort mit der Verwendung der Platzhalter der 'pretty option' von git show Befehl. Ich habe den folgenden Befehl in dem Schritt Build 'Ausführen von Shell von Jenkins Job:

git show -s --pretty='GIT_AUTHOR_NAME='%aN%n'GIT_AUTHOR_EMAIL='%aE%n'GIT_COMMITTER_NAME='%cN%n'GIT_COMMITTER_EMAIL='%cE >> github.properties 

Der Ausgang:

GIT_AUTHOR_NAME=LastName FirstName 
[email protected] 
GIT_COMMITTER_NAME=GitHub Enterprise 
[email protected] 
0

Statt echo $variable Name env in Shell ausführen, es wird Ihnen alle Umgebungsvariablen Zum Zeitpunkt der Ausführung und dann können Sie die richtige Variable auswählen. (Von Gitlab zu Jenkins seine $gitlabUserName)

+0

Sie meinen, so etwas wie env echo "GIT_AUTHOR_NAME = \" $ GIT_AUTHOR_NAME \ ""> github.properties Erste leerer Name –

+1

nicht, in Ihrer ausführen Shell-Box hält nur 'env' und drücken Sie den Code in Git, wenn Job wird ausgelöst werden, gehen Sie zur Konsole und sehen Sie, was alle Variablen verfügbar sind. – Dhananjay

+0

Das war ein guter Vorschlag, ich sehe mehrere env. Variablen in der Konsolenausgabe, aber die benötigten wie: GIT_AUTHOR_NAME, GIT_COMMITTER_EMAIL usw. fehlen (ich nehme an, das Plugin setzt sie überhaupt nicht) –

Verwandte Themen