jenkins之另辟蹊径实现根据svn项目实现智能选择

时间:2023-12-24 22:16:31

项目要求,根据svn选择的trunk或branches及tags里的各分支,动态选择参数。一开始认为很简单,直接用jenkins中的List Subversion tags插件及active choices即可完成,但实际操作后发现傻眼了,List Subversion的参数与active choices不与关联....-_-

没办法,只能全套使用Active choice插件才能关联。因此:

最初方法一:

使用active choices Parameter加active choices reactive Parameter来配合,配置如下

jenkins之另辟蹊径实现根据svn项目实现智能选择

active choices reactive Parameter中通过groovy脚本调用svn list命令来实现,如下

jenkins之另辟蹊径实现根据svn项目实现智能选择

感觉应该没问题,但在实际构建时,发现该方案不行,关联参数显示太慢,太影响用户使用了。该方案丢弃

怎么样才能问题显示关联参数呢。在想了几天后,决定另辟蹊径,麻烦一次,方便N次

思路如下,选取svn list时,通过文件来读取,文件的生成可以用后台shell脚本,读文件麻烦,可以写个http服务器,访问快稳定

 解决方法二:

1、用shell调用svn list命令将结果写在文件中

jenkins之另辟蹊径实现根据svn项目实现智能选择

2、用python写个服务器

jenkins之另辟蹊径实现根据svn项目实现智能选择

3、jenkins配置如下

jenkins之另辟蹊径实现根据svn项目实现智能选择

再配合active choices reactive parameter关联version参数做判断即可

这样做的好处就是在jenkins上构建时显示速度快,只需将shell脚本加入crontab中,即可