2010-06-17 12 views
5

Estoy configurando una compilación parametrizada en hudson v1.362. el parámetro que estoy creándolo se usa para determinar qué rama para pagar en subversión.Hudson: ¿cómo utilizo una construcción parametrizada para hacer svn checkout y svn tag?

Puedo establecer mi url de repositorio svn así: https://my.svn.server/branches/ ${branch} y hace el proceso de compra y la construcción muy bien.

ahora quiero etiquetar la construcción después de que termine. Estoy usando el plugin de etiquetado SVN para hudson para hacer esto. así que voy a la parte inferior de la pantalla de configuración del proyecto para el proyecto Hudson y enciendo "Realizar el etiquetado Subversion en la compilación exitosa".

aquí, configuré mi URL de base de etiquetas en https://my.svn.server/tags/ ${branch}-${BUILD_NUMBER} y me da errores acerca de las propiedades que no se encuentran. así que los cambio a usos variables del entorno como este: https://my.svn.server/tags/ ${env['branch']}-${env['BUILD_NUMBER']} y el plugin de etiquetado svn está contento.

El problema ahora es que mi repositorio SVN en la parte superior está utilizando la sintaxis ${branch} y el etiquetado SVN Plugin barfs en esto:

moduleLocation: Remote ->https://my.svn.server/branches/$branch/ 
Tag Base URL: 'https://my.svn.server/tags/thebranchiused-1234'. 
There was no old tag at https://my.svn.server/tags/thebranchiused-1234. 
ERROR: Publisher hudson.plugins.svn_tag.SvnTagPublisher aborted due to exception 
java.lang.NullPointerException 
    at hudson.plugins.svn_tag.SvnTagPlugin.perform(SvnTagPlugin.java:180) 
    at hudson.plugins.svn_tag.SvnTagPublisher.perform(SvnTagPublisher.java:79) 
    at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:36) 
    at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:601) 
    at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:580) 
    at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:558) 
    at hudson.model.Build$RunnerImpl.cleanUp(Build.java:167) 
    at hudson.model.Run.run(Run.java:1295) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) 
    at hudson.model.ResourceController.execute(ResourceController.java:88) 
    at hudson.model.Executor.run(Executor.java:124) 
Finished: FAILURE 

aviso de la primera línea, no: la etiqueta SVN está mirando $ {branch} como parte de la url del repositorio ... no está analizando el valor de la propiedad.

intenté cambiar mi URL del repositorio original para que svn utilizara la sintaxis ${env['branch']}, pero eso explota en el proceso de pago original porque el proceso de verificación no analiza esta sintaxis.

ayuda ?!

¿cómo utilizo una compilación parametrizada para configurar la url svn para el pago y para etiquetar mi compilación ?!

Respuesta

3

No utilizamos el plugin de marcado, pero nosotros usamos svn.exe en nuestra secuencia de comandos shell como esto:

svn cp% del espacio de trabajo% \ tronco @ http://myserver/release/%build_number%/trunk -m "(puesto de registro texto aquí) "--parents

Quizás algo similar funcione para usted también.

+0

gracias william. ¡usar eso en un guión posterior a la compilación de hudson funciona muy bien! –

0

Utilizamos el etiquetado pluggin con la siguiente URL:

 
http://subversion.repository/branches/jenkinstest_tags//build-${env['BUILD_NUMBER']} 

y funciona. Tuvimos que usar un doble '//' como en '/ jenkinstest_tags // build'. Lo cual parece una solución.

+1

El problema de OP no es la URL de TARGET sino la URL de SOURCE. – chiccodoro

Cuestiones relacionadas