5

我正在 hudson v1.362 中设置参数化构建。我正在创建的参数用于确定要在 subversion 中签出的分支。

我可以像这样设置我的 svn 存储库 url:https://my.svn.server/branches/${branch}它可以很好地完成结帐和构建。

现在我想在构建完成后对其进行标记。我正在为 hudson 使用 SVN 标记插件来执行此操作。所以我转到 hudson 项目的项目配置屏幕的底部并打开“在成功构建时执行 Subversion 标记”。

在这里,我将我的标记库 URL 设置为https://my.svn.server/tags/${branch}-${BUILD_NUMBER},它给了我关于找不到这些属性的错误。所以我将它们更改为这样的环境变量用法:https://my.svn.server/tags/${env['branch']}-${env['BUILD_NUMBER']}并且 svn 标记插件很高兴。

现在的问题是我在顶部的 svn 存储库正在使用${branch}语法和 svn 标记插件 barfs:

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

请注意第一行:svn 标记正在查看 ${branch} 作为存储库 url 的一部分......它没有解析出属性值。

我试图更改我原来的 svn 存储库 URL 以使用该${env['branch']}语法,但这会在原始结帐时崩溃,因为结帐根本没有解析此语法。

帮助?!

我如何使用参数化构建来设置 svn url 以进行结帐和标记我的构建?!

4

2 回答 2

3

我们不使用标记插件,但我们确实在我们的 shell 脚本中使用了 SVN.EXE,如下所示:

svn cp %workspace%\trunk@ http://myserver/release/%build_number%/trunk -m "(把日志文本放在这里)" --parents

也许类似的东西也对你有用。

于 2010-06-17T16:12:24.267 回答
0

我们使用带有以下 URL 的标记插件:

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

它有效。我们必须像在 '/jenkinstest_tags//build' 中那样使用双 '//'。这似乎是一种解决方法。

于 2011-06-24T06:46:34.370 回答