如何在Jenkins中获取最新的SVN标签

3
我需要将最新的SVN标签检出到我的Jenkins构建作业工作区。所谓标签是指复制的文件夹,通常用于创建里程碑。
我从一些stackoverflow问题中了解到,可以使用以下命令获取最新的标签:
"svn ls .../path/to/repo/tags | tail -n 1"

但我不认为这个可以放在Jenkins的SCM字段中。我相信Jenkins需要在SVN中精确指定位置。有什么想法吗?我相信这在大型项目中实际上是一个非常常见的需求....

1个回答

3

建议答案几乎正确,前提是:

  • 使用增量字母数字永久命名方案
  • 将BASE路径添加到管道结果中(ls输出相对路径到标签/)

如果上述条件没有得到满足,则需要使用略有不同的命令和一些业务逻辑“最新的标签具有最高的修订号”。

>svn ls -v http://mayorat.ursinecorner.ru:8088/svn/Hello/tags/
     22 lazybadg              июл 17  2010 ./
     11 lazybadg              июл 17  2010 1.0/
     22 lazybadg              июл 17  2010 1.1/

This命令的输出可以使用gawk,最新版本在$1中找到,在$6中需要标签的相对路径(或$5,我懒得测试)


嘿,懒惰的獾,感谢你的回答。我相信那个脚本是有效的,但问题是如何将其实现到Jenkins中。不能将那行代码添加到Jenkins SCM字段中,而且我还没有找到如何“动态”地执行它的部分。 - user1340582
如果您可以在Jenkins任务中执行外部程序,则可以编写shell脚本|批处理文件(我对Jenkins一无所知)。 - Lazy Badger
1
我建议忽略Jenkins SCM字段,而是使用一个脚本作为第一个构建步骤。 - MOnsDaR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接