Modifica del numero di build di Jenkins


143

C'è un modo per cambiare il numero di build che viene inviato via e-mail dopo il completamento di un lavoro? Il problema è che le build del prodotto NON vengono eseguite da Jenkins, quindi vogliamo essere in grado di ottenere il numero di build (cioè da un file di testo) e aggiornare il numero di build in Jenkins in modo che corrisponda. Ho provato a impostare il numero di build:

set BUILD_NUMBER=45

Ma l'e-mail mostra ancora il numero di build originariamente impostato da Jenkins.

Risposte:


260

Se hai accesso alla console degli script (Gestisci Jenkins -> Console degli script), puoi procedere come segue:

Jenkins.instance.getItemByFullName("YourJobName").updateNextBuildNumber(45)

7
Posso verificare che funzioni perfettamente per risolvere il problema. Ho copiato manualmente la cronologia delle build tra due server jenkins e sul nuovo server nextBuildNumber era errato. L'esecuzione di questo mi ha permesso di impostare un nuovo nextBuildNumber corretto, non è necessario ricaricare la configurazione di jenkins.
Phil Hollenback,

5
Se stai usando il plugin GitHub, lo "YourJobName"è "organization/repository/branchname".
Ruud,

15
Lavori. Il valore può essere verificato senza costruire usando:Jenkins.instance.getItemByFullName("YourJobName").getNextBuildNumber()
Daniel Alder

7
Posso confermare che funziona anche con MultiBranch-Pipelines. "JobName" è elencato nella parte superiore della pagina di succursale: Nome del progetto completo: PipelineName/BranchNamecosì sarebbeJenkins.instance.getItemByFullName("YourPipelineName/YourBranchName").updateNextBuildNumber(45)
Markus


37

può essere fatto con il plugin: https://wiki.jenkins-ci.org/display/JENKINS/Next+Build+Number+Plugin

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

se non ti piace il plugin:

Se si desidera modificare il numero di build tramite il file nextBuildNumber, è necessario "Ricarica configurazione da disco" dalla pagina "Gestisci Jenkins".


2
Non è necessario utilizzare il plug-in.
david.perez,

1
Grazie, mi hai salvato la giornata.
Yukio Fukuzawa,

29

Nella cartella dell'area di lavoro del lavoro, come:

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

c'è un file chiamato nextBuildNumber.

L'impostazione del numero di build nel file e il ricaricamento della configurazione dal disco (menu Gestisci Jenkins) imporranno la build successiva in cui inizi a ottenere il valore dal file come BUILD_NUMBER.


9
Hai ricaricato la configurazione dal disco (menu Gestisci Jenkins) dopo aver modificato il file nextBuildNumber?
Vezenkov,

No! Ho pensato che fosse successo automaticamente.
hfossli,

Ha funzionato perfettamente per me. È necessario riavviare il server prima che abbia effetto.
Hawkeye64,

Dover riavviare il server è un problema se hai molti utenti che eseguono pipeline. Meglio evitare questo tipo di soluzione
MorganGeek il

8

Se hai un nome di ramo incluso Forward Slash (usando ad esempio git flow ), dovrai sostituire Forward Slash con il suo carattere Unicode % 2F all'interno del nome del ramo.

Ecco un esempio per la pipeline My-Pipeline-Name e il ramo release / my-release-branch-name

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

Sono stato in grado di scoprirlo eseguendo il seguente comando che elencherà i diversi lavori (rami) per la tua pipeline

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

Spero che sia d'aiuto.



1

È possibile modificare il numero di build aggiornando il file $ {JENKINS_HOME} / jobs / job_name / nextBuildNumber sul server Jenkins.

Puoi anche installare il plugin Next Build Number per modificare il numero di build utilizzando l'interfaccia della riga di comando o l'interfaccia utente


Notare che la modifica del numero di build nel file nextBuildNumber da sola non è sufficiente, è inoltre necessario eseguire "Ricarica configurazione da disco" nel menu "Gestisci Jenkins".
falstaff

-4

Utilizzando le variabili ambientali:

$BUILD_NUMBER =4

2
Per favore, non urlare. Grazie.
OliBlogger
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.