2010-06-17 6 views
5

Ich richte einen parametrisierten Build in Hudson v1.362. Der Parameter, den ich verwende, wird verwendet, um zu bestimmen, welcher Zweig in Subversion ausgecheckt werden soll.Hudson: Wie benutze ich einen parametrisierten Build, um Svn Checkout und Svn-Tag zu tun?

Ich kann meine SVN-Repository-URL wie folgt setzen: https://my.svn.server/branches/ ${branch} und es macht die Kasse und den Build ganz gut.

jetzt möchte ich den Build markieren, nachdem es fertig ist. Ich benutze das SVN-Tagging-Plugin für Hudson, um dies zu tun. Also gehe ich zum unteren Ende des Projektkonfigurationsbildschirms für das Hudson-Projekt und aktiviere "Subversion-Tagging bei erfolgreichem Build durchführen".

hier, ich setze meine Tag Base URL auf https://my.svn.server/tags/ ${branch}-${BUILD_NUMBER} und es gibt mir Fehler über diese Eigenschaften nicht gefunden. so ändere ich sie zu Umgebungsvariablenverwendungen wie folgt: https://my.svn.server/tags/ ${env['branch']}-${env['BUILD_NUMBER']} und das svn Taggingplugin ist glücklich.

das Problem ist jetzt, dass meine SVN-Repository an der Spitze wird mit der ${branch} Syntax und den SVN-Tagging barfs auf diesem Plugin:

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 

Mitteilung die erste Zeile gibt: den SVN-Tag bei $ sucht {branch} als Teil der Repository-URL ... es analysiert den Eigenschaftswert nicht.

Ich habe versucht, meine ursprüngliche Repository-URL für svn zu ändern, um die ${env['branch']}-Syntax zu verwenden, aber das explodiert beim ursprünglichen Auschecken, weil diese Syntax beim Auschecken überhaupt nicht analysiert wird.

Hilfe ?!

Wie verwende ich einen parametrisierten Build, um die svn-URL zum Auschecken und zum Taggen meines Builds zu setzen ?!

Antwort

3

Wir verwenden nicht das Tagging-Plugin, aber wir verwenden svn.exe in unserem Shell-Skript wie folgt aus:

svn cp% Arbeitsplatz% \ trunk @ http://myserver/release/%build_number%/trunk -m „(put log Text hier) "- Eltern

Vielleicht etwas ähnliches wird auch für Sie arbeiten.

+0

danke William. Verwenden Sie das in einem Post-Build-Skript von Hudson funktioniert super! –

0

Wir verwenden das Tagging mit der folgenden URL pluggin:

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

und es funktioniert. Wir mussten ein doppeltes '//' wie in '/ jenkintest_tags // build' verwenden. Was scheint eine Abhilfe zu sein.

+1

Das Problem des OPs ist nicht die TARGET-URL, sondern die SOURCE-URL. – chiccodoro

Verwandte Themen