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.

erman8
la source

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)
l8nite
la source
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".

mighq
la source
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.

Vezenkov
la source
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.

Davidson
la source
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

Pradip sakhavala
la source
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
ksr
la source
2
S'il vous plaît, ne criez pas. Je vous remercie.
OliBlogger