Ä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.

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)

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".


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.


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.



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


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

2
Bitte schreien Sie nicht. Danke dir.
OliBlogger
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.