Cambiar el número de compilación de Jenkins

142

¿Hay alguna manera de cambiar el número de compilación que se envía por correo electrónico una vez que se completa un trabajo? El problema es que Jenkins NO está haciendo compilaciones de productos, por lo que queremos poder obtener el número de compilación (es decir, de un archivo de texto) y actualizar el número de compilación en Jenkins para que coincida. He intentado establecer el número de compilación:

set BUILD_NUMBER=45

Pero el correo electrónico todavía muestra el número de compilación que Jenkins configuró originalmente.

erman8
fuente

Respuestas:

259

Si tiene acceso a la consola de scripts (Manage Jenkins -> Script Console), puede hacer lo siguiente:

Jenkins.instance.getItemByFullName("YourJobName").updateNextBuildNumber(45)
l8nite
fuente
77
Puedo verificar que esto funciona perfectamente para resolver el problema. Copié manualmente el historial de compilación entre dos servidores jenkins, y en el nuevo servidor nextBuildNumber estaba equivocado. Ejecutar esto me permitió establecer un nuevo nextBuildNumber correcto, no se requiere la recarga de configuración de jenkins.
Phil Hollenback
55
Si está utilizando el complemento GitHub, "YourJobName"es "organization/repository/branchname".
Ruud
15
Trabajos. El valor se puede verificar sin construir usando:Jenkins.instance.getItemByFullName("YourJobName").getNextBuildNumber()
Daniel Alder
77
Puedo confirmar que esto también está funcionando para MultiBranch-Pipelines. El "JobName" aparece en la parte superior de la página de la sucursal: Nombre completo del proyecto: PipelineName/BranchNameasí seríaJenkins.instance.getItemByFullName("YourPipelineName/YourBranchName").updateNextBuildNumber(45)
Markus
37

se puede hacer con el complemento: https://wiki.jenkins-ci.org/display/JENKINS/Next+Build+Number+Plugin

Más información: http://www.alexlea.me/2010/10/howto-set-hudson-next-build-number.html

si no te gusta el complemento:

Si desea cambiar el número de compilación a través del archivo nextBuildNumber, debe "Recargar la configuración desde el disco" desde la página "Administrar Jenkins".

mighq
fuente
2
No es necesario usar el complemento.
david.perez
1
Gracias, me salvas el día.
Yukio Fukuzawa
29

Debajo de la carpeta del espacio de trabajo, como:

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

Hay un archivo llamado nextBuildNumber.

Establecer el número de compilación en el archivo y volver a cargar la configuración desde el disco (menú Administrar Jenkins) obligará a que la próxima compilación comience a tener el valor del archivo como BUILD_NUMBER.

vezenkov
fuente
9
¿Recargó la configuración desde el disco (menú Administrar Jenkins) después de cambiar el archivo nextBuildNumber?
vezenkov
No! Pensé que sucedió automáticamente.
hfossli
Esto funcionó perfectamente para mí. Debe reiniciar el servidor antes de que surta efecto.
Hawkeye64
Tener que reiniciar el servidor es una molestia si tienes muchos usuarios ejecutando pipeline. Mejor evitar este tipo de solución
MorganGeek
8

Si tiene un nombre de rama que incluye la barra diagonal ( por ejemplo, usando el flujo de git ), deberá reemplazar la barra diagonal con su carácter Unicode % 2F dentro del nombre de la rama.

Aquí hay un ejemplo para la tubería My-Pipeline-Name y la rama release / my-release-branch-name

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

Pude averiguar sobre esto ejecutando el siguiente comando que enumerará los diferentes trabajos (ramas) para su canalización

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

Espero eso ayude.

DaWyz
fuente
1

Puede cambiar el número de compilación actualizando el archivo $ {JENKINS_HOME} / jobs / job_name / nextBuildNumber en el servidor Jenkins.

También puede instalar el complemento Next Build Number para cambiar el número de compilación usando CLI o UI

Pradip sakhavala
fuente
Tenga en cuenta que cambiar el número de compilación en el archivo nextBuildNumber por sí solo no es suficiente, también es necesario ejecutar la "Recargar configuración desde el disco" en el menú "Administrar Jenkins".
Falstaff
-4

Mediante el uso de variables ambientales:

$BUILD_NUMBER =4
ksr
fuente
2
Por favor, no grites. Gracias.
OliBlogger