Changer le numéro de build de Jenkins


143

Existe-t-il un moyen de modifier le numéro de build qui est envoyé par e-mail après la fin d'un travail? Le problème est que les versions de produit ne sont PAS effectuées par Jenkins, nous voulons donc être en mesure d'obtenir le numéro de version (c'est-à-dire à partir d'un fichier texte) et de mettre à jour le numéro de version dans Jenkins pour qu'il corresponde à celui-ci. J'ai essayé de définir le numéro de build:

set BUILD_NUMBER=45

Mais l'e-mail affiche toujours le numéro de build que Jenkins a initialement défini.

Réponses:


260

Si vous avez accès à la console de script (Manage Jenkins -> Script Console), vous pouvez procéder comme suit:

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

7
Je peux vérifier que cela fonctionne parfaitement pour résoudre le problème. J'ai copié manuellement l'historique de construction entre deux serveurs jenkins, et sur le nouveau serveur nextBuildNumber était faux. L'exécution de cela m'a permis de définir un nouveau nextBuildNumber correct, aucun rechargement de la configuration jenkins requis.
Phil Hollenback

5
Si vous utilisez le plugin GitHub, "YourJobName"est "organization/repository/branchname".
Ruud

15
Travaux. La valeur peut être vérifiée sans construire en utilisant:Jenkins.instance.getItemByFullName("YourJobName").getNextBuildNumber()
Daniel Alder

7
Je peux confirmer que cela fonctionne également pour MultiBranch-Pipelines. Le "JobName" est répertorié en haut de la page de la branche: Nom complet du projet: PipelineName/BranchNameainsi il seraitJenkins.instance.getItemByFullName("YourPipelineName/YourBranchName").updateNextBuildNumber(45)
Markus


37

peut être fait avec le plugin: https://wiki.jenkins-ci.org/display/JENKINS/Next+Build+Number+Plugin

plus d'infos: http://www.alexlea.me/2010/10/howto-set-hudson-next-build-number.html

si vous n'aimez pas le plugin:

Si vous voulez changer le numéro de build via le fichier nextBuildNumber, vous devez "Recharger la configuration à partir du disque" depuis la page "Gérer Jenkins".


2
Pas besoin d'utiliser le plugin.
david.perez

1
Merci, vous sauvez ma journée.
Yukio Fukuzawa

29

Sous le dossier de l'espace de travail du travail, comme:

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

il y a un fichier nommé nextBuildNumber.

Définir le numéro de build dans le fichier et recharger la configuration à partir du disque (menu Gérer Jenkins) forcera la prochaine build que vous commencerez à avoir la valeur du fichier comme BUILD_NUMBER.


9
Avez-vous rechargé la configuration à partir du disque (menu Gérer Jenkins) après avoir modifié le fichier nextBuildNumber?
vezenkov

Nan! Je pensais que c'était arrivé automatiquement.
hfossli

Cela a parfaitement fonctionné pour moi. Vous devez redémarrer le serveur avant qu'il ne prenne effet.
Hawkeye64

Le redémarrage du serveur est pénible si de nombreux utilisateurs exécutent un pipeline. Mieux vaut éviter ce genre de solution
MorganGeek

8

Si vous avez un nom de branche comprenant une barre oblique (en utilisant git flow par exemple), vous devrez remplacer la barre oblique par son caractère Unicode % 2F dans le nom de la branche.

Voici un exemple pour le pipeline My-Pipeline-Name et la branche release / my-release-branch-name

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

J'ai pu le découvrir en exécutant la commande suivante qui listera les différents travaux (branches) pour votre pipeline

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

J'espère que ça aide.



1

Vous pouvez modifier le numéro de build en mettant à jour le fichier $ {JENKINS_HOME} / jobs / job_name / nextBuildNumber sur le serveur Jenkins.

Vous pouvez également installer le plugin Next Build Number pour changer le numéro de build à l'aide de la CLI ou de l'interface utilisateur


Notez que changer le numéro de build dans le fichier nextBuildNumber seul n'est pas suffisant, exécuter le "Recharger la configuration à partir du disque" dans le menu "Gérer Jenkins" est également nécessaire.
falstaff

-4

En utilisant des variables environnementales:

$BUILD_NUMBER =4

2
S'il vous plaît, ne criez pas. Je vous remercie.
OliBlogger
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.