Ändern der Jenkins-Build-Nummer

142

Gibt es eine Möglichkeit, die Build-Nummer zu ändern, die nach Abschluss eines Auftrags per E-Mail gesendet wird? Das Problem ist, dass Produkt-Builds NICHT von Jenkins ausgeführt werden. Daher möchten wir in der Lage sein, die Build-Nummer (dh aus einer Textdatei) abzurufen und die Build-Nummer in Jenkins entsprechend zu aktualisieren. Ich habe versucht, die Build-Nummer festzulegen:

set BUILD_NUMBER=45

In der E-Mail wird jedoch weiterhin die Build-Nummer angezeigt, die Jenkins ursprünglich festgelegt hat.

erman8
quelle

Antworten:

258

Wenn Sie Zugriff auf die Skriptkonsole haben (Jenkins verwalten -> Skriptkonsole), können Sie dies wie folgt tun:

Jenkins.instance.getItemByFullName("YourJobName").updateNextBuildNumber(45)
lnite
quelle
7
Ich kann überprüfen, ob dies perfekt funktioniert, um das Problem zu lösen. Ich habe den Build-Verlauf zwischen zwei Jenkins-Servern manuell kopiert, und auf dem neuen Server war nextBuildNumber falsch. Wenn ich dies ausführte, konnte ich eine korrekte neue nextBuildNumber festlegen, ohne dass ein erneutes Laden der Jenkins-Konfiguration erforderlich war.
Phil Hollenback
5
Wenn Sie das GitHub-Plugin verwenden, "YourJobName"ist "organization/repository/branchname".
Ruud
14
Funktioniert. Der Wert kann ohne Gebäude überprüft werden mit:Jenkins.instance.getItemByFullName("YourJobName").getNextBuildNumber()
Daniel Alder
7
Ich kann bestätigen, dass dies auch für MultiBranch-Pipelines funktioniert. Der "Jobname" ist oben auf der Zweigstellenseite aufgeführt: Vollständiger Projektname: PipelineName/BranchNameso wäre esJenkins.instance.getItemByFullName("YourPipelineName/YourBranchName").updateNextBuildNumber(45)
Markus
37

kann mit dem Plugin durchgeführt werden: https://wiki.jenkins-ci.org/display/JENKINS/Next+Build+Number+Plugin

Weitere Informationen: http://www.alexlea.me/2010/10/howto-set-hudson-next-build-number.html

Wenn dir das Plugin nicht gefällt:

Wenn Sie die Build-Nummer über die nextBuildNumber-Datei ändern möchten, sollten Sie auf der Seite "Jenkins verwalten" "Konfiguration von Festplatte neu laden".

mighq
quelle
2
Kein Plugin erforderlich.
david.perez
1
Danke, du rettest meinen Tag.
Yukio Fukuzawa
29

Unter dem Jobarbeitsbereich-Ordner wie folgt:

C:\Program Files (x86)\Jenkins\jobs\job_name

Es gibt eine Datei mit dem Namen nextBuildNumber.

Durch Festlegen der Build-Nummer in der Datei und erneutes Laden der Konfiguration von der Festplatte (Menü "Jenkins verwalten") wird beim nächsten Build der Wert BUILD_NUMBER aus der Datei erzwungen.

vezenkov
quelle
9
Haben Sie die Konfiguration nach dem Ändern der nextBuildNumber-Datei von der Festplatte neu geladen (Menü "Jenkins verwalten")?
Vezenkov
Nee! Ich dachte, es passiert automatisch.
Hfossli
Das hat bei mir perfekt funktioniert. Sie müssen den Server neu starten, bevor er wirksam wird.
Hawkeye64
Das Neustarten des Servers ist ein Problem, wenn viele Benutzer die Pipeline ausführen. Vermeiden Sie diese Art von Lösung
besser
8

Wenn Sie einen Verzweigungsnamen einschließlich Forward Slash haben ( z. B. mit Git Flow ), müssen Sie den Forward Slash durch das Unicode-Zeichen % 2F innerhalb des Verzweigungsnamens ersetzen .

Hier ist ein Beispiel für die Pipeline My-Pipeline-Name und die Verzweigungsfreigabe / my-release-Verzweigungsname

Jenkins.instance.getItemByFullName("My-Pipeline-Name/release%2Fmy-release-branch-name").updateNextBuildNumber(BUILD_NUMBER)

Ich konnte dies herausfinden, indem ich den folgenden Befehl ausführte, der die verschiedenen Jobs (Zweige) für Ihre Pipeline auflistet

Jenkins.instance.getItem("My-Pipeline-Name").getAllJobs()

Ich hoffe es hilft.

DaWyz
quelle
5

Vielleicht kann eine Kombination dieser Plugins nützlich sein:

Morfic
quelle
Vielen Dank - ich konnte eines der Plugins verwenden.
Erman8
1

Sie können die Build-Nummer ändern, indem Sie die Datei $ {JENKINS_HOME} / jobs / job_name / nextBuildNumber auf dem Jenkins-Server aktualisieren.

Sie können auch das Plugin Next Build Number Plugin installieren , um die Build-Nummer mithilfe der CLI oder der Benutzeroberfläche zu ändern

Pradip sakhavala
quelle
Beachten Sie, dass das Ändern der Build-Nummer in der nextBuildNumber-Datei allein nicht ausreicht. Das Ausführen der "Konfiguration von Festplatte neu laden" im Menü "Jenkins verwalten" ist ebenfalls erforderlich.
Falstaff
-4

Durch Verwendung von Umgebungsvariablen:

$BUILD_NUMBER =4
ksr
quelle
2
Bitte schreien Sie nicht. Danke dir.
OliBlogger