Wie man Täter oder Committer innerhalb eines Jenkins-workflow mit einem oder mehreren SCMs
Ist es möglich, den Zugriff auf Informationen über Committer-und/oder Täter von einem Jenkins workflow beim Check-out aus einer oder mehreren SCMs (entweder über der Kasse() oder andere SCM-Schritte, wie z.B. git/svn)?
Die Absicht ist, diese Informationen zu nutzen, um Benachrichtigen Committer und/oder die Täter über die job-status, zum Beispiel in einem mail
Schritt.
Ein kleines Beispiel für eine workflow-definition:
node {
//checkout from one or more SCMs, e.g.
git url: '<URL>'
checkout([$class:...])
...
//how can we know about committers or culprits at this point?
$committers = ??
//send a mail to committers or culprits
mail to: '$committers', subject: 'JENKINS', body: '<information about the job status>'
}
Wie könnte dies angepasst werden, um eine Auflistung der Committer nach dem ausführen des SCM-Schritte?
Bearbeiten:
Ich arbeite derzeit mit der Jenkins-version 1.596.2 und Workflow: Aggregator-version 1.6 und es scheint, dies ist eine offene Frage in JENKINS-24141
- Sie waren in der Lage zu finden, eine Lösung für dieses problem? Das scheint ein echter deal breaker für die Migration zu den pipelines.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Sie gefunden wurde, ausstehende JENKINS-24141 dies wird nicht unterstützt. Änderungen Jenkins Kern erforderlich sind.
Dies ist jetzt möglich mit der E-Mail-ext plugin.
Jedoch, wenn Sie wollen einfach nur senden Sie eine E-Mail auf Fehler, die Sie möglicherweise verwenden möchten Mailer (basierend auf der E-Mail-ext-pipeline Beispiele):
step(...)
) funktioniert bei mir, aber seltsamerweise ist es nicht die Standard-Inhalt konfiguriert https://<JENKINSURL>/konfigurieren Der E-mail habe ich erhalten, beginnt mit Sehen, gefolgt von dem link auf dem blauen Meer zu bauen. Ich hatte erwartet, das bauen auf der klassischen version. Ideen?Verwendung von groovy innerhalb einer pipeline-Skript:
@NonCPS
statt@NoCPS
?!Können Sie die xml-info für einen job, in dem Sie den Namen der person, die verpflichtet, die änderung zusammen mit der commit-Nachrichten.
Geben dieses gehen in Ihrem browser. Suche nach "Benutzer".
Sichern Sie diese Informationen in einer text-Datei zu verarbeiten.
ähnlich wie die Antwort von @szym, aber ohne die
@NonCPS
erforderlich:def authors = currentBuild.changeSets.collectMany { it.toList().collect { it.author } }.unique()
Scheint es, dass dieses feature implementiert wurde innerhalb der E-Mail-ext-plugin, aber der Autor vergessen zu dokumentieren, wie wir sind, soll diesen verwenden.
Bitte überprüfen Sie https://issues.jenkins-ci.org/browse/JENKINS-34763 -- und einen Kommentar hinzuzufügen, bitte um ein Beispiel. Das habe ich schon.
Holen Sie Committer E-Mail :
und senden:
entnommen aus : https://medium.com/@dilunika/find-the-git-commit-user-jenkins-pipeline-b6790613f8b5
Wenn Sie möchten, zu informieren, die Schuldigen, wer brach die bauen, Sie brauchen nicht, um alle Prüfungen, Verwenden E-Mail-plugin in jenkins. Dieses plugin gibt Ihnen die option zum senden von mails zu commiter zwischen Vergangenheit gut bauen und Strom gebrochen bauen.
Wenn Sie mit "Editierbare E-Mail-notifier-plugin" erhalten Sie die option der E-mail zu senden Schuldige.
Wenn Sie mit E-Mail-plugin dann können Sie die option "Senden eigener e-mails an Personen, die brach das bauen".