Groovy 脚本在 Jenkins 参数值中列出 S3 文件

RIT*_*JAN 4 groovy jenkins jenkins-plugins jenkins-groovy

我正在尝试建立一个詹金斯工作。我在哪里使用 Jenkins 的可扩展插件。这个插件有一个选项来指定 Groovy 脚本。

任何人都可以帮我编写 groovy 脚本来提取存储桶中的文件列表吗?

我想使用 Jenkins 中的文件名之一作为参数。

Sha*_*uan 6

您可以使用我编写的这个脚本,我将其用作Jenkins 的“主动选择参数”

def sout = new StringBuilder(), serr = new StringBuilder()
def proc = 'aws s3 ls s3://bucket_name/'.execute()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(2000)
def values = "$sout".split('/')
def trimmedValues
def parameters=[]
values.each {  println "${it}" }
def cleanValues = "$sout".split('PRE')
def last = cleanValues.last().split('2018-12-17')[0]
cleanValues.each {  "${it}".toString(); 
                    trimmedValues = "${it}".trim();
                    parameters<<trimmedValues
                 }
parameters.remove(parameters.size() - 1);
parameters.add(last)
parameters
Run Code Online (Sandbox Code Playgroud)

“2018-12-17”拆分是因为awscli在命令末尾返回日期:

在此处输入图片说明

这样我就可以使用这个参数来确定我从存储桶中取出什么工件/文件夹。 在此处输入图片说明