2010-06-17 2 views
5

Je configure une construction paramétrée dans hudson v1.362. le paramètre que je crets est utilisé pour déterminer quelle branche à extraire dans subversion.Hudson: comment utiliser une construction paramétrée pour faire svn checkout et svn tag?

Je peux définir mon URL svn repository comme ceci: https://my.svn.server/branches/ ${branch} et il fait le checkout et la construction très bien.

maintenant je veux marquer la construction après qu'elle se termine. J'utilise le plugin de marquage SVN pour que hudson le fasse. Je vais donc en bas de l'écran de configuration du projet hudson et j'activerai "Effectuer un balisage Subversion en cas de succès".

ici, j'ai défini mon URL de base de balise à https://my.svn.server/tags/ ${branch}-${BUILD_NUMBER} et il me donne des erreurs au sujet de ces propriétés n'étant pas trouvées. donc je les change pour les usages de variables d'environnement comme ceci: https://my.svn.server/tags/ ${env['branch']}-${env['BUILD_NUMBER']} et le plugin de svn tagging est heureux.

le problème est maintenant que mon dépôt svn en haut utilise la syntaxe ${branch} et le Barfs du plugin marquage svn sur ce point:

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 

avis la première ligne, il y a: la balise svn est à la recherche à $ {branch} dans le cadre de l'url du dépôt ... il n'analyse pas la valeur de la propriété.

J'ai essayé de changer mon URL de Repository originale pour svn pour utiliser la syntaxe ${env['branch']}, mais cela explose à la caisse originale parce que cette syntaxe n'est pas analysée du tout par la caisse.

aide ?!

Comment puis-je utiliser une construction paramétrée pour définir l'adresse svn pour la vérification et pour marquer ma construction?

Répondre

3

Nous n'utilisons pas le plug-in de marquage, mais nous utilisons svn.exe dans notre script shell comme ceci:

svn cp% workspace% \ trunk @ http://myserver/release/%build_number%/trunk -m « (mis journal texte ici) "--parents

Peut-être que quelque chose de similaire fonctionnera pour vous aussi.

+0

merci william. l'utiliser dans un script de build post de hudson fonctionne très bien! –

0

Nous utilisons le marquage pluggin à l'adresse suivante:

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

et il fonctionne. Nous avons dû utiliser un double '//' comme dans '/ jenkinstest_tags // build'. Ce qui semble être une solution de contournement.

+1

Le problème de l'OP n'est pas l'URL TARGET mais l'URL SOURCE. – chiccodoro

Questions connexes