subversion plugin svn continuous-integration hook jenkins

plugin - Jenkins CI utiliza la revisión svn incorrecta para la construcción



jenkins subversion plugin configuration (5)

Hola, actualmente estoy trabajando con Jenkins CI Server y quiero iniciar un trabajo / compilación a través de svn post commit hook.

De acuerdo, voy a morder: ¿Por qué no estás simplemente permitiendo que Jenkins sea activado por un commit de Subversion?

He visto a gente hacer esto para CVS porque Jenkins puede tardar mucho tiempo en sondear CVS para ver si se ha realizado un compromiso CVS. Pero, Jenkins toma solo unos segundos para determinar que se ha realizado una confirmación de Subversion.

Si realmente insiste en activar una compilación Jenkins, ¿por qué no simplemente configura sus proyectos para permitir la activación remota? En la sección Construir activadores para cada trabajo, especifique un token y luego lo active con wget:

wget $JENKINS_URL/job/foo?token=BUILD_NOW

(Suponiendo que el token que has establecido es BUILD_NOW )

De esta manera, no tiene que preocuparse por la revisión y Jenkins construirá la última revisión que se registró.

Otros sienten que esto es un problema de sincronización de tiempo, pero no estoy tan seguro. Usted está pasando el número de compilación en su argumento. Puedes probar algunas cosas:

  • Duerme unos 30 segundos antes de activar la construcción y ve si eso ayuda. No lo mantendría en el script porque retrasa el compromiso de Subversion, pero podría ayudarlo a determinar que esto no es un problema de tiempo.
  • ¿Qué sucede si agrega uno a $REV y luego activa la compilación de Jenkin? Tal vez eso solucione el problema.

Actualmente estoy trabajando con Jenkins CI Server y quiero iniciar un trabajo / compilación a través de svn post commit hook. Hasta ahora funciona como se esperaba, pero la compilación utiliza la revisión svn anterior.

Por ejemplo: compruebo mis archivos y el cliente me muestra la revisión 90, la compilación comienza, pero usa 89.

El gancho post-commit se ve así:

UUID=`svnlook uuid $REPOS` /usr/bin/wget / --header "Content-Type:text/plain;charset=UTF-8" / --post-data "`svnlook changed --revision $REV $REPOS`" / --output-document "-" / --timeout=2 / http://ci-jenkins/job/Job1/build?rev=$REV 1>&2

La estrategia de check-out en Jenkins está configurada en "Siempre retirar una copia nueva". ¿Qué está mal? Todavía estoy empezando con eso y tengo mucho que aprender. Así que por favor tenlo en cuenta para responderme. :-)


Asegúrese de que la fecha / hora en el servidor Jenkins coincida con la fecha / hora en el servidor SVN (o al menos esté atrasada).

Bastante seguro de que Jenkins usa la fecha / hora cuando hace sus comprobaciones y actualizaciones.



Esto puede suceder si la hora en el servidor Jenkins y Subversion no está sincronizada. Asegúrate de que el tiempo se mantenga en límites de 2 segundos.


esto se debe a la sincronización de tiempo entre el servidor SVN y el de jenkins. En otras palabras, la fecha / hora de los dos servidores no es la misma. Me he encontrado con esto y tuve tres minutos de diferencia, lo resolví configurando un retraso de 5 minutos antes de la ejecución del trabajo de Jenkins en las opciones avanzadas del proyecto.