使用Groovy脚本解析Jenkins中动态选择参数的文件名

时间:2014-01-23 00:06:08

标签: linux parsing groovy jenkins jenkins-plugins

我正在尝试为Jenkins作业生成一个下拉列表,该作业将从Linux目录中的文件名中解析出版本号。我已经让它在大部分时间工作,但我认为我缺乏对groovy的了解让我处于停滞状态。这是我的代码:

Arrays.asList(new File("/path/to/files").list().join(", ").findAll(/(\d+)\.(\d+)\.(\d+)\.(\d+)/))

我的文件名如下:

  • 返回? - ?1.0.0.19?.war
  • 返回 - ?1.0.0.20?.war

我从Jenkins脚本控制台返回的内容是:

  

结果:[[1.0.0.19,1.0.0.20]]

这基本上就是我想要的,但在Jenkins工作中,我在下拉列表中得到一个项目,即外括号内的所有内容。

  

[1.0.0.19,1.0.0.20]

我认为第二组括号是问题,我试图使用Groovy的.minus()方法删除它们,双重转义括号,没有运气。我也试过了.split()方法,没有运气。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您不需要Arrays.asList()。下面就足够了。

new File("/opt/staples/ci-tools/workspace/archive/returns")
              .list()
              .join(',')
              .findAll(/(\d+)\.(\d+)\.(\d+)\.(\d+)/)