Je migre le travail jenkins-workflow vers un nouveau travail basé sur un modèle. Étant donné que le numéro de construction est utilisé dans la version des artefacts de génération générés par le flux de travail, je dois démarrer le numéro de génération du nouveau flux de travail avec un nombre supérieur à l'ancien. Malheureusement, le plug-in 'Next Build Number' ne fonctionne pas avec le pipeline de flux de travail.
Quelqu'un sait un bon moyen de faire ça?
Essayez d’exécuter le script ci-dessous dans Jenkins Script Console .. Changez "workFlow" en votre nom de travail
def job = Jenkins.instance.getItem("workFlow")
job.nextBuildNumber = 10
job.saveNextBuildNumber()
Vous pouvez également ajouter un extrait de code comme celui-ci à votre script DSL de travail Pipeline/Workflow (ou Jenkinsfile ):
offset = 5
currentBuild.displayName = "#" + (currentBuild.number + offset)
Malheureusement, les méthodes énumérées ci-dessus ne fonctionnaient pas pour moi lors de l'utilisation de dossiers. J'ai eu recours à ce qui suit dans la console de script Jenkins:
job = Jenkins.getInstance().getItemByFullName("BSKAzureConversion-Jobs/master", Job.class)
job.nextBuildNumber = 92
job.save()
Quelques notes:
@NonCPS
Jenkins.instance
ne sont pas accessibles autrementJenkins.instance.getItem()
ne fonctionnera pas bien avec les dossiers. Utilisez Jenkins.instance.getItemByFullName
par rapport au env.JOB_NAME
job.nextBuildNumber
entrera en vigueur lors de la construction suivante.Code:
@NonCPS
def updateBuildNumber(build_number) {
def job = Jenkins.instance.getItemByFullName(env.JOB_NAME, Job.class)
job.nextBuildNumber = build_number
job.saveNextBuildNumber()
build env.JOB_NAME
return true
}
J'ai aussi trouvé un autre moyen de le faire en utilisant 'jenkins-cli'. Cela fonctionne pour les installations verrouillées où l'accès à la console de script n'est pas disponible (Cloudbees Enterprise Jenkins)
Java -jar jenkins-cli.jar -s https://instanceURL/ \
set-next-build-number workflow-name 33