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